changeset 471:40735021c908 stable

Merged revisions 518-519 via svnmerge from http://svn.edgewall.org/repos/babel/trunk ........ r518 | jruigrok | 2010-04-08 11:16:53 +0200 (do, 08 apr 2010) | 2 lines Fix the ElementTree find()/findall() syntax to be compatible with Python 2.7. ........ r519 | jruigrok | 2010-04-08 11:17:34 +0200 (do, 08 apr 2010) | 2 lines Document the Python 2.7 ElementTree fix. ........
author jruigrok
date Sun, 11 Apr 2010 08:10:45 +0000
parents 550dcd809374
children 2b67406f276a
files 0.9.x/ChangeLog 0.9.x/scripts/import_cldr.py
diffstat 2 files changed, 23 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/0.9.x/ChangeLog
+++ b/0.9.x/ChangeLog
@@ -3,6 +3,7 @@
 (? ? 2010, from branches/stable/0.9.x)
 
  * Backport r493-494: documentation typo fixes.
+ * Make the CLDR import script work with Python 2.7.
 
 
 Version 0.9.5
--- a/0.9.x/scripts/import_cldr.py
+++ b/0.9.x/scripts/import_cldr.py
@@ -93,7 +93,7 @@
     territory_zones = global_data.setdefault('territory_zones', {})
     zone_aliases = global_data.setdefault('zone_aliases', {})
     zone_territories = global_data.setdefault('zone_territories', {})
-    for elem in sup.findall('//timezoneData/zoneFormatting/zoneItem'):
+    for elem in sup.findall('.//timezoneData/zoneFormatting/zoneItem'):
         tzid = elem.attrib['type']
         territory_zones.setdefault(elem.attrib['territory'], []).append(tzid)
         zone_territories[tzid] = elem.attrib['territory']
@@ -104,7 +104,7 @@
     # Import Metazone mapping
     meta_zones = global_data.setdefault('meta_zones', {})
     tzsup = parse(os.path.join(srcdir, 'supplemental', 'metazoneInfo.xml'))
-    for elem in tzsup.findall('//timezone'):
+    for elem in tzsup.findall('.//timezone'):
         for child in elem.findall('usesMetazone'):
             if 'to' not in child.attrib: # FIXME: support old mappings
                 meta_zones[elem.attrib['type']] = child.attrib['mzone']
@@ -117,7 +117,7 @@
 
     # build a territory containment mapping for inheritance
     regions = {}
-    for elem in sup.findall('//territoryContainment/group'):
+    for elem in sup.findall('.//territoryContainment/group'):
         regions[elem.attrib['type']] = elem.attrib['contains'].split()
 
     # Resolve territory containment
@@ -146,13 +146,13 @@
         data = {}
 
         language = None
-        elem = tree.find('//identity/language')
+        elem = tree.find('.//identity/language')
         if elem is not None:
             language = elem.attrib['type']
         print>>sys.stderr, '  Language:  %r' % language
 
         territory = None
-        elem = tree.find('//identity/territory')
+        elem = tree.find('.//identity/territory')
         if elem is not None:
             territory = elem.attrib['type']
         else:
@@ -164,28 +164,28 @@
         # <localeDisplayNames>
 
         territories = data.setdefault('territories', {})
-        for elem in tree.findall('//territories/territory'):
+        for elem in tree.findall('.//territories/territory'):
             if ('draft' in elem.attrib or 'alt' in elem.attrib) \
                     and elem.attrib['type'] in territories:
                 continue
             territories[elem.attrib['type']] = _text(elem)
 
         languages = data.setdefault('languages', {})
-        for elem in tree.findall('//languages/language'):
+        for elem in tree.findall('.//languages/language'):
             if ('draft' in elem.attrib or 'alt' in elem.attrib) \
                     and elem.attrib['type'] in languages:
                 continue
             languages[elem.attrib['type']] = _text(elem)
 
         variants = data.setdefault('variants', {})
-        for elem in tree.findall('//variants/variant'):
+        for elem in tree.findall('.//variants/variant'):
             if ('draft' in elem.attrib or 'alt' in elem.attrib) \
                     and elem.attrib['type'] in variants:
                 continue
             variants[elem.attrib['type']] = _text(elem)
 
         scripts = data.setdefault('scripts', {})
-        for elem in tree.findall('//scripts/script'):
+        for elem in tree.findall('.//scripts/script'):
             if ('draft' in elem.attrib or 'alt' in elem.attrib) \
                     and elem.attrib['type'] in scripts:
                 continue
@@ -194,7 +194,7 @@
         # <dates>
 
         week_data = data.setdefault('week_data', {})
-        supelem = sup.find('//weekData')
+        supelem = sup.find('.//weekData')
 
         for elem in supelem.findall('minDays'):
             territories = elem.attrib['territories'].split()
