Changeset 377 for pyyaml/trunk/lib/yaml
- Timestamp:
- 05/29/11 22:51:30 (12 months ago)
- Location:
- pyyaml/trunk/lib/yaml
- Files:
-
- 4 modified
-
__init__.py (modified) (9 diffs)
-
constructor.py (modified) (1 diff)
-
emitter.py (modified) (1 diff)
-
parser.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
pyyaml/trunk/lib/yaml/__init__.py
r360 r377 22 22 """ 23 23 loader = Loader(stream) 24 while loader.check_token(): 25 yield loader.get_token() 24 try: 25 while loader.check_token(): 26 yield loader.get_token() 27 finally: 28 loader.dispose() 26 29 27 30 def parse(stream, Loader=Loader): … … 30 33 """ 31 34 loader = Loader(stream) 32 while loader.check_event(): 33 yield loader.get_event() 35 try: 36 while loader.check_event(): 37 yield loader.get_event() 38 finally: 39 loader.dispose() 34 40 35 41 def compose(stream, Loader=Loader): … … 39 45 """ 40 46 loader = Loader(stream) 41 return loader.get_single_node() 47 try: 48 return loader.get_single_node() 49 finally: 50 loader.dispose() 42 51 43 52 def compose_all(stream, Loader=Loader): … … 47 56 """ 48 57 loader = Loader(stream) 49 while loader.check_node(): 50 yield loader.get_node() 58 try: 59 while loader.check_node(): 60 yield loader.get_node() 61 finally: 62 loader.dispose() 51 63 52 64 def load(stream, Loader=Loader): … … 56 68 """ 57 69 loader = Loader(stream) 58 return loader.get_single_data() 70 try: 71 return loader.get_single_data() 72 finally: 73 loader.dispose() 59 74 60 75 def load_all(stream, Loader=Loader): … … 64 79 """ 65 80 loader = Loader(stream) 66 while loader.check_data(): 67 yield loader.get_data() 81 try: 82 while loader.check_data(): 83 yield loader.get_data() 84 finally: 85 loader.dispose() 68 86 69 87 def safe_load(stream): … … 97 115 dumper = Dumper(stream, canonical=canonical, indent=indent, width=width, 98 116 allow_unicode=allow_unicode, line_break=line_break) 99 for event in events: 100 dumper.emit(event) 117 try: 118 for event in events: 119 dumper.emit(event) 120 finally: 121 dumper.dispose() 101 122 if getvalue: 102 123 return getvalue() … … 123 144 encoding=encoding, version=version, tags=tags, 124 145 explicit_start=explicit_start, explicit_end=explicit_end) 125 dumper.open() 126 for node in nodes: 127 dumper.serialize(node) 128 dumper.close() 146 try: 147 dumper.open() 148 for node in nodes: 149 dumper.serialize(node) 150 dumper.close() 151 finally: 152 dumper.dispose() 129 153 if getvalue: 130 154 return getvalue() … … 161 185 encoding=encoding, version=version, tags=tags, 162 186 explicit_start=explicit_start, explicit_end=explicit_end) 163 dumper.open() 164 for data in documents: 165 dumper.represent(data) 166 dumper.close() 187 try: 188 dumper.open() 189 for data in documents: 190 dumper.represent(data) 191 dumper.close() 192 finally: 193 dumper.dispose() 167 194 if getvalue: 168 195 return getvalue() -
pyyaml/trunk/lib/yaml/constructor.py
r303 r377 59 59 60 60 def construct_object(self, node, deep=False): 61 if node in self.constructed_objects: 62 return self.constructed_objects[node] 61 63 if deep: 62 64 old_deep = self.deep_construct 63 65 self.deep_construct = True 64 if node in self.constructed_objects:65 return self.constructed_objects[node]66 66 if node in self.recursive_objects: 67 67 raise ConstructorError(None, None, -
pyyaml/trunk/lib/yaml/emitter.py
r351 r377 103 103 self.analysis = None 104 104 self.style = None 105 106 def dispose(self): 107 # Reset the state attributes (to clear self-references) 108 self.states = [] 109 self.state = None 105 110 106 111 def emit(self, event): -
pyyaml/trunk/lib/yaml/parser.py
r302 r377 87 87 self.state = self.parse_stream_start 88 88 89 def dispose(self): 90 # Reset the state attributes (to clear self-references) 91 self.states = [] 92 self.state = None 93 89 94 def check_event(self, *choices): 90 95 # Check the type of the next event.
