1 2# Abstract classes. 3 4class Event(object): 5 def __init__(self, start_mark=None, end_mark=None): 6 self.start_mark = start_mark 7 self.end_mark = end_mark 8 def __repr__(self): 9 attributes = [key for key in ['anchor', 'tag', 'implicit', 'value'] 10 if hasattr(self, key)] 11 arguments = ', '.join(['%s=%r' % (key, getattr(self, key)) 12 for key in attributes]) 13 return '%s(%s)' % (self.__class__.__name__, arguments) 14 15class NodeEvent(Event): 16 def __init__(self, anchor, start_mark=None, end_mark=None): 17 self.anchor = anchor 18 self.start_mark = start_mark 19 self.end_mark = end_mark 20 21class CollectionStartEvent(NodeEvent): 22 def __init__(self, anchor, tag, implicit, start_mark=None, end_mark=None, 23 flow_style=None): 24 self.anchor = anchor 25 self.tag = tag 26 self.implicit = implicit 27 self.start_mark = start_mark 28 self.end_mark = end_mark 29 self.flow_style = flow_style 30 31class CollectionEndEvent(Event): 32 pass 33 34# Implementations. 35 36class StreamStartEvent(Event): 37 def __init__(self, start_mark=None, end_mark=None, encoding=None): 38 self.start_mark = start_mark 39 self.end_mark = end_mark 40 self.encoding = encoding 41 42class StreamEndEvent(Event): 43 pass 44 45class DocumentStartEvent(Event): 46 def __init__(self, start_mark=None, end_mark=None, 47 explicit=None, version=None, tags=None): 48 self.start_mark = start_mark 49 self.end_mark = end_mark 50 self.explicit = explicit 51 self.version = version 52 self.tags = tags 53 54class DocumentEndEvent(Event): 55 def __init__(self, start_mark=None, end_mark=None, 56 explicit=None): 57 self.start_mark = start_mark 58 self.end_mark = end_mark 59 self.explicit = explicit 60 61class AliasEvent(NodeEvent): 62 pass 63 64class ScalarEvent(NodeEvent): 65 def __init__(self, anchor, tag, implicit, value, 66 start_mark=None, end_mark=None, style=None): 67 self.anchor = anchor 68 self.tag = tag 69 self.implicit = implicit 70 self.value = value 71 self.start_mark = start_mark 72 self.end_mark = end_mark 73 self.style = style 74 75class SequenceStartEvent(CollectionStartEvent): 76 pass 77 78class SequenceEndEvent(CollectionEndEvent): 79 pass 80 81class MappingStartEvent(CollectionStartEvent): 82 pass 83 84class MappingEndEvent(CollectionEndEvent): 85 pass 86 87