changeset 556:aa53048ad7ac trunk

remove Python 2.3 compat code for Decimal
author fschwarz
date Tue, 30 Aug 2011 20:27:34 +0000
parents 8f3df970f492
children 4e561e6411ba
files babel/numbers.py babel/tests/numbers.py
diffstat 2 files changed, 22 insertions(+), 32 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- 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')
Copyright (C) 2012-2017 Edgewall Software