if mytype not in AVOIDITER:
try:
for item in obj:
walks(item, seen)
except TypeError:
pass
try:
for key, value in obj.items():
walks(key, seen) # Key might be object w/ hash method
walks(value, seen)
except AttributeError:
pass
You might also write this section something like:
if mytype not in AVOIDITER:
try:
itr = iter(obj)
except TypeError:
pass
else:
for item in itr:
walks(item, seen)
try:
walks(obj[item], seen)
except TypeError:
passThis should allow you to support any mapping type that supports iter() over the keys and the __getitem__ protocol.
Steve -- http://mail.python.org/mailman/listinfo/python-list
