summaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorIevgenii Meshcheriakov <ievgenii.meshcheriakov@qt.io>2021-07-05 16:36:52 +0200
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-07-09 17:44:32 +0000
commit85f449b62bb06410ab57a263b28feeb3e0919925 (patch)
tree22220e7e37719dbaef63f6f2383b3672aef7f279 /util
parent6299dc7f8895261099e5a9a84bd5c357c7e09af5 (diff)
cldr.py: Avoid raising StopIteration from generators
The behavior of StopIteration in generators was changed in Python 3 (see https://www.python.org/dev/peps/pep-0479/). Not raising that exception makes it easier to port the code to Python 3. Task-number: QTBUG-83488 Change-Id: Iac6e3f6f1e1e8ef3a1a0d89b19d2ac2d186434f5 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> (cherry picked from commit d804d21e8f5d9e1cd7fd4ae9a3f2394642d1f7d8) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'util')
-rw-r--r--util/locale_database/cldr.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/util/locale_database/cldr.py b/util/locale_database/cldr.py
index 6d6eee2e00..a65c649106 100644
--- a/util/locale_database/cldr.py
+++ b/util/locale_database/cldr.py
@@ -172,7 +172,11 @@ class CldrReader (object):
4 values, never 2 or 3."""
tags = iter(name.split('_'))
yield tags.next() # Language
- tag = tags.next() # may raise StopIteration
+
+ try:
+ tag = tags.next()
+ except StopIteration:
+ return
# Script is always four letters, always capitalised:
if len(tag) == 4 and tag[0].isupper() and tag[1:].islower():
@@ -201,10 +205,11 @@ class CldrReader (object):
else:
yield ''
- # If nothing is left, StopIteration will avoid the warning:
- if not tag:
- tag = tags.next()
- self.grumble('Ignoring unparsed cruft {} in {}\n'.format('_'.join(tag + tuple(tags)), name))
+ rest = [tag] if tag else []
+ rest.extend(tags)
+
+ if rest:
+ self.grumble('Ignoring unparsed cruft {} in {}\n'.format('_'.join(rest), name))
def __getLocaleData(self, scan, calendars, language, script, territory, variant):
ids, names = zip(*self.root.codesToIdName(language, script, territory, variant))