Changeset 377 for pyyaml/trunk/lib3/yaml
- Timestamp:
- 05/29/11 22:51:30 (12 months ago)
- Location:
- pyyaml/trunk/lib3/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/lib3/yaml/__init__.py
r360 r377 23 23 """ 24 24 loader = Loader(stream) 25 while loader.check_token(): 26 yield loader.get_token() 25 try: 26 while loader.check_token(): 27 yield loader.get_token() 28 finally: 29 loader.dispose() 27 30 28 31 def parse(stream, Loader=Loader): … … 31 34 """ 32 35 loader = Loader(stream) 33 while loader.check_event(): 34 yield loader.get_event() 36 try: 37 while loader.check_event(): 38 yield loader.get_event() 39 finally: 40 loader.dispose() 35 41 36 42 def compose(stream, Loader=Loader): … … 40 46 """ 41 47 loader = Loader(stream) 42 return loader.get_single_node() 48 try: 49 return loader.get_single_node() 50 finally: 51 loader.dispose() 43 52 44 53 def compose_all(stream, Loader=Loader): … … 48 57 """ 49 58 loader = Loader(stream) 50 while loader.check_node(): 51 yield loader.get_node() 59 try: 60 while loader.check_node(): 61 yield loader.get_node() 62 finally: 63 loader.dispose() 52 64 53 65 def load(stream, Loader=Loader): … … 57 69 """ 58 70 loader = Loader(stream) 59 return loader.get_single_data() 71 try: 72 return loader.get_single_data() 73 finally: 74 loader.dispose() 60 75 61 76 def load_all(stream, Loader=Loader): … … 65 80 """ 66 81 loader = Loader(stream) 67 while loader.check_data(): 68 yield loader.get_data() 82 try: 83 while loader.check_data(): 84 yield loader.get_data() 85 finally: 86 loader.dispose() 69 87 70 88 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() … … 122 143 encoding=encoding, version=version, tags=tags, 123 144 explicit_start=explicit_start, explicit_end=explicit_end) 124 dumper.open() 125 for node in nodes: 126 dumper.serialize(node) 127 dumper.close() 145 try: 146 dumper.open() 147 for node in nodes: 148 dumper.serialize(node) 149 dumper.close() 150 finally: 151 dumper.dispose() 128 152 if getvalue: 129 153 return getvalue() … … 159 183 encoding=encoding, version=version, tags=tags, 160 184 explicit_start=explicit_start, explicit_end=explicit_end) 161 dumper.open() 162 for data in documents: 163 dumper.represent(data) 164 dumper.close() 185 try: 186 dumper.open() 187 for data in documents: 188 dumper.represent(data) 189 dumper.close() 190 finally: 191 dumper.dispose() 165 192 if getvalue: 166 193 return getvalue() -
pyyaml/trunk/lib3/yaml/constructor.py
r361 r377 52 52 53 53 def construct_object(self, node, deep=False): 54 if node in self.constructed_objects: 55 return self.constructed_objects[node] 54 56 if deep: 55 57 old_deep = self.deep_construct 56 58 self.deep_construct = True 57 if node in self.constructed_objects:58 return self.constructed_objects[node]59 59 if node in self.recursive_objects: 60 60 raise ConstructorError(None, None, -
pyyaml/trunk/lib3/yaml/emitter.py
r359 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/lib3/yaml/parser.py
r328 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.
