# Print python code that reconstructs a variable.
# This only works in certain cases.
# - ints and floats (except NaNs and other weird things)
# - compounds and lists, provided it works for all their elements
# - imported modules, provided their name is the module name
# It works for top-level dictionaries but not for dictionaries
# contained in other objects (could be made to work with some hassle
# It does not work for functions (all sorts), classes, class objects,
# Finally, objects referenced by more than one name or contained in more
# than one other object lose their sharing property (this is bad for
# strings used as exception identifiers, for instance).
# Dump a whole symbol table
print name
, '[', `key`
, '] =', `item`
elif t
in (type(''), type(0), type(0.0), type([]), type(())):
print 'import', name
, '#', x
# check if a value is printable in a way that can be read back with input()
if t
in (type(''), type(0), type(0.0)):
if t
in (type([]), type(())):