[Modeling-cvs] ProjectModeling/Modeling CHANGES,1.116,1.117 SortOrdering.py,1.4,1.5
Status: Abandoned
Brought to you by:
sbigaret
|
From: <sbi...@us...> - 2003-07-04 16:05:10
|
Update of /cvsroot/modeling/ProjectModeling/Modeling
In directory sc8-pr-cvs1:/tmp/cvs-serv17759/Modeling
Modified Files:
CHANGES SortOrdering.py
Log Message:
Added operatorFromString() and sortOrderingsWithString()
Index: CHANGES
===================================================================
RCS file: /cvsroot/modeling/ProjectModeling/Modeling/CHANGES,v
retrieving revision 1.116
retrieving revision 1.117
diff -C2 -d -r1.116 -r1.117
*** CHANGES 3 Jul 2003 23:03:38 -0000 1.116
--- CHANGES 4 Jul 2003 16:05:07 -0000 1.117
***************
*** 16,19 ****
--- 16,21 ----
setStoredValueForKey() (will be removed in v0.9.1)
+ * Added SortOrdering.sortOrderingsWithString()
+
* documentation: added Project's status page
Index: SortOrdering.py
===================================================================
RCS file: /cvsroot/modeling/ProjectModeling/Modeling/SortOrdering.py,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** SortOrdering.py 10 Jan 2003 10:45:44 -0000 1.4
--- SortOrdering.py 4 Jul 2003 16:05:07 -0000 1.5
***************
*** 62,65 ****
--- 62,73 ----
else: return 1
+ def operatorFromString(str):
+ op=strip(str.lower())
+ if op == 'asc': return compareAscending
+ if op == 'iasc': return compareCaseInsensitiveAscending
+ if op == 'desc': return compareDescending
+ if op == 'idesc': return compareCaseInsensitiveDescending
+ raise ValueError, "Unknown operator: %s"%aString
+
# Module functions
def __compareUsingKeyOrderArray__(object1, object2, sortOrderings):
***************
*** 80,88 ****
return SortOrdering(key, operator)
#
class SortOrdering:
__implements__ = (SortOrderingInterface,)
!
def __init__(self, key, operator):
self._key=key
--- 88,112 ----
return SortOrdering(key, operator)
+ def sortOrderingsWithString(str):
+ import string
+ sorts=[]
+ parts=string.split(str,',')
+ for part in parts:
+ part=string.strip(part)
+ key_order=string.split(part)
+ if len(key_order==1):
+ key, order=key_order, 'asc'
+ elif len(key_order)==2:
+ key, order=key_order[0], operatorFromString(key_order[1])
+ else:
+ raise ValueError, "Unrecognized pattern '%s' in '%s'"%(part, str)
+ sorts.append(SortOrdering(key,operator))
+ return sorts
+
#
class SortOrdering:
__implements__ = (SortOrderingInterface,)
!
def __init__(self, key, operator):
self._key=key
|