def broken_private_attributes_dumper(): class BrokenPrivateAttributesDumper(yatiml.Dumper): pass yatiml.add_to_dumper(BrokenPrivateAttributesDumper, BrokenPrivateAttributes) return BrokenPrivateAttributesDumper
def complex_private_attributes_dumper(): class ComplexPrivateAttributesDumper(yatiml.Dumper): pass yatiml.add_to_dumper(ComplexPrivateAttributesDumper, Vector2D) yatiml.add_to_dumper(ComplexPrivateAttributesDumper, ComplexPrivateAttributes) return ComplexPrivateAttributesDumper
def document2_dumper(): class Document2Dumper(yatiml.Dumper): pass yatiml.add_to_dumper( Document2Dumper, [Color2, Document2, Shape, Rectangle, Circle, Vector2D]) return Document2Dumper
# Create document class class Submission: def __init__(self, name: str, age: Union[int, str], tool: Optional[str] = None) -> None: self.name = name self.age = age self.tool = tool @classmethod def _yatiml_sweeten(cls, node: yatiml.Node) -> None: int_to_str = {5: 'five', 6: 'six', 7: 'seven'} int_val = int(node.get_attribute('age').get_value()) if int_val in int_to_str: node.set_attribute('age', int_to_str[int_val]) # Create dumper class MyDumper(yatiml.Dumper): pass yatiml.add_to_dumper(MyDumper, Submission) # Dump YAML doc = Submission('Youssou', 7, 'pencils') yaml_text = yaml.dump(doc, Dumper=MyDumper) print(yaml_text)
def bool_fix_tester_dumper(): class BoolFixTesterDumper(yatiml.Dumper): pass yatiml.add_to_dumper(BoolFixTesterDumper, BoolFixTester) return BoolFixTesterDumper
def dashed_attribute_dumper(): class DashedAttributeDumper(yatiml.Dumper): pass yatiml.add_to_dumper(DashedAttributeDumper, DashedAttribute) return DashedAttributeDumper
def parsed_class_dumper(): class ParsedClassDumper(yatiml.Dumper): pass yatiml.add_to_dumper(ParsedClassDumper, Postcode) return ParsedClassDumper
def private_attributes_dumper(): class PrivateAttributesDumper(yatiml.Dumper): pass yatiml.add_to_dumper(PrivateAttributesDumper, PrivateAttributes) return PrivateAttributesDumper
def extensible_dumper(): class ExtensibleDumper(yatiml.Dumper): pass yatiml.add_to_dumper(ExtensibleDumper, Extensible) return ExtensibleDumper
def universal_dumper(): class UniversalDumper(yatiml.Dumper): pass yatiml.add_to_dumper(UniversalDumper, Universal) return UniversalDumper
def super2_dumper(): class Super2Dumper(yatiml.Dumper): pass yatiml.add_to_dumper(Super2Dumper, [Super2, SubA2, SubB2]) return Super2Dumper
def user_string_dumper(): class UserStringDumper(yatiml.Dumper): pass yatiml.add_to_dumper(UserStringDumper, ConstrainedString) return UserStringDumper
def enum_dumper2(): class EnumDumper2(yatiml.Dumper): pass yatiml.add_to_dumper(EnumDumper2, Color2) return EnumDumper2
def document1_dumper(): class Document1Dumper(yatiml.Dumper): pass yatiml.add_to_dumper(Document1Dumper, Document1) return Document1Dumper
name = node.get_attribute('name').get_value() node.set_value('{}.{}'.format(namespace_str, name)) class MyLoader(yatiml.Loader): pass yatiml.add_to_loader(MyLoader, Identifier) yatiml.set_document_type(MyLoader, Identifier) class MyDumper(yatiml.Dumper): pass yatiml.add_to_dumper(MyDumper, Identifier) yaml_text = ('yatiml.logger.setLevel\n') doc = yaml.load(yaml_text, Loader=MyLoader) print(type(doc)) print(doc.namespaces) print(doc.name) doc = Identifier(['yatiml'], 'add_to_loader') yaml_text = yaml.dump(doc, Dumper=MyDumper) print(yaml_text)
# Create loader class MyLoader(yatiml.Loader): pass yatiml.add_to_loader(MyLoader, Dashed) yatiml.set_document_type(MyLoader, Dashed) # Create dumper class MyDumper(yatiml.Dumper): pass yatiml.add_to_dumper(MyDumper, Dashed) # Load YAML yaml_text = ('an-attribute: 42\n' 'another-attribute: with-dashes\n') doc = yaml.load(yaml_text, Loader=MyLoader) print(type(doc)) print(doc.an_attribute) print(doc.another_attribute) # Dump YAML dumped_text = yaml.dump(doc, Dumper=MyDumper) print(dumped_text)