source: pyyaml/trunk/lib/yaml/nodes.py @ 133

Revision 133, 1.4 KB checked in by xi, 8 years ago (diff)

Implement yaml.dump().

RevLine 
[53]1
2class Node:
[116]3    def __init__(self, tag, value, start_mark, end_mark):
[53]4        self.tag = tag
5        self.value = value
[116]6        self.start_mark = start_mark
7        self.end_mark = end_mark
[53]8    def __repr__(self):
9        value = self.value
10        if isinstance(value, list):
11            if len(value) == 0:
12                value = '<empty>'
13            elif len(value) == 1:
14                value = '<1 item>'
15            else:
16                value = '<%d items>' % len(value)
17        else:
18            if len(value) > 75:
19                value = repr(value[:70]+u' ... ')
20            else:
21                value = repr(value)
22        return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value)
23
24class ScalarNode(Node):
[55]25    id = 'scalar'
[133]26    def __init__(self, tag, value, implicit,
27            start_mark=None, end_mark=None, style=None):
[132]28        self.tag = tag
29        self.value = value
30        self.implicit = implicit
31        self.start_mark = start_mark
32        self.end_mark = end_mark
[133]33        self.style = style
[53]34
35class CollectionNode(Node):
[133]36    def __init__(self, tag, value,
37            start_mark=None, end_mark=None, flow_style=None):
38        self.tag = tag
39        self.value = value
40        self.start_mark = start_mark
41        self.end_mark = end_mark
42        self.flow_style = flow_style
[53]43
44class SequenceNode(CollectionNode):
[55]45    id = 'sequence'
[53]46
47class MappingNode(CollectionNode):
[55]48    id = 'mapping'
[53]49
Note: See TracBrowser for help on using the repository browser.