[SQL-CVS] SQLObject/SQLObject SQLObject.py,1.47,1.48
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <ian...@us...> - 2003-07-17 01:24:00
|
Update of /cvsroot/sqlobject/SQLObject/SQLObject In directory sc8-pr-cvs1:/tmp/cvs-serv28706 Modified Files: SQLObject.py Log Message: Fixed up single-value __getitem__ access to SelectResults Index: SQLObject.py =================================================================== RCS file: /cvsroot/sqlobject/SQLObject/SQLObject/SQLObject.py,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** SQLObject.py 10 Jul 2003 19:16:07 -0000 1.47 --- SQLObject.py 17 Jul 2003 01:23:57 -0000 1.48 *************** *** 1033,1036 **** --- 1033,1040 ---- # No need to copy, I'm immutable return self + + # Negative indexes aren't handled (and everything we + # don't handle ourselves we just create a list to + # handle) if (value.start and value.start < 0) \ or (value.stop and value.stop < 0): *************** *** 1040,1049 **** return list(self)[value.start:] return list(self)[:value.stop] if value.start: ! assert value.start >= 0, "Negative index not supported (%s)" % value.start start = self.ops.get('start', 0) + value.start if value.stop is not None: ! assert value.stop >= 0, "Negative indexes not supported (%s)" % value.stop if value.stop < value.start: end = start else: --- 1044,1056 ---- return list(self)[value.start:] return list(self)[:value.stop] + + if value.start: ! assert value.start >= 0 start = self.ops.get('start', 0) + value.start if value.stop is not None: ! assert value.stop >= 0 if value.stop < value.start: + # an empty result: end = start else: *************** *** 1051,1054 **** --- 1058,1062 ---- if self.ops.get('end', None) is not None \ and value['end'] < end: + # truncated by previous slice: end = self.ops['end'] else: *************** *** 1065,1069 **** return list(iter(self))[value] else: ! return list(self.clone(start=value, stop=value+1))[0] def __iter__(self): --- 1073,1078 ---- return list(iter(self))[value] else: ! start = self.ops.get('start', 0) + value ! return list(self.clone(start=start, end=start+1))[0] def __iter__(self): |