You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
6 years ago
|
|
||
|
class Node(object):
|
||
|
def __init__(self, tag, value, start_mark, end_mark):
|
||
|
self.tag = tag
|
||
|
self.value = value
|
||
|
self.start_mark = start_mark
|
||
|
self.end_mark = end_mark
|
||
|
def __repr__(self):
|
||
|
value = self.value
|
||
|
#if isinstance(value, list):
|
||
|
# if len(value) == 0:
|
||
|
# value = '<empty>'
|
||
|
# elif len(value) == 1:
|
||
|
# value = '<1 item>'
|
||
|
# else:
|
||
|
# value = '<%d items>' % len(value)
|
||
|
#else:
|
||
|
# if len(value) > 75:
|
||
|
# value = repr(value[:70]+u' ... ')
|
||
|
# else:
|
||
|
# value = repr(value)
|
||
|
value = repr(value)
|
||
|
return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value)
|
||
|
|
||
|
class ScalarNode(Node):
|
||
|
id = 'scalar'
|
||
|
def __init__(self, tag, value,
|
||
|
start_mark=None, end_mark=None, style=None):
|
||
|
self.tag = tag
|
||
|
self.value = value
|
||
|
self.start_mark = start_mark
|
||
|
self.end_mark = end_mark
|
||
|
self.style = style
|
||
|
|
||
|
class CollectionNode(Node):
|
||
|
def __init__(self, tag, value,
|
||
|
start_mark=None, end_mark=None, flow_style=None):
|
||
|
self.tag = tag
|
||
|
self.value = value
|
||
|
self.start_mark = start_mark
|
||
|
self.end_mark = end_mark
|
||
|
self.flow_style = flow_style
|
||
|
|
||
|
class SequenceNode(CollectionNode):
|
||
|
id = 'sequence'
|
||
|
|
||
|
class MappingNode(CollectionNode):
|
||
|
id = 'mapping'
|
||
|
|