[Python-checkins] cpython (merge 3.4 -> default): Restore performance of some dumb database methods (regression introduced by
serhiy.storchaka
python-checkins at python.org
Wed May 28 17:51:03 CEST 2014
http://hg.python.org/cpython/rev/2e59e0b579e5
changeset: 90886:2e59e0b579e5
parent: 90884:c112a91ad609
parent: 90885:95207bcd8298
user: Serhiy Storchaka <storchaka at gmail.com>
date: Wed May 28 18:50:12 2014 +0300
summary:
Restore performance of some dumb database methods (regression introduced by #19385).
files:
Lib/dbm/dumb.py | 27 +++++++++++++++++++--------
1 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/Lib/dbm/dumb.py b/Lib/dbm/dumb.py
--- a/Lib/dbm/dumb.py
+++ b/Lib/dbm/dumb.py
@@ -216,8 +216,10 @@
self._commit()
def keys(self):
- self._verify_open()
- return list(self._index.keys())
+ try:
+ return list(self._index)
+ except TypeError:
+ raise error('DBM object has already been closed') from None
def items(self):
self._verify_open()
@@ -226,17 +228,26 @@
def __contains__(self, key):
if isinstance(key, str):
key = key.encode('utf-8')
- self._verify_open()
- return key in self._index
+ try:
+ return key in self._index
+ except TypeError:
+ if self._index is None:
+ raise error('DBM object has already been closed') from None
+ else:
+ raise
def iterkeys(self):
- self._verify_open()
- return iter(self._index.keys())
+ try:
+ return iter(self._index)
+ except TypeError:
+ raise error('DBM object has already been closed') from None
__iter__ = iterkeys
def __len__(self):
- self._verify_open()
- return len(self._index)
+ try:
+ return len(self._index)
+ except TypeError:
+ raise error('DBM object has already been closed') from None
def close(self):
self._commit()
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list