def _lang_dict_paths(): paths = dict((pkg.name, pkg.load().get_path()) for pkg in _iter_entry_points('pymorphy2_dicts')) # discovery of pymorphy2 v0.8 dicts try: import pymorphy2_dicts paths['ru-old'] = pymorphy2_dicts.get_path() except ImportError: pass return paths
def _lang_dict_paths(): import pkg_resources paths = dict((pkg.name, pkg.load().get_path()) for pkg in pkg_resources.iter_entry_points('pymorphy2_dicts')) try: import pymorphy2_dicts paths['ru-old'] = pymorphy2_dicts.get_path() except ImportError: pass return paths
def _lang_dict_paths(): import pkg_resources paths = dict((pkg.name, pkg.load().get_path()) for pkg in pkg_resources.iter_entry_points("pymorphy2_dicts")) try: import pymorphy2_dicts paths["ru-old"] = pymorphy2_dicts.get_path() except ImportError: pass return paths
def choose_dictionary_path(cls, path=None): if path is not None: return path if cls.ENV_VARIABLE in os.environ: return os.environ[cls.ENV_VARIABLE] try: import pymorphy2_dicts return pymorphy2_dicts.get_path() except ImportError: msg = ("Can't find dictionaries. " "Please either pass a path to dictionaries, " "or install 'pymorphy2-dicts' package, " "or set %s environment variable.") % cls.ENV_VARIABLE raise ValueError(msg)
def lang_dict_path(lang): """ Return language-specific dictionary path """ lang_paths = _lang_dict_paths() if lang in lang_paths: return lang_paths[lang] if lang == 'ru': # backwards compatibility try: import pymorphy2_dicts return pymorphy2_dicts.get_path() except ImportError: raise ValueError("Can't find dictionaries for Russian. " "Please install 'pymorphy2-dicts-ru' package.") raise ValueError("Can't find a dictionary for language %r. " "Installed languages: %r" % (lang, list(lang_paths.keys())))
def test_old_dictionaries_supported_by_path(): pymorphy2_dicts = pytest.importorskip("pymorphy2_dicts") m = pymorphy2.MorphAnalyzer(pymorphy2_dicts.get_path()) assert m.lang == 'ru' assert m.tag('стиль')[0].POS == 'NOUN'