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