X-Git-Url: https://git.korewanetadesu.com/?p=python-collate.git;a=blobdiff_plain;f=collate%2F_abcollator.py;fp=collate%2F_abcollator.py;h=0ae5d451f59defb65cb34fb4a2ca6b2f36152212;hp=fdd7783fc1eceee8382bd46856e8af7ac787e468;hb=9a7cf6459c40d53b58634f2df56386bf52c12f7c;hpb=c2e6d9413b5780bf96302569cf641f09de90f9fa diff --git a/collate/_abcollator.py b/collate/_abcollator.py index fdd7783..0ae5d45 100644 --- a/collate/_abcollator.py +++ b/collate/_abcollator.py @@ -1,14 +1,28 @@ -import collate._strings +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 along word boundries.""" + if isinstance(string, str): + string = string.decode(self.encoding, 'replace') + return string.split() + def sortemekey(self, string, invalid=float('inf')): + """Return a key based on sortemes of a string. + + If the string is a str instance, it is decoded to a unicode + instance according to the 'encoding' attribute of the + Collator. + """ keys = [] - for sorteme in collate._strings.sortemes(string): - num, alpha = collate._strings.numeric(sorteme, invalid) + if isinstance(string, str): + string = string.decode(self.encoding, 'replace') + for sorteme in collate.strings.sortemes(string): + num, alpha = collate.strings.numeric(sorteme, invalid) if num == invalid: keys.append(self.key(alpha)) else: