[Checkins] SVN: zope.copy/trunk/ Fix resource warning under Python 3.2.
Tres Seaver
cvs-admin at zope.org
Wed Jun 13 21:00:19 UTC 2012
Log message for revision 126856:
Fix resource warning under Python 3.2.
Changed:
_U zope.copy/trunk/
U zope.copy/trunk/src/zope/copy/__init__.py
-=-
Modified: zope.copy/trunk/src/zope/copy/__init__.py
===================================================================
--- zope.copy/trunk/src/zope/copy/__init__.py 2012-06-13 21:00:11 UTC (rev 126855)
+++ zope.copy/trunk/src/zope/copy/__init__.py 2012-06-13 21:00:15 UTC (rev 126856)
@@ -21,30 +21,30 @@
def clone(obj):
"""Clone an object by pickling and unpickling it"""
- tmp = tempfile.TemporaryFile()
- persistent = CopyPersistent(obj)
+ with tempfile.TemporaryFile() as tmp:
+ persistent = CopyPersistent(obj)
- # Pickle the object to a temporary file
- pickler = Pickler(tmp, 2)
- pickler.persistent_id = persistent.id
- pickler.dump(obj)
+ # Pickle the object to a temporary file
+ pickler = Pickler(tmp, 2)
+ pickler.persistent_id = persistent.id
+ pickler.dump(obj)
- # Now load it back
- tmp.seek(0)
- unpickler = Unpickler(tmp)
- unpickler.persistent_load = persistent.load
+ # Now load it back
+ tmp.seek(0)
+ unpickler = Unpickler(tmp)
+ unpickler.persistent_load = persistent.load
- res = unpickler.load()
- # run the registered cleanups
- def convert(obj):
- pid = _get_pid(pickler, id(obj))
- try:
- return _get_obj(unpickler, pid)
- except KeyError: #pragma NO COVER pypy
- return _get_obj(unpickler, str(pid))
- for call in persistent.registered:
- call(convert)
- return res
+ res = unpickler.load()
+ # run the registered cleanups
+ def convert(obj):
+ pid = _get_pid(pickler, id(obj))
+ try:
+ return _get_obj(unpickler, pid)
+ except KeyError: #pragma NO COVER pypy
+ return _get_obj(unpickler, str(pid))
+ for call in persistent.registered:
+ call(convert)
+ return res
def copy(obj):
"""Clone an object, clearing the __name__ and __parent__ attribute
More information about the checkins
mailing list