diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-20 21:44:48 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-20 21:44:48 +0000 |
commit | a19cdd1868e36643ae103816f44c21989462cf95 (patch) | |
tree | e10618e1b768e51ba347bee440fff46e0ab150b0 /lib/sqlalchemy/ext/sqlsoup.py | |
parent | 0ee04dfcb07b8ba1deaa0db51740bea31f10f54f (diff) | |
download | sqlalchemy-a19cdd1868e36643ae103816f44c21989462cf95.tar.gz |
remove __cmp__, move to __lt__ , __eq__ per http://docs.python.org/dev/3.0/whatsnew/3.0.html#ordering-comparisons
Diffstat (limited to 'lib/sqlalchemy/ext/sqlsoup.py')
-rw-r--r-- | lib/sqlalchemy/ext/sqlsoup.py | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/lib/sqlalchemy/ext/sqlsoup.py b/lib/sqlalchemy/ext/sqlsoup.py index 5377fee35..8b5d6bbc3 100644 --- a/lib/sqlalchemy/ext/sqlsoup.py +++ b/lib/sqlalchemy/ext/sqlsoup.py @@ -408,23 +408,34 @@ def _class_for_table(session, engine, selectable, **mapper_kwargs): klass = TableClassType(mapname, (object,), {}) else: klass = SelectableClassType(mapname, (object,), {}) - - def __cmp__(self, o): - L = self.__class__.c.keys() + + def _compare(self, o): + L = list(self.__class__.c.keys()) L.sort() t1 = [getattr(self, k) for k in L] try: t2 = [getattr(o, k) for k in L] except AttributeError: raise TypeError('unable to compare with %s' % o.__class__) - return cmp(t1, t2) + return t1, t2 + + # python2/python3 compatible system of + # __cmp__ - __lt__ + __eq__ + + def __lt__(self, o): + t1, t2 = _compare(self, o) + return t1 < t2 + def __eq__(self, o): + t1, t2 = _compare(self, o) + return t1 == t2 + def __repr__(self): L = ["%s=%r" % (key, getattr(self, key, '')) for key in self.__class__.c.keys()] return '%s(%s)' % (self.__class__.__name__, ','.join(L)) - for m in ['__cmp__', '__repr__']: + for m in ['__eq__', '__repr__', '__lt__']: setattr(klass, m, eval(m)) klass._table = selectable klass.c = expression.ColumnCollection() |