Skip to content

Commit c909276

Browse files
author
Laurent
committed
check conversion deps are installed when using refiners.conversion
1 parent ef0a752 commit c909276

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/refiners/conversion/__init__.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,36 @@
1+
import sys
2+
from importlib import import_module
3+
from importlib.metadata import requires
4+
5+
from packaging.requirements import Requirement
6+
7+
refiners_requires = requires("refiners")
8+
assert refiners_requires is not None
9+
10+
# Some dependencies have different module names than their package names
11+
req_to_module: dict[str, str] = {
12+
"huggingface-hub": "huggingface_hub",
13+
"segment-anything-py": "segment_anything",
14+
}
15+
16+
for dep in refiners_requires:
17+
req = Requirement(dep)
18+
marker = req.marker
19+
if marker is None or not marker.evaluate({"extra": "conversion"}):
20+
continue
21+
22+
module_name = req_to_module.get(req.name, req.name)
23+
24+
try:
25+
import_module(module_name)
26+
except ImportError:
27+
print(
28+
f"Some dependencies are missing: {req.name}. "
29+
"Please install refiners with the `conversion` extra, e.g. `pip install refiners[conversion]`",
30+
file=sys.stderr,
31+
)
32+
sys.exit(1)
33+
134
from .models import (
235
autoencoder_sd15,
336
autoencoder_sdxl,

0 commit comments

Comments
 (0)