Skip to content

Commit 346c1a4

Browse files
committed
Add experimental wrappers around YAML 1.2 tags code
This way people can play with it, and we don't promise this wrapper will stay around forever, and newly created classes CommonDumper/CommonRepresenter aren't exposed. MyCoreLoader = yaml.experimental_12_Core_loader() data = yaml.load(input, Loader=MyCoreLoader) MyCoreDumper = yaml.experimental_12_Core_dumper() out = yaml.dump(data, Dumper=MyCoreDumper)
1 parent 7c8985b commit 346c1a4

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

lib/yaml/__init__.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,17 @@ def add_multi_representer(data_type, multi_representer, Dumper=Dumper):
344344
"""
345345
Dumper.add_multi_representer(data_type, multi_representer)
346346

347+
def experimental_12_Core_loader():
348+
return loader._12_CoreLoader
349+
def experimental_12_JSON_loader():
350+
return loader._12_JSONLoader
351+
352+
def experimental_12_Core_dumper():
353+
return dumper._12_CoreDumper
354+
def experimental_12_JSON_dumper():
355+
return dumper._12_JSONDumper
347356
class YAMLObjectMetaclass(type):
357+
348358
"""
349359
The metaclass for YAMLObject.
350360
"""

lib/yaml/dumper.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,3 +83,8 @@ def __init__(self, stream,
8383
default_flow_style=default_flow_style, sort_keys=sort_keys)
8484
Resolver.__init__(self)
8585

86+
class _12_CoreDumper(CommonDumper): pass
87+
_12_CoreDumper.init_tags('core')
88+
class _12_JSONDumper(CommonDumper): pass
89+
_12_JSONDumper.init_tags('json')
90+

lib/yaml/loader.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,9 @@ def __init__(self, stream):
6767
Composer.__init__(self)
6868
Constructor.__init__(self)
6969
Resolver.__init__(self)
70+
71+
class _12_CoreLoader(BaseLoader): pass
72+
_12_CoreLoader.init_tags('core')
73+
class _12_JSONLoader(BaseLoader): pass
74+
_12_JSONLoader.init_tags('json')
75+

0 commit comments

Comments
 (0)