/usr/lib/python2.6/site-packages/tablib/packages/yaml
NameSizeModeActions
composer.py49210644editdlrm
composer.pyc46930644editdlrm
constructor.py253560644editdlrm
constructor.pyc227810644editdlrm
cyaml.py32900644editdlrm
cyaml.pyc39440644editdlrm
dumper.py27190644editdlrm
dumper.pyc26370644editdlrm
emitter.py431590644editdlrm
emitter.pyc330330644editdlrm
error.py25590644editdlrm
error.pyc30860644editdlrm
events.py24450644editdlrm
events.pyc52090644editdlrm
loader.py11320644editdlrm
loader.pyc19600644editdlrm
nodes.py14400644editdlrm
nodes.pyc22860644editdlrm
parser.py254030644editdlrm
parser.pyc150110644editdlrm
reader.py81390644editdlrm
reader.pyc68880644editdlrm
representer.py177060644editdlrm
representer.pyc152930644editdlrm
resolver.py89720644editdlrm
resolver.pyc68440644editdlrm
scanner.py526300644editdlrm
scanner.pyc343320644editdlrm
serializer.py41710644editdlrm
serializer.pyc44670644editdlrm
tokens.py25730644editdlrm
tokens.pyc68280644editdlrm
__init__.py92730644editdlrm
__init__.pyc114630644editdlrm
Edit: /usr/lib/python2.6/site-packages/tablib/packages/yaml/serializer.py (4171B)
__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()