Use C vairant of YAML dumper at tasks serialization
To speed up seiralization time, use faster implementation of YAML dumping when it is possible. Change-Id: I992410328c07d14a1f5903aa91d456b040175a69 Partial-Bug: #1572103 Co-Authored-With: V. Kuklin <vkuklin@mirantis.com> Co-Authored-With: B. Gaifullin <bgaifullin@mirantis.com>
This commit is contained in:
parent
51540ffabf
commit
9a806f1d12
|
@ -243,3 +243,28 @@ yaml.add_representer(
|
|||
yaml.representer.SafeRepresenter.represent_list,
|
||||
yaml.Dumper
|
||||
)
|
||||
|
||||
if yaml.__with_libyaml__:
|
||||
yaml.add_representer(
|
||||
MutableDict,
|
||||
yaml.representer.SafeRepresenter.represent_dict,
|
||||
yaml.CSafeDumper
|
||||
)
|
||||
|
||||
yaml.add_representer(
|
||||
MutableDict,
|
||||
yaml.representer.SafeRepresenter.represent_dict,
|
||||
yaml.CDumper
|
||||
)
|
||||
|
||||
yaml.add_representer(
|
||||
MutableList,
|
||||
yaml.representer.SafeRepresenter.represent_list,
|
||||
yaml.CSafeDumper
|
||||
)
|
||||
|
||||
yaml.add_representer(
|
||||
MutableList,
|
||||
yaml.representer.SafeRepresenter.represent_list,
|
||||
yaml.CDumper
|
||||
)
|
||||
|
|
|
@ -19,10 +19,16 @@ from yaql.language import specs
|
|||
from yaql.language import yaqltypes
|
||||
|
||||
|
||||
if yaml.__with_libyaml__:
|
||||
YamlDumper = yaml.CSafeDumper
|
||||
else:
|
||||
YamlDumper = yaml.SafeDumper
|
||||
|
||||
|
||||
@specs.method
|
||||
@specs.inject('finalizer', yaqltypes.Delegate('#finalize'))
|
||||
def to_yaml(finalizer, receiver):
|
||||
return yaml.safe_dump(finalizer(receiver))
|
||||
return yaml.dump_all([finalizer(receiver)], Dumper=YamlDumper)
|
||||
|
||||
|
||||
@specs.method
|
||||
|
|
Loading…
Reference in New Issue