def test_load_model_version_compat(): """Test warnings for various spacy_version specifications in meta. Since this is more of a hack for v2, manually specify the current major.minor version to simplify test creation.""" nlp = util.load_model("blank:en") assert nlp.meta["spacy_version"].startswith(">=2.3") with make_tempdir() as d: # no change: compatible nlp.to_disk(d) meta_path = Path(d / "meta.json") util.get_model_meta(d) # additional compatible upper pin nlp.meta["spacy_version"] = ">=2.3.0,<2.4.0" srsly.write_json(meta_path, nlp.meta) util.get_model_meta(d) # incompatible older version nlp.meta["spacy_version"] = ">=2.2.5" srsly.write_json(meta_path, nlp.meta) with pytest.warns(UserWarning): util.get_model_meta(d) # invalid version specification nlp.meta["spacy_version"] = ">@#$%_invalid_version" srsly.write_json(meta_path, nlp.meta) with pytest.warns(UserWarning): util.get_model_meta(d)
def get_lemmarules_path(): init_path = Path(__file__) model_path = init_path.parent meta = get_model_meta(model_path) data_dir = "%s_%s-%s" % (meta["lang"], meta["name"], meta["version"]) data_path = model_path / data_dir lemma_rules_path = data_path / "lemmy" / "rules.json" return lemma_rules_path
def load(self, model_path, **overrides): meta = get_model_meta(model_path) pipeline = meta.get('pipeline', []) disable = overrides.get('disable', []) if pipeline is True: pipeline = JapaneseDefaults.pipe_names elif pipeline in (False, None): pipeline = [] for name in pipeline: if name not in disable: config = meta.get('pipeline_args', {}).get(name, {}) component = self.create_pipe(name, config=config) self.add_pipe(component, name=name) self.from_disk(model_path) return self
# coding: utf8 from __future__ import unicode_literals from pathlib import Path from spacy.util import load_model_from_init_py, get_model_meta __version__ = get_model_meta(Path(__file__).parent)['version'] def load(**overrides): return load_model_from_init_py(__file__, **overrides)