예제 #1
0
def broken_private_attributes_dumper():
    class BrokenPrivateAttributesDumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(BrokenPrivateAttributesDumper,
                         BrokenPrivateAttributes)
    return BrokenPrivateAttributesDumper
예제 #2
0
def complex_private_attributes_dumper():
    class ComplexPrivateAttributesDumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(ComplexPrivateAttributesDumper, Vector2D)
    yatiml.add_to_dumper(ComplexPrivateAttributesDumper,
                         ComplexPrivateAttributes)
    return ComplexPrivateAttributesDumper
예제 #3
0
def document2_dumper():
    class Document2Dumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(
        Document2Dumper,
        [Color2, Document2, Shape, Rectangle, Circle, Vector2D])
    return Document2Dumper
예제 #4
0
# 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)
예제 #5
0
def bool_fix_tester_dumper():
    class BoolFixTesterDumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(BoolFixTesterDumper, BoolFixTester)
    return BoolFixTesterDumper
예제 #6
0
def dashed_attribute_dumper():
    class DashedAttributeDumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(DashedAttributeDumper, DashedAttribute)
    return DashedAttributeDumper
예제 #7
0
def parsed_class_dumper():
    class ParsedClassDumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(ParsedClassDumper, Postcode)
    return ParsedClassDumper
예제 #8
0
def private_attributes_dumper():
    class PrivateAttributesDumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(PrivateAttributesDumper, PrivateAttributes)
    return PrivateAttributesDumper
예제 #9
0
def extensible_dumper():
    class ExtensibleDumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(ExtensibleDumper, Extensible)
    return ExtensibleDumper
예제 #10
0
def universal_dumper():
    class UniversalDumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(UniversalDumper, Universal)
    return UniversalDumper
예제 #11
0
def super2_dumper():
    class Super2Dumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(Super2Dumper, [Super2, SubA2, SubB2])
    return Super2Dumper
예제 #12
0
def user_string_dumper():
    class UserStringDumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(UserStringDumper, ConstrainedString)
    return UserStringDumper
예제 #13
0
def enum_dumper2():
    class EnumDumper2(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(EnumDumper2, Color2)
    return EnumDumper2
예제 #14
0
def document1_dumper():
    class Document1Dumper(yatiml.Dumper):
        pass

    yatiml.add_to_dumper(Document1Dumper, Document1)
    return Document1Dumper
예제 #15
0
        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)
예제 #16
0

# 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)