diff options
author | Robert Leftwich <rtl@pobox.com> | 2006-01-29 12:30:32 +0000 |
---|---|---|
committer | Robert Leftwich <rtl@pobox.com> | 2006-01-29 12:30:32 +0000 |
commit | d2a548d33107b0dd6d37b50e92ce39bf827461b0 (patch) | |
tree | 6b9326156ed6fa8ad2f86ba2acf9ee835ac0eb8c /lib/sqlalchemy/engine.py | |
parent | 9db98d2deeec3d77a9ba3447bdd46ef7067f257e (diff) | |
download | sqlalchemy-d2a548d33107b0dd6d37b50e92ce39bf827461b0.tar.gz |
Reworked RowProxy to restore column order preservation and to remove some dictionary-like behaviour that was unnecessary and caused breakage in existing code. Added tests for column preservation.
Diffstat (limited to 'lib/sqlalchemy/engine.py')
-rw-r--r-- | lib/sqlalchemy/engine.py | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/lib/sqlalchemy/engine.py b/lib/sqlalchemy/engine.py index 3a3af2ce9..445ddae24 100644 --- a/lib/sqlalchemy/engine.py +++ b/lib/sqlalchemy/engine.py @@ -688,36 +688,23 @@ class RowProxy: """RowProxy objects are constructed by ResultProxy objects.""" self.__parent = parent self.__row = row - def keys(self): - return self.__parent.keys def __iter__(self): - for k in self.keys(): - yield k + for i in range(0, len(self.__row)): + yield self.__parent._get_col(self.__row, i) def __eq__(self, other): return (other is self) or (other == tuple([self.__parent._get_col(self.__row, key) for key in range(0, len(self.__row))])) def __repr__(self): - return repr(dict(self.iteritems())) + return repr(tuple([self.__parent._get_col(self.__row, key) for key in range(0, len(self.__row))])) def __getitem__(self, key): return self.__parent._get_col(self.__row, key) def __getattr__(self, name): try: - return self[name] + return self.__parent._get_col(self.__row, name) except: raise AttributeError - def iteritems(self): - for k in self: - yield (k, self[k]) - def iterkeys(self): - return self.__iter__() - def itervalues(self): - for _, v in self.iteritems(): - yield v - def values(self): - return [v for _, v in self.iteritems()] - def items(self): - return list(self.iteritems()) - def __len__(self): - return len(self.keys()) - - - + def keys(self): + return self.__parent.keys + def values(self): + return list(self) + def __len__(self): + return len(self.__row) |