deepcopy debugging

Robin Becker robin at reportlab.com
Fri Oct 19 10:16:07 EDT 2007


I'm using deepcopy in some code which eventually ends up by crash witht he 
following rather long winded error. I'm not directly using _hashlib.HASH, but I 
suppose something else along the way could be. Is there some nice way to make 
copy/deepcopy give more information when this error happens? I know what the top 
level object is, but presumably it's something further down that's causing the 
problem.

.........

   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 291, in _deepcopy_inst
     state = deepcopy(state, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 254, in _deepcopy_dict
     y[deepcopy(key, memo)] = deepcopy(value, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 234, in _deepcopy_tuple
     y.append(deepcopy(a, memo))
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 227, in _deepcopy_list
     y.append(deepcopy(a, memo))
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 291, in _deepcopy_inst
     state = deepcopy(state, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 254, in _deepcopy_dict
     y[deepcopy(key, memo)] = deepcopy(value, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 234, in _deepcopy_tuple
     y.append(deepcopy(a, memo))
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 234, in _deepcopy_tuple
     y.append(deepcopy(a, memo))
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 291, in _deepcopy_inst
     state = deepcopy(state, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 254, in _deepcopy_dict
     y[deepcopy(key, memo)] = deepcopy(value, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 291, in _deepcopy_inst
     state = deepcopy(state, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 254, in _deepcopy_dict
     y[deepcopy(key, memo)] = deepcopy(value, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 291, in _deepcopy_inst
     state = deepcopy(state, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 254, in _deepcopy_dict
     y[deepcopy(key, memo)] = deepcopy(value, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 291, in _deepcopy_inst
     state = deepcopy(state, memo)
   File "C:\Python\lib\copy.py", line 162, in deepcopy
     y = copier(x, memo)
   File "C:\Python\lib\copy.py", line 254, in _deepcopy_dict
     y[deepcopy(key, memo)] = deepcopy(value, memo)
   File "C:\Python\lib\copy.py", line 189, in deepcopy
     y = _reconstruct(x, rv, 1, memo)
   File "C:\Python\lib\copy.py", line 322, in _reconstruct
     y = callable(*args)
   File "C:\Python\lib\copy_reg.py", line 92, in __newobj__
     return cls.__new__(cls, *args)
TypeError: object.__new__(_hashlib.HASH) is not safe, use _hashlib.HASH.__new__()
-- 
Robin Becker




More information about the Python-list mailing list