Update of /cvsroot/pypgsql/pypgsql/pyPgSQL
In directory usw-pr-cvs1:/tmp/cvs-serv17521/pyPgSQL
Modified Files:
PgSQL.py
Log Message:
08SEP2002 gh Fixed various problems with the PgResultSet:
- Column (attribute and dictionary) access is now case-
insensitive.
- Added __contains__ method.
- Added default value parameter to get method.
- Made __setattr__ actually work.
Index: PgSQL.py
===================================================================
RCS file: /cvsroot/pypgsql/pypgsql/pyPgSQL/PgSQL.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** PgSQL.py 12 Aug 2002 03:05:03 -0000 1.14
--- PgSQL.py 8 Sep 2002 15:16:45 -0000 1.15
***************
*** 30,33 ****
--- 30,39 ----
# Date Ini Description |
# --------- --- ------------------------------------------------------- |
+ # 08SEP2002 gh Fixed various problems with the PgResultSet: |
+ # - Column (attribute and dictionary) access is now case- |
+ # insensitive. |
+ # - Added __contains__ method. |
+ # - Added default value parameter to get method. |
+ # - Made setattr actually work. |
# 11AUG2002 bga Fixed various problems with the PgNumeric type: |
# - Added code to allow a float as an argument to the |
***************
*** 1622,1627 ****
def __getattr__(self, key):
! if self.__class__._xlatkey.has_key(key):
! return self.baseObj[self.__class__._xlatkey[key]]
raise AttributeError, key
--- 1628,1634 ----
def __getattr__(self, key):
! key = key.upper()
! if self._xlatkey.has_key(key):
! return self.baseObj[self._xlatkey[key]]
raise AttributeError, key
***************
*** 1632,1637 ****
raise AttributeError, "%s is read-only." % key
! if self.__class__._xlatkey.has_key(key):
! self.__dict__['baseObj'][self.__class__._xlatkey(key)] = value
else:
raise AttributeError, key
--- 1639,1645 ----
raise AttributeError, "%s is read-only." % key
! key = key.upper()
! if self._xlatkey.has_key(key):
! self.__dict__['baseObj'][self._xlatkey[key]] = value
else:
raise AttributeError, key
***************
*** 1641,1656 ****
def __getitem__(self, key):
! if type(key) is StringType:
! key = self.__class__._xlatkey[key]
return self.baseObj[key]
def __setitem__(self, key, value):
! if type(key) is StringType:
! key = self.__class__._xlatkey[key]
self.baseObj[key] = value
! return
def __getslice__(self, i, j):
! klass = make_PgResultSetClass(self.__class__._desc_[i:j])
obj = klass(self.baseObj[i:j])
return obj
--- 1649,1666 ----
def __getitem__(self, key):
! if isinstance(key, StringType):
! key = self._xlatkey[key.upper()]
return self.baseObj[key]
def __setitem__(self, key, value):
! if isinstance(key, StringType):
! key = self._xlatkey[key.upper()]
self.baseObj[key] = value
!
! def __contains__(self, key):
! return self.has_key(key)
def __getslice__(self, i, j):
! klass = make_PgResultSetClass(self._desc_[i:j])
obj = klass(self.baseObj[i:j])
return obj
***************
*** 1684,1691 ****
def has_key(self, key):
! return self.__class__._xlatkey.has_key(key)
! def get(self, key):
! return self[key]
def make_PgResultSetClass(description, mapname=None):
--- 1694,1704 ----
def has_key(self, key):
! return self._xlatkey.has_key(key.upper())
! def get(self, key, defaultval=None):
! if self.has_key(key):
! return self[key]
! else:
! return defaultval
def make_PgResultSetClass(description, mapname=None):
***************
*** 1697,1705 ****
if mapname is None:
for _i in range(len(description)):
! klass.__dict__['_xlatkey'][description[_i][0]] = _i
else:
! klass.__dict__['_xlatkey'].update(mapname)
return klass
!
#-----------------------------------------------------------------------+
--- 1710,1719 ----
if mapname is None:
for _i in range(len(description)):
! klass.__dict__['_xlatkey'][description[_i][0].upper()] = _i
else:
! for k, v in mapname.items():
! klass.__dict__['_xlatkey'][k.upper()] = v
return klass
!
#-----------------------------------------------------------------------+
|