Major refactoring.
[pyyaml/python3.git] / lib / yaml / nodes.py
blob1f9f094fb877be1ecfa015e11e6c2924ca816428
2 class Node:
3 def __init__(self, tag, value, start_mark, end_mark):
4 self.tag = tag
5 self.value = value
6 self.start_mark = start_mark
7 self.end_mark = end_mark
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)
24 class ScalarNode(Node):
25 id = 'scalar'
26 def __init__(self, tag, value,
27 start_mark=None, end_mark=None, style=None):
28 self.tag = tag
29 self.value = value
30 self.start_mark = start_mark
31 self.end_mark = end_mark
32 self.style = style
34 class CollectionNode(Node):
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
43 class SequenceNode(CollectionNode):
44 id = 'sequence'
46 class MappingNode(CollectionNode):
47 id = 'mapping'