summaryrefslogtreecommitdiff
path: root/sys/src/cmd/python/Tools/scripts/pickle2db.py
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
committerOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
commita73a964e51247ed169d322c725a3a18859f109a3 (patch)
tree3f752d117274d444bda44e85609aeac1acf313f3 /sys/src/cmd/python/Tools/scripts/pickle2db.py
parente64efe273fcb921a61bf27d33b230c4e64fcd425 (diff)
python, hg: tow outside the environment.
they've served us well, and can ride off into the sunset.
Diffstat (limited to 'sys/src/cmd/python/Tools/scripts/pickle2db.py')
-rw-r--r--sys/src/cmd/python/Tools/scripts/pickle2db.py147
1 files changed, 0 insertions, 147 deletions
diff --git a/sys/src/cmd/python/Tools/scripts/pickle2db.py b/sys/src/cmd/python/Tools/scripts/pickle2db.py
deleted file mode 100644
index 86545ccac..000000000
--- a/sys/src/cmd/python/Tools/scripts/pickle2db.py
+++ /dev/null
@@ -1,147 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Synopsis: %(prog)s [-h|-b|-g|-r|-a|-d] [ picklefile ] dbfile
-
-Read the given picklefile as a series of key/value pairs and write to a new
-database. If the database already exists, any contents are deleted. The
-optional flags indicate the type of the output database:
-
- -a - open using anydbm
- -b - open as bsddb btree file
- -d - open as dbm file
- -g - open as gdbm file
- -h - open as bsddb hash file
- -r - open as bsddb recno file
-
-The default is hash. If a pickle file is named it is opened for read
-access. If no pickle file is named, the pickle input is read from standard
-input.
-
-Note that recno databases can only contain integer keys, so you can't dump a
-hash or btree database using db2pickle.py and reconstitute it to a recno
-database with %(prog)s unless your keys are integers.
-
-"""
-
-import getopt
-try:
- import bsddb
-except ImportError:
- bsddb = None
-try:
- import dbm
-except ImportError:
- dbm = None
-try:
- import gdbm
-except ImportError:
- gdbm = None
-try:
- import anydbm
-except ImportError:
- anydbm = None
-import sys
-try:
- import cPickle as pickle
-except ImportError:
- import pickle
-
-prog = sys.argv[0]
-
-def usage():
- sys.stderr.write(__doc__ % globals())
-
-def main(args):
- try:
- opts, args = getopt.getopt(args, "hbrdag",
- ["hash", "btree", "recno", "dbm", "anydbm",
- "gdbm"])
- except getopt.error:
- usage()
- return 1
-
- if len(args) == 0 or len(args) > 2:
- usage()
- return 1
- elif len(args) == 1:
- pfile = sys.stdin
- dbfile = args[0]
- else:
- try:
- pfile = open(args[0], 'rb')
- except IOError:
- sys.stderr.write("Unable to open %s\n" % args[0])
- return 1
- dbfile = args[1]
-
- dbopen = None
- for opt, arg in opts:
- if opt in ("-h", "--hash"):
- try:
- dbopen = bsddb.hashopen
- except AttributeError:
- sys.stderr.write("bsddb module unavailable.\n")
- return 1
- elif opt in ("-b", "--btree"):
- try:
- dbopen = bsddb.btopen
- except AttributeError:
- sys.stderr.write("bsddb module unavailable.\n")
- return 1
- elif opt in ("-r", "--recno"):
- try:
- dbopen = bsddb.rnopen
- except AttributeError:
- sys.stderr.write("bsddb module unavailable.\n")
- return 1
- elif opt in ("-a", "--anydbm"):
- try:
- dbopen = anydbm.open
- except AttributeError:
- sys.stderr.write("anydbm module unavailable.\n")
- return 1
- elif opt in ("-g", "--gdbm"):
- try:
- dbopen = gdbm.open
- except AttributeError:
- sys.stderr.write("gdbm module unavailable.\n")
- return 1
- elif opt in ("-d", "--dbm"):
- try:
- dbopen = dbm.open
- except AttributeError:
- sys.stderr.write("dbm module unavailable.\n")
- return 1
- if dbopen is None:
- if bsddb is None:
- sys.stderr.write("bsddb module unavailable - ")
- sys.stderr.write("must specify dbtype.\n")
- return 1
- else:
- dbopen = bsddb.hashopen
-
- try:
- db = dbopen(dbfile, 'c')
- except bsddb.error:
- sys.stderr.write("Unable to open %s. " % dbfile)
- sys.stderr.write("Check for format or version mismatch.\n")
- return 1
- else:
- for k in db.keys():
- del db[k]
-
- while 1:
- try:
- (key, val) = pickle.load(pfile)
- except EOFError:
- break
- db[key] = val
-
- db.close()
- pfile.close()
-
- return 0
-
-if __name__ == "__main__":
- sys.exit(main(sys.argv[1:]))