id,summary,reporter,owner,description,type,status,priority,component,severity,resolution,keywords,cc
147,Loader and Dumper leave circular references around,kristjan@…,xi,"In an environment where the gc module is turned off, having circular references is evil.
When yaml.Loader and yaml.Dumper have finished processing a stream, they leave a bound method in their .state attribute. This causes the loaders and dumpers to stick around.
We have patched this locally by doing, for example:
{{{
#!python
dumper=Dumper()
dumper.open()
try:
for data in documents:
dumper.represent(data)
dumper.close()
finally:
dumpter.state = dumper.states = None
}}}
Maybe there is a better way. Perhaps the Dumper and Loader should both have close() methods that clear the state.
Another way would be to not keep instancemethods in state, but rather class methods and bind them to '''self''' at runtime.",defect,closed,normal,pyyaml,normal,fixed,,