diff options
author | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2010-12-12 16:45:21 +0000 |
---|---|---|
committer | Daniele Varrazzo <daniele.varrazzo@gmail.com> | 2010-12-21 04:02:13 +0000 |
commit | 31093a7a58462617bd4646c7a6613754d761b566 (patch) | |
tree | 959dd0546f1edbc58eae411256a3c001ffd2a916 /lib | |
parent | a30e461038dba6439980175ca6bc546c96551814 (diff) | |
download | psycopg2-31093a7a58462617bd4646c7a6613754d761b566.tar.gz |
Some light cleanup for Py3 conversion.
Either flagged as warning by python2.6 -3 or converted by 2to3.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/extras.py | 33 | ||||
-rw-r--r-- | lib/pool.py | 2 |
2 files changed, 22 insertions, 13 deletions
diff --git a/lib/extras.py b/lib/extras.py index 09142ed..b452828 100644 --- a/lib/extras.py +++ b/lib/extras.py @@ -26,6 +26,7 @@ and classes untill a better place in the distribution is found. # License for more details. import os +import sys import time import codecs import warnings @@ -47,7 +48,7 @@ class DictCursorBase(_cursor): """Base class for all dict-like cursors.""" def __init__(self, *args, **kwargs): - if kwargs.has_key('row_factory'): + if 'row_factory' in kwargs: row_factory = kwargs['row_factory'] del kwargs['row_factory'] else: @@ -140,20 +141,17 @@ class DictRow(list): self[:] = [None] * len(cursor.description) def __getitem__(self, x): - if type(x) != int: + if not isinstance(x, int): x = self._index[x] return list.__getitem__(self, x) def __setitem__(self, x, v): - if type(x) != int: + if not isinstance(x, int): x = self._index[x] list.__setitem__(self, x, v) def items(self): - res = [] - for n, v in self._index.items(): - res.append((n, list.__getitem__(self, v))) - return res + return list(self.iteritems()) def keys(self): return self._index.keys() @@ -162,7 +160,7 @@ class DictRow(list): return tuple(self[:]) def has_key(self, x): - return self._index.has_key(x) + return x in self._index def get(self, x, default=None): try: @@ -171,7 +169,7 @@ class DictRow(list): return default def iteritems(self): - for n, v in self._index.items(): + for n, v in self._index.iteritems(): yield n, list.__getitem__(self, v) def iterkeys(self): @@ -181,10 +179,18 @@ class DictRow(list): return list.__iter__(self) def copy(self): - return dict(self.items()) + return dict(self.iteritems()) def __contains__(self, x): - return self._index.__contains__(x) + return x in self._index + + # grop the crusty Py2 methods + if sys.version_info[0] > 2: + items = iteritems; del iteritems + keys = iterkeys; del iterkeys + values = itervalues; del itervalues + del has_key + class RealDictConnection(_connection): """A connection that uses `RealDictCursor` automatically.""" @@ -615,7 +621,10 @@ class HstoreAdapter(object): """, regex.VERBOSE) # backslash decoder - _bsdec = codecs.getdecoder("string_escape") + if sys.version_info[0] < 3: + _bsdec = codecs.getdecoder("string_escape") + else: + _bsdec = codecs.getdecoder("unicode_escape") def parse(self, s, cur, _decoder=_bsdec): """Parse an hstore representation in a Python string. diff --git a/lib/pool.py b/lib/pool.py index ab517b6..8a8fa53 100644 --- a/lib/pool.py +++ b/lib/pool.py @@ -100,7 +100,7 @@ class AbstractConnectionPool(object): if self.closed: raise PoolError("connection pool is closed") if key is None: key = self._getkey() - if self._used.has_key(key): + if key in self._used: return self._used[key] if self._pool: |