diff options
author | Fred Drake <fdrake@acm.org> | 1999-06-18 17:12:36 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 1999-06-18 17:12:36 (GMT) |
commit | 4f298695bebfde439c074731d21dc5dd8d4bb08c (patch) | |
tree | d42876f4d98210779c49901221d6f2ba436cc4dd | |
parent | 46e1a32edf861c380d3c65574e180b1951abf2f7 (diff) | |
download | cpython-4f298695bebfde439c074731d21dc5dd8d4bb08c.zip cpython-4f298695bebfde439c074731d21dc5dd8d4bb08c.tar.gz cpython-4f298695bebfde439c074731d21dc5dd8d4bb08c.tar.bz2 |
Relocating file to Lib/lib-old.
-rw-r--r-- | Lib/dump.py | 63 |
1 files changed, 0 insertions, 63 deletions
diff --git a/Lib/dump.py b/Lib/dump.py deleted file mode 100644 index ec895b7..0000000 --- a/Lib/dump.py +++ /dev/null @@ -1,63 +0,0 @@ -# Module 'dump' -# -# Print python code that reconstructs a variable. -# This only works in certain cases. -# -# It works fine for: -# - ints and floats (except NaNs and other weird things) -# - strings -# - 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 -# though). -# -# It does not work for functions (all sorts), classes, class objects, -# windows, files etc. -# -# 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 -# -def dumpsymtab(dict): - for key in dict.keys(): - dumpvar(key, dict[key]) - -# Dump a single variable -# -def dumpvar(name, x): - import sys - t = type(x) - if t == type({}): - print name, '= {}' - for key in x.keys(): - item = x[key] - if not printable(item): - print '#', - print name, '[', `key`, '] =', `item` - elif t in (type(''), type(0), type(0.0), type([]), type(())): - if not printable(x): - print '#', - print name, '=', `x` - elif t == type(sys): - print 'import', name, '#', x - else: - print '#', name, '=', x - -# check if a value is printable in a way that can be read back with input() -# -def printable(x): - t = type(x) - if t in (type(''), type(0), type(0.0)): - return 1 - if t in (type([]), type(())): - for item in x: - if not printable(item): - return 0 - return 1 - if x == {}: - return 1 - return 0 |