404

[ Avaa Bypassed ]




Upload:

Command:

botdev@3.149.236.120: ~ $
__all__ = ['Serializer', 'SerializerError']

from error import YAMLError
from events import *
from nodes import *

class SerializerError(YAMLError):
    pass

class Serializer(object):

    ANCHOR_TEMPLATE = u'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()


Filemanager

Name Type Size Permission Actions
__init__.py File 9.55 KB 0644
__init__.pyc File 11.09 KB 0644
composer.py File 4.81 KB 0644
composer.pyc File 4.4 KB 0644
constructor.py File 24.56 KB 0644
constructor.pyc File 21.3 KB 0644
cyaml.py File 3.21 KB 0644
cyaml.pyc File 3.7 KB 0644
dumper.py File 2.66 KB 0644
dumper.pyc File 2.49 KB 0644
emitter.py File 42.41 KB 0644
emitter.pyc File 31.21 KB 0644
error.py File 2.5 KB 0644
error.pyc File 2.88 KB 0644
events.py File 2.39 KB 0644
events.pyc File 4.78 KB 0644
loader.py File 1.11 KB 0644
loader.pyc File 1.83 KB 0644
nodes.py File 1.41 KB 0644
nodes.pyc File 2.12 KB 0644
parser.py File 24.94 KB 0644
parser.pyc File 14.3 KB 0644
reader.py File 6.77 KB 0644
reader.pyc File 5.57 KB 0644
representer.py File 17.3 KB 0644
representer.pyc File 14.28 KB 0644
resolver.py File 8.91 KB 0644
resolver.pyc File 6.52 KB 0644
scanner.py File 51.22 KB 0644
scanner.pyc File 32.09 KB 0644
serializer.py File 4.07 KB 0644
serializer.pyc File 4.21 KB 0644
tokens.py File 2.51 KB 0644
tokens.pyc File 6.28 KB 0644