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