From 01d3e45a1863e279f02f41c2e6b161f5f6eb87a3 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 13 Jul 2023 08:13:09 +0530 Subject: [PATCH] Move code to load ISO 3166 data into localization.py --- src/calibre/spell/__init__.py | 13 +++---------- src/calibre/utils/localization.py | 8 ++++++++ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/calibre/spell/__init__.py b/src/calibre/spell/__init__.py index 253dcbda4d..e6c2b4265f 100644 --- a/src/calibre/spell/__init__.py +++ b/src/calibre/spell/__init__.py @@ -6,21 +6,14 @@ __copyright__ = '2014, Kovid Goyal ' from collections import namedtuple -from calibre.utils.localization import canonicalize_lang -from calibre.utils.resources import get_path as P +from calibre.utils.localization import canonicalize_lang, load_iso3166 DictionaryLocale = namedtuple('DictionaryLocale', 'langcode countrycode') -ccodes, ccodemap, country_names = None, None, None - def get_codes(): - global ccodes, ccodemap, country_names - if ccodes is None: - from calibre.utils.serialize import msgpack_loads - data = msgpack_loads(P('localization/iso3166.calibre_msgpack', allow_user_override=False, data=True)) - ccodes, ccodemap, country_names = data['codes'], data['three_map'], data['names'] - return ccodes, ccodemap + data = load_iso3166() + return data['codes'], data['three_map'] def parse_lang_code(raw): diff --git a/src/calibre/utils/localization.py b/src/calibre/utils/localization.py index 4613f61af3..d2f6066d8a 100644 --- a/src/calibre/utils/localization.py +++ b/src/calibre/utils/localization.py @@ -414,6 +414,14 @@ def _load_iso639(): return _iso639 +def load_iso3166(): + ans = getattr(load_iso3166, 'ans', None) + if ans is None: + from calibre.utils.serialize import msgpack_loads + ans = load_iso3166.ans = msgpack_loads(P('localization/iso3166.calibre_msgpack', allow_user_override=False, data=True)) + return ans + + def get_iso_language(lang_trans, lang): iso639 = _load_iso639() ans = lang