+import collate._strings
+
class Collator(object):
def cmp(self, string1, string2):
"""Return negative if a < b, zero if a == b, positive if a > b."""
"""
return string.split()
- def wordkeys(self, string):
- return map(self.key, self.words)
+ def sortemes(self, string):
+ words = []
+ for word in self.words(string):
+ words.extend(collate._strings.alnumsplit(word))
+ return filter(collate._strings.wordlike, words)
+
+ def sortemekey(self, string):
+ words = map(collate._strings.numeric, self.sortemes(string))
+ words = [(i, self.key(word)) for (i, word) in words]
+ return words