+
+ def sortemekey(self, string, invalid=float('inf')):
+ keys = []
+ for sorteme in collate._strings.sortemes(string):
+ num, alpha = collate._strings.numeric(sorteme, invalid)
+ if num == invalid:
+ keys.append(self.key(alpha))
+ else:
+ keys.append(num)
+ # Shove the sortkeyed original string on the end to resolve
+ # ties intelligently.
+ return (keys, self.key(string))