]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
Import currency fraction and rounding information
authorIsaac Jurado <diptongo@gmail.com>
Mon, 17 Nov 2014 16:51:49 +0000 (17:51 +0100)
committerIsaac Jurado <diptongo@gmail.com>
Sun, 27 Sep 2015 09:32:32 +0000 (11:32 +0200)
Process and save the <fractions> element of the supplemental data, which
indicates how many decimal places should be displayed for each currency.

scripts/import_cldr.py

index 85132c7e18471a5ea3a2897f4aa025713887ea11..59dfeac6d73032d619304fed1ee7bbddb8eb8e32 100755 (executable)
@@ -144,6 +144,7 @@ def main():
         likely_subtags = global_data.setdefault('likely_subtags', {})
         territory_currencies = global_data.setdefault('territory_currencies', {})
         parent_exceptions = global_data.setdefault('parent_exceptions', {})
+        currency_fractions = global_data.setdefault('currency_fractions', {})
 
         # create auxiliary zone->territory map from the windows zones (we don't set
         # the 'zones_territories' map directly here, because there are some zones
@@ -228,6 +229,15 @@ def main():
             for child in paternity.attrib['locales'].split():
                 parent_exceptions[child] = parent
 
+        # Currency decimal and rounding digits
+        for fraction in sup.findall('.//currencyData/fractions/info'):
+            cur_code = fraction.attrib['iso4217']
+            cur_digits = int(fraction.attrib['digits'])
+            cur_rounding = int(fraction.attrib['rounding'])
+            cur_cdigits = int(fraction.attrib.get('cashDigits', cur_digits))
+            cur_crounding = int(fraction.attrib.get('cashRounding', cur_rounding))
+            currency_fractions[cur_code] = (cur_digits, cur_rounding, cur_cdigits, cur_crounding)
+
         outfile = open(global_path, 'wb')
         try:
             pickle.dump(global_data, outfile, 2)