@@ -217,22 +217,22 @@
                 week_data['weekend_end'] = weekdays[elem.attrib['day']]
 
         zone_formats = data.setdefault('zone_formats', {})
-        for elem in tree.findall('//timeZoneNames/gmtFormat'):
+        for elem in tree.findall('.//timeZoneNames/gmtFormat'):
             if 'draft' not in elem.attrib and 'alt' not in elem.attrib:
                 zone_formats['gmt'] = unicode(elem.text).replace('{0}', '%s')
                 break
-        for elem in tree.findall('//timeZoneNames/regionFormat'):
+        for elem in tree.findall('.//timeZoneNames/regionFormat'):
             if 'draft' not in elem.attrib and 'alt' not in elem.attrib:
                 zone_formats['region'] = unicode(elem.text).replace('{0}', '%s')
                 break
-        for elem in tree.findall('//timeZoneNames/fallbackFormat'):
+        for elem in tree.findall('.//timeZoneNames/fallbackFormat'):
             if 'draft' not in elem.attrib and 'alt' not in elem.attrib:
                 zone_formats['fallback'] = unicode(elem.text) \
                     .replace('{0}', '%(0)s').replace('{1}', '%(1)s')
                 break
 
         time_zones = data.setdefault('time_zones', {})
-        for elem in tree.findall('//timeZoneNames/zone'):
+        for elem in tree.findall('.//timeZoneNames/zone'):
             info = {}
             city = elem.findtext('exemplarCity')
             if city:
@@ -244,7 +244,7 @@
             time_zones[elem.attrib['type']] = info
 
         meta_zones = data.setdefault('meta_zones', {})
-        for elem in tree.findall('//timeZoneNames/metazone'):
+        for elem in tree.findall('.//timeZoneNames/metazone'):
             info = {}
             city = elem.findtext('exemplarCity')
             if city:
@@ -256,7 +256,7 @@
             info['common'] = elem.findtext('commonlyUsed') == 'true'
             meta_zones[elem.attrib['type']] = info
 
-        for calendar in tree.findall('//calendars/calendar'):
+        for calendar in tree.findall('.//calendars/calendar'):
             if calendar.attrib['type'] != 'gregorian':
                 # TODO: support other calendar types
                 continue
@@ -402,11 +402,11 @@
         # <numbers>
 
         number_symbols = data.setdefault('number_symbols', {})
-        for elem in tree.findall('//numbers/symbols/*'):
+        for elem in tree.findall('.//numbers/symbols/*'):
             number_symbols[elem.tag] = unicode(elem.text)
 
         decimal_formats = data.setdefault('decimal_formats', {})
-        for elem in tree.findall('//decimalFormats/decimalFormatLength'):
+        for elem in tree.findall('.//decimalFormats/decimalFormatLength'):
             if ('draft' in elem.attrib or 'alt' in elem.attrib) \
                     and elem.attrib.get('type') in decimal_formats:
                 continue
@@ -414,7 +414,7 @@
             decimal_formats[elem.attrib.get('type')] = numbers.parse_pattern(pattern)
 
         scientific_formats = data.setdefault('scientific_formats', {})
-        for elem in tree.findall('//scientificFormats/scientificFormatLength'):
+        for elem in tree.findall('.//scientificFormats/scientificFormatLength'):
             if ('draft' in elem.attrib or 'alt' in elem.attrib) \
                     and elem.attrib.get('type') in scientific_formats:
                 continue
@@ -422,7 +422,7 @@
             scientific_formats[elem.attrib.get('type')] = numbers.parse_pattern(pattern)
 
         currency_formats = data.setdefault('currency_formats', {})
-        for elem in tree.findall('//currencyFormats/currencyFormatLength'):
+        for elem in tree.findall('.//currencyFormats/currencyFormatLength'):
             if ('draft' in elem.attrib or 'alt' in elem.attrib) \
                     and elem.attrib.get('type') in currency_formats:
                 continue
@@ -430,7 +430,7 @@
             currency_formats[elem.attrib.get('type')] = numbers.parse_pattern(pattern)
 
         percent_formats = data.setdefault('percent_formats', {})
-        for elem in tree.findall('//percentFormats/percentFormatLength'):
+        for elem in tree.findall('.//percentFormats/percentFormatLength'):
             if ('draft' in elem.attrib or 'alt' in elem.attrib) \
                     and elem.attrib.get('type') in percent_formats:
                 continue
@@ -439,7 +439,7 @@
 
         currency_names = data.setdefault('currency_names', {})
         currency_symbols = data.setdefault('currency_symbols', {})
-        for elem in tree.findall('//currencies/currency'):
+        for elem in tree.findall('.//currencies/currency'):
             code = elem.attrib['type']
             # TODO: support plural rules for currency name selection
             for name in elem.findall('displayName'):
Copyright (C) 2012-2017 Edgewall Software