summaryrefslogtreecommitdiffstats
path: root/Lib/shelve.py
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2000-02-10 17:17:14 (GMT)
committerFred Drake <fdrake@acm.org>2000-02-10 17:17:14 (GMT)
commit13a2c279c504ae58c20baba5f0b3d1d6c0a85ed3 (patch)
tree6942aa091af39fe239eff68b0bf1292eea26da29 /Lib/shelve.py
parent857c4c36b962c6e74559e045c7fb43177dd5bcea (diff)
downloadcpython-13a2c279c504ae58c20baba5f0b3d1d6c0a85ed3.zip
cpython-13a2c279c504ae58c20baba5f0b3d1d6c0a85ed3.tar.gz
cpython-13a2c279c504ae58c20baba5f0b3d1d6c0a85ed3.tar.bz2
Untabify to pass the -tt test.
Diffstat (limited to 'Lib/shelve.py')
-rw-r--r--Lib/shelve.py218
1 files changed, 109 insertions, 109 deletions
diff --git a/Lib/shelve.py b/Lib/shelve.py
index 807a0bb..a068536 100644
--- a/Lib/shelve.py
+++ b/Lib/shelve.py
@@ -10,19 +10,19 @@ are ordinary strings.
To summarize the interface (key is a string, data is an arbitrary
object):
- import shelve
- d = shelve.open(filename) # open, with (g)dbm filename -- no suffix
+ import shelve
+ d = shelve.open(filename) # open, with (g)dbm filename -- no suffix
- d[key] = data # store data at key (overwrites old data if
- # using an existing key)
- data = d[key] # retrieve data at key (raise KeyError if no
- # such key)
- del d[key] # delete data stored at key (raises KeyError
- # if no such key)
- flag = d.has_key(key) # true if the key exists
- list = d.keys() # a list of all existing keys (slow!)
+ d[key] = data # store data at key (overwrites old data if
+ # using an existing key)
+ data = d[key] # retrieve data at key (raise KeyError if no
+ # such key)
+ del d[key] # delete data stored at key (raises KeyError
+ # if no such key)
+ flag = d.has_key(key) # true if the key exists
+ list = d.keys() # a list of all existing keys (slow!)
- d.close() # close it
+ d.close() # close it
Dependent on the implementation, closing a persistent dictionary may
or may not be necessary to flush changes to disk.
@@ -31,127 +31,127 @@ or may not be necessary to flush changes to disk.
# Try using cPickle and cStringIO if available.
try:
- from cPickle import Pickler, Unpickler
+ from cPickle import Pickler, Unpickler
except ImportError:
- from pickle import Pickler, Unpickler
+ from pickle import Pickler, Unpickler
try:
- from cStringIO import StringIO
+ from cStringIO import StringIO
except ImportError:
- from StringIO import StringIO
+ from StringIO import StringIO
class Shelf:
- """Base class for shelf implementations.
-
- This is initialized with a dictionary-like object.
- See the module's __doc__ string for an overview of the interface.
- """
-
- def __init__(self, dict):
- self.dict = dict
-
- def keys(self):
- return self.dict.keys()
-
- def __len__(self):
- return len(self.dict)
-
- def has_key(self, key):
- return self.dict.has_key(key)
-
- def get(self, key, default=None):
- if self.dict.has_key(key):
- return self[key]
- return default
-
- def __getitem__(self, key):
- f = StringIO(self.dict[key])
- return Unpickler(f).load()
-
- def __setitem__(self, key, value):
- f = StringIO()
- p = Pickler(f)
- p.dump(value)
- self.dict[key] = f.getvalue()
-
- def __delitem__(self, key):
- del self.dict[key]
-
- def close(self):
- try:
- self.dict.close()
- except:
- pass
- self.dict = 0
-
- def __del__(self):
- self.close()
-
- def sync(self):
- if hasattr(self.dict, 'sync'):
- self.dict.sync()
-
+ """Base class for shelf implementations.
+
+ This is initialized with a dictionary-like object.
+ See the module's __doc__ string for an overview of the interface.
+ """
+
+ def __init__(self, dict):
+ self.dict = dict
+
+ def keys(self):
+ return self.dict.keys()
+
+ def __len__(self):
+ return len(self.dict)
+
+ def has_key(self, key):
+ return self.dict.has_key(key)
+
+ def get(self, key, default=None):
+ if self.dict.has_key(key):
+ return self[key]
+ return default
+
+ def __getitem__(self, key):
+ f = StringIO(self.dict[key])
+ return Unpickler(f).load()
+
+ def __setitem__(self, key, value):
+ f = StringIO()
+ p = Pickler(f)
+ p.dump(value)
+ self.dict[key] = f.getvalue()
+
+ def __delitem__(self, key):
+ del self.dict[key]
+
+ def close(self):
+ try:
+ self.dict.close()
+ except:
+ pass
+ self.dict = 0
+
+ def __del__(self):
+ self.close()
+
+ def sync(self):
+ if hasattr(self.dict, 'sync'):
+ self.dict.sync()
+
class BsdDbShelf(Shelf):
- """Shelf implementation using the "BSD" db interface.
+ """Shelf implementation using the "BSD" db interface.
- This adds methods first(), next(), previous(), last() and
- set_location() that have no counterpart in [g]dbm databases.
+ This adds methods first(), next(), previous(), last() and
+ set_location() that have no counterpart in [g]dbm databases.
- The actual database must be opened using one of the "bsddb"
- modules "open" routines (i.e. bsddb.hashopen, bsddb.btopen or
- bsddb.rnopen) and passed to the constructor.
+ The actual database must be opened using one of the "bsddb"
+ modules "open" routines (i.e. bsddb.hashopen, bsddb.btopen or
+ bsddb.rnopen) and passed to the constructor.
- See the module's __doc__ string for an overview of the interface.
- """
+ See the module's __doc__ string for an overview of the interface.
+ """
- def __init__(self, dict):
- Shelf.__init__(self, dict)
+ def __init__(self, dict):
+ Shelf.__init__(self, dict)
- def set_location(self, key):
- (key, value) = self.dict.set_location(key)
- f = StringIO(value)
- return (key, Unpickler(f).load())
+ def set_location(self, key):
+ (key, value) = self.dict.set_location(key)
+ f = StringIO(value)
+ return (key, Unpickler(f).load())
- def next(self):
- (key, value) = self.dict.next()
- f = StringIO(value)
- return (key, Unpickler(f).load())
+ def next(self):
+ (key, value) = self.dict.next()
+ f = StringIO(value)
+ return (key, Unpickler(f).load())
- def previous(self):
- (key, value) = self.dict.previous()
- f = StringIO(value)
- return (key, Unpickler(f).load())
+ def previous(self):
+ (key, value) = self.dict.previous()
+ f = StringIO(value)
+ return (key, Unpickler(f).load())
- def first(self):
- (key, value) = self.dict.first()
- f = StringIO(value)
- return (key, Unpickler(f).load())
+ def first(self):
+ (key, value) = self.dict.first()
+ f = StringIO(value)
+ return (key, Unpickler(f).load())
- def last(self):
- (key, value) = self.dict.last()
- f = StringIO(value)
- return (key, Unpickler(f).load())
+ def last(self):
+ (key, value) = self.dict.last()
+ f = StringIO(value)
+ return (key, Unpickler(f).load())
class DbfilenameShelf(Shelf):
- """Shelf implementation using the "anydbm" generic dbm interface.
+ """Shelf implementation using the "anydbm" generic dbm interface.
- This is initialized with the filename for the dbm database.
- See the module's __doc__ string for an overview of the interface.
- """
-
- def __init__(self, filename, flag='c'):
- import anydbm
- Shelf.__init__(self, anydbm.open(filename, flag))
+ This is initialized with the filename for the dbm database.
+ See the module's __doc__ string for an overview of the interface.
+ """
+
+ def __init__(self, filename, flag='c'):
+ import anydbm
+ Shelf.__init__(self, anydbm.open(filename, flag))
def open(filename, flag='c'):
- """Open a persistent dictionary for reading and writing.
+ """Open a persistent dictionary for reading and writing.
- Argument is the filename for the dbm database.
- See the module's __doc__ string for an overview of the interface.
- """
-
- return DbfilenameShelf(filename, flag)
+ Argument is the filename for the dbm database.
+ See the module's __doc__ string for an overview of the interface.
+ """
+
+ return DbfilenameShelf(filename, flag)