projects
/
python-collate.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix some pychecker errors.
[python-collate.git]
/
collate
/
_abcollator.py
diff --git
a/collate/_abcollator.py
b/collate/_abcollator.py
index
99866c3
..
12575ea
100644
(file)
--- a/
collate/_abcollator.py
+++ b/
collate/_abcollator.py
@@
-1,11
+1,33
@@
+import collate.strings
+
class Collator(object):
class Collator(object):
+ encoding = "ascii"
+
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 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 key(self, string):
+ return string
+
def words(self, string):
def words(self, string):
- """Split the string into separate words.
+ """Split the string along word boundries."""
+ if isinstance(string, str):
+ string = string.decode(self.encoding, 'replace')
+ return string.split()
- This split is done using Unicode's definition of whitespace.
+ def sortemekey(self, string):
+ """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.
"""
"""
- return string.split()
+ if isinstance(string, str):
+ string = string.decode(self.encoding, 'replace')
+
+ # Shove the sortkeyed original string on the end to resolve
+ # ties intelligently.
+ return (collate.strings.sortemes(string, self.key),
+ self.key(string))
+