Fix #1021814 (Can't sort numeric column with space as thousands separator)

This commit is contained in:
Kovid Goyal 2012-07-07 09:02:58 +05:30
commit 9ad9e6e391

View File

@ -6,7 +6,7 @@ __license__ = 'GPL v3'
__copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>' __copyright__ = '2010, Kovid Goyal <kovid@kovidgoyal.net>'
__docformat__ = 'restructuredtext en' __docformat__ = 'restructuredtext en'
import re, itertools, time, traceback import re, itertools, time, traceback, locale
from itertools import repeat, izip, imap from itertools import repeat, izip, imap
from datetime import timedelta from datetime import timedelta
from threading import Thread from threading import Thread
@ -1082,15 +1082,14 @@ class SortKeyGenerator(object):
dt = 'datetime' dt = 'datetime'
elif sb == 'number': elif sb == 'number':
try: try:
val = val.replace(',', '').strip()
p = 1 p = 1
for i, candidate in enumerate( for i, candidate in enumerate(
(' B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB')): ('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB')):
if val.endswith(candidate): if val.endswith(candidate):
p = 1024**(i) p = 1024**(i)
val = val[:-len(candidate)].strip() val = val[:-len(candidate)].strip()
break break
val = float(val) * p val = locale.atof(val) * p
except: except:
val = 0.0 val = 0.0
dt = 'float' dt = 'float'