blob: 6c2742111f227afc83e736c43ecb032ee576e6c3 [file] [log] [blame]
class Node:
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)
return '%s(tag=%r, value=%s)' % (self.__class__.__name__, self.tag, value)
class ScalarNode(Node):
id = 'scalar'
class CollectionNode(Node):
pass
class SequenceNode(CollectionNode):
id = 'sequence'
class MappingNode(CollectionNode):
id = 'mapping'