Commit Graph

34 Commits

Author SHA1 Message Date
Serhiy Storchaka 1aa2c0f073 Issue #23865: close() methods in multiple modules now are idempotent and more
robust at shutdown. If needs to release multiple resources, they are released
even if errors are occured.
2015-04-10 13:24:10 +03:00
R. David Murray 031ae6e904 Improve issue 7835 fix per MAL to handle the case that the
module dictionary has also been cleared.
2010-02-11 01:56:42 +00:00
R. David Murray 63e4fd7eef Issue 7835: Shelve's __del__ method calls its close method, and its
close method refers to an identifier in the global module namespace.
This means that when __del__ is called during interpreter shutdown (if,
for example, the calling program still has a pointer to the shelf),
sometimes that global identifier would wind up being None, causing
mysterious 'ignored' exceptions.  This patch checks for the possible None
value first before using the global, thus avoiding the error messages.
2010-02-10 22:42:04 +00:00
Brett Cannon 25c9d6aa00 Remove imports of 'warnings' that are no longer needed in dummy_thread,
filecmp, and shelve.
2008-08-17 22:10:11 +00:00
Brett Cannon 753ecb13db Remove dict.has_key() usage in the shelve module to silence warnings under -3. 2008-08-04 21:17:15 +00:00
Raymond Hettinger 8c664e8628 Issue 1592: Better error reporting for operations on closed shelves. 2008-07-25 18:43:33 +00:00
Raymond Hettinger 39df66179f Revert part of r60927 which made invalid assumptions about the API offered by db modules. 2008-02-25 23:17:41 +00:00
Raymond Hettinger 31ce5cb989 Update more instances of has_key(). 2008-02-21 19:24:53 +00:00
Georg Brandl 2605ca8773 Bug #1339007: Shelf objects now don't raise an exception in their
__del__ method when initialization failed.
2006-06-14 06:08:31 +00:00
Raymond Hettinger 1bc82f891c Removed deprecated method arguments from the shelve module. 2004-12-05 03:58:17 +00:00
Raymond Hettinger 68dcd34c0a Fixup bare try/except. 2003-05-27 06:30:52 +00:00
Raymond Hettinger 092b2a97d2 SF 740055: optional argument protocol in shelve.open is ignored
* added the missing parameter
* put optional parameters in correct positional order
2003-05-20 05:15:55 +00:00
Tim Peters 0eadaac7dc Whitespace normalization. 2003-04-24 16:02:54 +00:00
Martin v. Löwis 153c9e493e Patch #553171: Add writeback parameter. Also add protocol parameter. 2003-04-19 20:59:03 +00:00
Skip Montanaro b3b22f3a29 flesh out open() docstring 2003-01-21 01:53:09 +00:00
Skip Montanaro 123dc8ef72 self.binary -> self._binary to remove it from the public interface -
suggestion by Raymond Hettinger.
2002-12-08 21:25:00 +00:00
Skip Montanaro 3bf99e3e87 Add support for binary pickles to the shelve module. In some situations
this can result in significantly smaller files.  All classes as well as the
open function now accept an optional binary parameter, which defaults to
False for backward compatibility.  Added a small test suite, updated the
libref documentation (including documenting the exported classes and fixing
a few other nits) and added a note about the change to Misc/NEWS.
2002-12-08 18:36:24 +00:00
Raymond Hettinger 7994716b6b SF patch #520382: Expand shelve.py to have a full dictionary interface
and add a mixin to UserDict.py to make it easier to implement a full
dictionary interface.
2002-11-15 06:46:14 +00:00
Martin v. Löwis e4913c9987 Patch #624936: Implement __contains__. 2002-10-18 08:58:14 +00:00
Skip Montanaro 0de65807e6 bunch more __all__ lists
also modified check_all function to suppress all warnings since they aren't
relevant to what this test is doing (allows quiet checking of regsub, for
instance)
2001-02-15 22:15:14 +00:00
Tim Peters 495ad3c8cc Whitespace normalization. 2001-01-15 01:36:40 +00:00
Fred Drake 13a2c279c5 Untabify to pass the -tt test. 2000-02-10 17:17:14 +00:00
Guido van Rossum 2f7df12f33 Patch by Paul Sokolovsky to support the get() method. 1999-08-11 01:54:05 +00:00
Guido van Rossum f62cf61548 Give in to tabnanny. 1998-04-06 14:14:25 +00:00
Guido van Rossum 65e5399081 Don't write "if self.dict: self.dict.close()"; just write
"self.dict.close()" and ignore the exception.  The "if self.dict:"
part would be calculated through len(self.dict.keys()), which is very
expensive for a large dictionary...
1998-03-26 22:12:22 +00:00
Guido van Rossum 6599fb0917 Make close(), and hence __del__(), robust in the light of the world
being destroyed already.
1997-12-09 14:18:33 +00:00
Guido van Rossum 914c938cc5 Use cPickle and cStringIO when available. 1997-06-06 21:12:45 +00:00
Roger E. Masse 4fc7067055 Added a 'sync' method to shelve. If the underlying database does not have a sync
attribute, this method silently ignores this fact.  The default (bsddb's dbhash) does.
1997-03-25 16:06:03 +00:00
Guido van Rossum 5f8ea10bc2 Fix bogus len() call 1996-09-10 17:39:56 +00:00
Guido van Rossum abad1cc647 renamed DbShelf->DbfilenameShelf;added BsdDbShelf (David Ely) 1995-08-11 14:19:16 +00:00
Guido van Rossum cebfa70a79 fix stupid bug (db should be dict) 1995-02-27 13:15:29 +00:00
Guido van Rossum 256cbd7487 minute comment changes 1995-02-16 16:30:50 +00:00
Guido van Rossum cc6764c1ba added __doc__ strings etc. 1995-02-09 17:18:10 +00:00
Guido van Rossum a48061a580 shelve.py: database of persistent objects, on top of pickle.py and anydbm.py
pickle.py: new low-level persistency module (used to be called flatten)
dbmac.py: stupid dbm clone for the Mac
anydbm.py: generic dbm interface (should be extended to support gdbm)
1995-01-10 00:31:14 +00:00