return string.split()
def sortemes(self, string):
- words = []
- for word in self.words(string):
- words.extend(collate._strings.alnumsplit(word))
- return filter(collate._strings.wordlike, words)
+ return collate._strings.alnumsplit(string)
- def sortemekey(self, string):
- words = map(collate._strings.numeric, self.sortemes(string))
- words = [(i, self.key(word)) for (i, word) in words]
+ def sortemekey(self, string, invalid=float('inf')):
+ words = []
+ for sorteme in self.sortemes(string):
+ num, alpha = collate._strings.numeric(sorteme, invalid)
+ words.append((num, self.key(alpha)))
return words