[py-svn] r34097 - in py/dist/py/apigen: rest tracer
guido at codespeak.net
guido at codespeak.net
Fri Nov 3 14:08:18 CET 2006
Author: guido
Date: Fri Nov 3 14:08:16 2006
New Revision: 34097
Modified:
py/dist/py/apigen/rest/genrest.py
py/dist/py/apigen/tracer/description.py
Log:
Fixed problems with deepcopy() not being able to copy everything, adjusted
genrest to cope with the changes in tracer.
Modified: py/dist/py/apigen/rest/genrest.py
==============================================================================
--- py/dist/py/apigen/rest/genrest.py (original)
+++ py/dist/py/apigen/rest/genrest.py Fri Nov 3 14:08:16 2006
@@ -332,14 +332,8 @@
local_changes = self.dsa.get_function_local_changes(functionname)
lst.append(Paragraph('Changes in __dict__:'))
- from py.__.apigen.tracer.description import NoValue
- for k, (oldvalue, newvalue) in local_changes.iteritems():
- description = 'value changed'
- if oldvalue is NoValue:
- description = 'newly added'
- elif newvalue is NoValue:
- description = 'deleted'
- lst.append(ListItem('%s: %s' % (k, description)))
+ for k, changeset in local_changes.iteritems():
+ lst.append(ListItem('%s: %s' % (k, ', '.join(changeset))))
# XXX missing implementation of dsa.get_function_location()
#filename, lineno = self.dsa.get_function_location(functionname)
Modified: py/dist/py/apigen/tracer/description.py
==============================================================================
--- py/dist/py/apigen/tracer/description.py (original)
+++ py/dist/py/apigen/tracer/description.py Fri Nov 3 14:08:16 2006
@@ -250,8 +250,19 @@
return
except AttributeError:
return
- #self.old_dict = self.perform_dict_copy(obj.__dict__)
- self.old_dict = copy.deepcopy(obj.__dict__)
+ self.old_dict = self.perform_dict_copy(obj.__dict__)
+
+ def perform_dict_copy(self, d):
+ try:
+ c = copy.deepcopy(d)
+ except:
+ c = {}
+ for k, v in d.iteritems():
+ try:
+ c[k] = copy.deepcopy(v)
+ except:
+ c[k] = v
+ return c
def consider_end_locals(self, frame):
obj = frame.f_locals[self.pyobj.im_func.func_code.co_varnames[0]]
More information about the py-svn
mailing list