# Split if we find two pieces of punctuation in a row, even
# if we should otherwise continue.
- elif i > 0 and prev_category[0] == "P" and category[0] == "P":
+ elif prev_category[0] in "P" and category[0] in "P":
broke = True
mode = UNKNOWN
if broke and start is not None and last is not None:
# If we read two strings separated by weird punctuation,
# pretend the punctuation isn't there.
- if (this_mode == previous_mode == LETTER
- and words):
+ if this_mode == previous_mode == LETTER:
words[-1] += BREAKER + string[start:last+1]
else:
- # This ensures "foo2 bar" sorts as ["foo ", 2, "bar"]
- # Which sorts after ["foo", "bar"].
- if this_mode == NUMBER and previous_mode == LETTER and words:
+ if this_mode == NUMBER and previous_mode == LETTER:
words[-1] += BREAKER
words.append(string[start:last+1])
- previous_mode = this_mode
+ previous_mode = this_mode
if broke:
start = i