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

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

Major refactoring.

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'
[136]26    def __init__(self, tag, value,
[133]27            start_mark=None, end_mark=None, style=None):
[132]28        self.tag = tag
29        self.value = value
30        self.start_mark = start_mark
31        self.end_mark = end_mark
[133]32        self.style = style
[53]33
34class CollectionNode(Node):
[133]35    def __init__(self, tag, value,
36            start_mark=None, end_mark=None, flow_style=None):
37        self.tag = tag
38        self.value = value
39        self.start_mark = start_mark
40        self.end_mark = end_mark
41        self.flow_style = flow_style
[53]42
43class SequenceNode(CollectionNode):
[55]44    id = 'sequence'
[53]45
46class MappingNode(CollectionNode):
[55]47    id = 'mapping'
[53]48
Note: See TracBrowser for help on using the repository browser.