# HG changeset patch # User fschwarz # Date 1314736054 0 # Node ID aa53048ad7acf0fec0995df1df7b2715d1f2997c # Parent 8f3df970f492d34426afca5294f26945d42ada49 remove Python 2.3 compat code for Decimal diff --git a/babel/numbers.py b/babel/numbers.py --- a/babel/numbers.py +++ b/babel/numbers.py @@ -23,13 +23,9 @@ # TODO: # Padding and rounding increments in pattern: # - http://www.unicode.org/reports/tr35/ (Appendix G.6) +from decimal import Decimal import math import re -try: - from decimal import Decimal - have_decimal = True -except ImportError: - have_decimal = False from babel.core import default_locale, Locale @@ -326,7 +322,7 @@ def split_number(value): """Convert a number into a (intasstring, fractionasstring) tuple""" - if have_decimal and isinstance(value, Decimal): + if isinstance(value, Decimal): text = str(value) else: text = ('%.9f' % value).rstrip('0') @@ -366,7 +362,7 @@ elif digits[i] == '5' and digits[i-1] in '13579': add = 1 scale = 10**ndigits - if have_decimal and isinstance(value, Decimal): + if isinstance(value, Decimal): return Decimal(int(value * scale + add)) / scale * sign else: return float(int(value * scale + add)) / scale * sign @@ -490,7 +486,7 @@ # Exponent grouping elif self.int_prec[1]: exp = int(exp) / self.int_prec[1] * self.int_prec[1] - if not have_decimal or not isinstance(value, Decimal): + if not isinstance(value, Decimal): value = float(value) if exp < 0: value = value * 10**(-exp) diff --git a/babel/tests/numbers.py b/babel/tests/numbers.py --- a/babel/tests/numbers.py +++ b/babel/tests/numbers.py @@ -11,11 +11,7 @@ # individuals. For the exact contribution history, see the revision # history and logs, available at http://babel.edgewall.org/log/. -try: - from decimal import Decimal - have_decimal = True -except ImportError: - have_decimal = False +from decimal import Decimal import doctest import unittest @@ -89,21 +85,20 @@ self.assertEqual(numbers.format_decimal(0.1, '@@', locale='en_US'), '0.10') - if have_decimal: - def test_decimals(self): - """Test significant digits patterns""" - self.assertEqual(numbers.format_decimal(Decimal('1.2345'), - '#.00', locale='en_US'), - '1.23') - self.assertEqual(numbers.format_decimal(Decimal('1.2345000'), - '#.00', locale='en_US'), - '1.23') - self.assertEqual(numbers.format_decimal(Decimal('1.2345000'), - '@@', locale='en_US'), - '1.2') - self.assertEqual(numbers.format_decimal(Decimal('12345678901234567890.12345'), - '#.00', locale='en_US'), - '12345678901234567890.12') + def test_decimals(self): + """Test significant digits patterns""" + self.assertEqual(numbers.format_decimal(Decimal('1.2345'), + '#.00', locale='en_US'), + '1.23') + self.assertEqual(numbers.format_decimal(Decimal('1.2345000'), + '#.00', locale='en_US'), + '1.23') + self.assertEqual(numbers.format_decimal(Decimal('1.2345000'), + '@@', locale='en_US'), + '1.2') + self.assertEqual(numbers.format_decimal(Decimal('12345678901234567890.12345'), + '#.00', locale='en_US'), + '12345678901234567890.12') def test_scientific_notation(self): fmt = numbers.format_scientific(0.1, '#E0', locale='en_US') @@ -134,10 +129,9 @@ self.assertEqual(fmt, '1.23E02 m/s') fmt = numbers.format_scientific(0.012345, '#.##E00 m/s', locale='en_US') self.assertEqual(fmt, '1.23E-02 m/s') - if have_decimal: - fmt = numbers.format_scientific(Decimal('12345'), '#.##E+00 m/s', - locale='en_US') - self.assertEqual(fmt, '1.23E+04 m/s') + fmt = numbers.format_scientific(Decimal('12345'), '#.##E+00 m/s', + locale='en_US') + self.assertEqual(fmt, '1.23E+04 m/s') # 0 (see ticket #99) fmt = numbers.format_scientific(0, '#E0', locale='en_US') self.assertEqual(fmt, '0E0')