From: Gerhard H?r. <gha...@us...> - 2002-09-08 15:16:48
|
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 ! #-----------------------------------------------------------------------+ |