master
py 50 lines 1.44 KB
Raw
1 # SPDX-License-Identifier: MIT
2
3 class Node(object):
4 def __init__(self, tag, value, start_mark, end_mark):
5 self.tag = tag
6 self.value = value
7 self.start_mark = start_mark
8 self.end_mark = end_mark
9 def __repr__(self):
10 value = self.value
11 #if isinstance(value, list):
12 # if len(value) == 0:
13 # value = '<empty>'
14 # elif len(value) == 1:
15 # value = '<1 item>'
16 # else:
17 # value = '<%d items>' % len(value)
18 #else:
19 # if len(value) > 75:
20 # value = repr(value[:70]+u' ... ')
21 # else:
22 # value = repr(value)
23 value = repr(value)
24 return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value)
25
26 class ScalarNode(Node):
27 id = 'scalar'
28 def __init__(self, tag, value,
29 start_mark=None, end_mark=None, style=None):
30 self.tag = tag
31 self.value = value
32 self.start_mark = start_mark
33 self.end_mark = end_mark
34 self.style = style
35
36 class CollectionNode(Node):
37 def __init__(self, tag, value,
38 start_mark=None, end_mark=None, flow_style=None):
39 self.tag = tag
40 self.value = value
41 self.start_mark = start_mark
42 self.end_mark = end_mark
43 self.flow_style = flow_style
44
45 class SequenceNode(CollectionNode):
46 id = 'sequence'
47
48 class MappingNode(CollectionNode):
49 id = 'mapping'
50