MCPcopy
hub / github.com/explosion/spaCy / get_model_pkgs

Function get_model_pkgs

spacy/cli/validate.py:76–116  ·  view source on GitHub ↗
(silent: bool = False)

Source from the content-addressed store, hash-verified

74
75
76def get_model_pkgs(silent: bool = False) -> Tuple[dict, dict]:
77 msg = Printer(no_print=silent, pretty=not silent)
78 with msg.loading("Loading compatibility table..."):
79 r = requests.get(about.__compatibility__)
80 if r.status_code != 200:
81 msg.fail(
82 f"Server error ({r.status_code})",
83 "Couldn't fetch compatibility table.",
84 exits=1,
85 )
86 msg.good("Loaded compatibility table")
87 compat = r.json()["spacy"]
88 all_models = set()
89 with warnings.catch_warnings():
90 warnings.filterwarnings("ignore", message="\\[W09[45]")
91 installed_models = get_installed_models()
92 for spacy_v, models in dict(compat).items():
93 all_models.update(models.keys())
94 for model, model_vs in models.items():
95 compat[spacy_v][model] = [reformat_version(v) for v in model_vs]
96 pkgs = {}
97 for pkg_name in installed_models:
98 package = pkg_name.replace("-", "_")
99 version = get_package_version(pkg_name)
100 if package in compat:
101 is_compat = version in compat[package]
102 spacy_version = about.__version__
103 else:
104 model_path = get_package_path(package)
105 with warnings.catch_warnings():
106 warnings.filterwarnings("ignore", message="\\[W09[45]")
107 model_meta = get_model_meta(model_path)
108 spacy_version = model_meta.get("spacy_version", "n/a")
109 is_compat = is_compatible_version(about.__version__, spacy_version) # type: ignore[assignment]
110 pkgs[pkg_name] = {
111 "name": package,
112 "version": version,
113 "spacy": spacy_version,
114 "compat": is_compat,
115 }
116 return pkgs, compat
117
118
119def reformat_version(version: str) -> str:

Callers 2

validateFunction · 0.85

Calls 8

get_installed_modelsFunction · 0.85
reformat_versionFunction · 0.85
get_package_versionFunction · 0.85
get_package_pathFunction · 0.85
get_model_metaFunction · 0.85
is_compatible_versionFunction · 0.85
getMethod · 0.45
updateMethod · 0.45

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…