Library for converting yaml structures to Python objects, based on a predefined object hierarchy schema.
Project description
Library for converting yaml structures to Python objects, based on a predefined object hierarchy schema.
Given a schema of class hierarchy
from wattle import load_schema from wattle.nodes import Nested, Value class MessagePrinter: indent = Value(int) capitalize = Value(bool) def print(self, message): if self.indent: message = (" " * self.indent) + message if self.capitalize: message = message.upper() print(message) class HelloWorld: message = Value(str) how_many_times = Value(int, default=25) printer = Nested(MessagePrinter) def print(self): for _ in range(self.how_many_times): self.printer.print(self.message) if __name__ == '__main__': schema = load_schema(HelloWorld) root = schema.read('examples/hello_world/input.yml') root.print()
and the input yaml file
message: Hello world how_many_times: 5 printer: indent: 4 capitalize: yes
Will result in an already populated object
assert root.message == 'Hello world' assert isinstance(root.printer, MessagePrinter) root.print()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
woning-wattle-0.4.1.tar.gz
(5.3 kB
view hashes)
Built Distribution
Close
Hashes for woning_wattle-0.4.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce872ca771768b641245c44ea12ecf16bfeff0beedc34fc71405456cda9259bc |
|
MD5 | 24a5459c3c658266a2097bc3d160174f |
|
BLAKE2b-256 | a9d9034f07cc8547a5e060b3fe92b7108da7769d4d06f3666d1a70b8425d6539 |