19 items
NAME ↑ SIZE MODIFIED PERMS ACTIONS
.. / Parent Directory
__pycache__ — dir
2024-11-25 20:37 · rwxr-xr-x
2024-11-25 20:37 rwxr-xr-x
__init__.py — 12.86 KB
2021-01-20 21:40 · rw-r--r--
12.86 KB 2021-01-20 21:40 rw-r--r--
_yaml.cpython-39-x86_64-linux-gnu.so — 240.62 KB
2022-03-30 13:51 · rwxr-xr-x
240.62 KB 2022-03-30 13:51 rwxr-xr-x
composer.py — 4.77 KB
2021-01-20 21:40 · rw-r--r--
4.77 KB 2021-01-20 21:40 rw-r--r--
constructor.py — 27.97 KB
2021-01-20 21:40 · rw-r--r--
27.97 KB 2021-01-20 21:40 rw-r--r--
cyaml.py — 3.76 KB
2021-01-20 21:40 · rw-r--r--
3.76 KB 2021-01-20 21:40 rw-r--r--
dumper.py — 2.77 KB
2021-01-20 21:40 · rw-r--r--
2.77 KB 2021-01-20 21:40 rw-r--r--
emitter.py — 42 KB
2021-01-20 21:40 · rw-r--r--
42 KB 2021-01-20 21:40 rw-r--r--
error.py — 2.47 KB
2021-01-20 21:40 · rw-r--r--
2.47 KB 2021-01-20 21:40 rw-r--r--
events.py — 2.39 KB
2021-01-20 21:40 · rw-r--r--
2.39 KB 2021-01-20 21:40 rw-r--r--
loader.py — 2.01 KB
2021-01-20 21:40 · rw-r--r--
2.01 KB 2021-01-20 21:40 rw-r--r--
nodes.py — 1.41 KB
2021-01-20 21:40 · rw-r--r--
1.41 KB 2021-01-20 21:40 rw-r--r--
parser.py — 24.9 KB
2021-01-20 21:40 · rw-r--r--
24.9 KB 2021-01-20 21:40 rw-r--r--
reader.py — 6.63 KB
2021-01-20 21:40 · rw-r--r--
6.63 KB 2021-01-20 21:40 rw-r--r--
representer.py — 13.85 KB
2021-01-20 21:40 · rw-r--r--
13.85 KB 2021-01-20 21:40 rw-r--r--
resolver.py — 8.79 KB
2021-01-20 21:40 · rw-r--r--
8.79 KB 2021-01-20 21:40 rw-r--r--
scanner.py — 50.08 KB
2021-01-20 21:40 · rw-r--r--
50.08 KB 2021-01-20 21:40 rw-r--r--
serializer.py — 4.07 KB
2021-01-20 21:40 · rw-r--r--
4.07 KB 2021-01-20 21:40 rw-r--r--
tokens.py — 2.51 KB
2021-01-20 21:40 · rw-r--r--
2.51 KB 2021-01-20 21:40 rw-r--r--
ONLINE
yaml
19 items
03:59:04
TERMINAL FM
Edit
Preview
Download
Rename
Copy
Chmod
Delete
__all__ = ['Serializer', 'SerializerError'] from .error import YAMLError from .events import * from .nodes import * class SerializerError(YAMLError): pass class Serializer: ANCHOR_TEMPLATE = 'id%03d' def __init__(self, encoding=None, explicit_start=None, explicit_end=None, version=None, tags=None): self.use_encoding = encoding self.use_explicit_start = explicit_start self.use_explicit_end = explicit_end self.use_version = version self.use_tags = tags self.serialized_nodes = {} self.anchors = {} self.last_anchor_id = 0 self.closed = None def open(self): if self.closed is None: self.emit(StreamStartEvent(encoding=self.use_encoding)) self.closed = False elif self.closed: raise SerializerError("serializer is closed") else: raise SerializerError("serializer is already opened") def close(self): if self.closed is None: raise SerializerError("serializer is not opened") elif not self.closed: self.emit(StreamEndEvent()) self.closed = True #def __del__(self): # self.close() def serialize(self, node): if self.closed is None: raise SerializerError("serializer is not opened") elif self.closed: raise SerializerError("serializer is closed") self.emit(DocumentStartEvent(explicit=self.use_explicit_start, version=self.use_version, tags=self.use_tags)) self.anchor_node(node) self.serialize_node(node, None, None) self.emit(DocumentEndEvent(explicit=self.use_explicit_end)) self.serialized_nodes = {} self.anchors = {} self.last_anchor_id = 0 def anchor_node(self, node): if node in self.anchors: if self.anchors[node] is None: self.anchors[node] = self.generate_anchor(node) else: self.anchors[node] = None if isinstance(node, SequenceNode): for item in node.value: self.anchor_node(item) elif isinstance(node, MappingNode): for key, value in node.value: self.anchor_node(key) self.anchor_node(value) def generate_anchor(self, node): self.last_anchor_id += 1 return self.ANCHOR_TEMPLATE % self.last_anchor_id def serialize_node(self, node, parent, index): alias = self.anchors[node] if node in self.serialized_nodes: self.emit(AliasEvent(alias)) else: self.serialized_nodes[node] = True self.descend_resolver(parent, index) if isinstance(node, ScalarNode): detected_tag = self.resolve(ScalarNode, node.value, (True, False)) default_tag = self.resolve(ScalarNode, node.value, (False, True)) implicit = (node.tag == detected_tag), (node.tag == default_tag) self.emit(ScalarEvent(alias, node.tag, implicit, node.value, style=node.style)) elif isinstance(node, SequenceNode): implicit = (node.tag == self.resolve(SequenceNode, node.value, True)) self.emit(SequenceStartEvent(alias, node.tag, implicit, flow_style=node.flow_style)) index = 0 for item in node.value: self.serialize_node(item, node, index) index += 1 self.emit(SequenceEndEvent()) elif isinstance(node, MappingNode): implicit = (node.tag == self.resolve(MappingNode, node.value, True)) self.emit(MappingStartEvent(alias, node.tag, implicit, flow_style=node.flow_style)) for key, value in node.value: self.serialize_node(key, node, None) self.serialize_node(value, node, key) self.emit(MappingEndEvent()) self.ascend_resolver()