# HG changeset patch # User Paul Boddie # Date 1329684152 -3600 # Node ID f8f45be34bafa817b827922e0894f8323936a902 # Parent ef4a711af55930c97d8d58de4fd0f7616a102d28 Changed the sorting to sort empty columns last. diff -r ef4a711af559 -r f8f45be34baf ImprovedTableParser.py --- a/ImprovedTableParser.py Sun Feb 19 21:07:13 2012 +0100 +++ b/ImprovedTableParser.py Sun Feb 19 21:42:32 2012 +0100 @@ -328,9 +328,15 @@ def to_number(s, request): - "Convert 's' to a number, discarding any non-numeric trailing data." + """ + Convert 's' to a number, discarding any non-numeric trailing data. + Return an empty string if 's' is empty. + """ - return int(get_number(s)) + if s: + return int(get_number(s)) + else: + return s def to_plain_text(s, request): @@ -370,9 +376,17 @@ # Ignore a column when a conversion is not possible. try: - text1 = fn(text1, self.request) - text2 = fn(text2, self.request) - result = cmp(text1, text2) + value1 = fn(text1, self.request) + value2 = fn(text2, self.request) + + # Avoid empty strings appearing earlier than other values. + + if value1 == "" and value2 != "": + result = 1 + elif value1 != "" and value2 == "": + result = -1 + else: + result = cmp(value1, value2) # Where the columns differ, return a result observing the sense # (ascending or descending) of the comparison for the column.