More tweaks; notably try to insert paragraph breaks rather than a separate Python...
[python-collate.git] / collate / _abcollator.py
index fdd7783..0ae5d45 100644 (file)
@@ -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: