1 | |
---|
2 | # Abstract classes. |
---|
3 | |
---|
4 | class 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 | |
---|
15 | class 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 | |
---|
21 | class 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 | |
---|
31 | class CollectionEndEvent(Event): |
---|
32 | pass |
---|
33 | |
---|
34 | # Implementations. |
---|
35 | |
---|
36 | class 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 | |
---|
42 | class StreamEndEvent(Event): |
---|
43 | pass |
---|
44 | |
---|
45 | class 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 | |
---|
54 | class 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 | |
---|
61 | class AliasEvent(NodeEvent): |
---|
62 | pass |
---|
63 | |
---|
64 | class 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 | |
---|
75 | class SequenceStartEvent(CollectionStartEvent): |
---|
76 | pass |
---|
77 | |
---|
78 | class SequenceEndEvent(CollectionEndEvent): |
---|
79 | pass |
---|
80 | |
---|
81 | class MappingStartEvent(CollectionStartEvent): |
---|
82 | pass |
---|
83 | |
---|
84 | class MappingEndEvent(CollectionEndEvent): |
---|
85 | pass |
---|
86 | |
---|