X-Git-Url: https://git.korewanetadesu.com/?p=python-collate.git;a=blobdiff_plain;f=collate%2F_abcollator.py;h=02cb733c79d889462a03e4680ece539e664cb696;hp=71f5f54631a42e8c33ac1945b57ff92066bc0496;hb=2a37219e2d9c0fe58e78d987a21f6e37cfd33940;hpb=c519e411927761939a0461bdf8d0a12b26d965e9 diff --git a/collate/_abcollator.py b/collate/_abcollator.py index 71f5f54..02cb733 100644 --- a/collate/_abcollator.py +++ b/collate/_abcollator.py @@ -1,4 +1,23 @@ +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 cmp(self.key(string1), self.key(string2)) + + def words(self, string): + """Split the string into separate words. + + This split is done using Unicode's definition of whitespace. + """ + return string.split() + + def sortemes(self, string): + return collate._strings.alnumsplit(string) + + 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