mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-08-06 22:18:36 +02:00
68 lines
1.8 KiB
Python
68 lines
1.8 KiB
Python
"""Published dependency boundaries."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from importlib.metadata import metadata, requires
|
|
|
|
from packaging.requirements import Requirement
|
|
from packaging.utils import canonicalize_name
|
|
|
|
|
|
def _requirement_names(extra: str | None = None) -> set[str]:
|
|
selected_extra = extra or ""
|
|
parsed = (Requirement(value) for value in requires("remove-ai-watermarks") or [])
|
|
return {
|
|
canonicalize_name(requirement.name)
|
|
for requirement in parsed
|
|
if requirement.marker is None or requirement.marker.evaluate({"extra": selected_extra})
|
|
}
|
|
|
|
|
|
def test_default_install_is_metadata_focused():
|
|
default = _requirement_names()
|
|
|
|
assert {
|
|
"c2pa-python",
|
|
"click",
|
|
"piexif",
|
|
"pillow",
|
|
"python-dotenv",
|
|
} <= default
|
|
assert {
|
|
"invisible-watermark",
|
|
"numpy",
|
|
"opencv-python-headless",
|
|
"pillow-heif",
|
|
"torch",
|
|
"trustmark",
|
|
}.isdisjoint(default)
|
|
|
|
|
|
def test_pixels_extra_owns_shared_numeric_dependencies():
|
|
assert {
|
|
"numpy",
|
|
"opencv-python-headless",
|
|
} <= _requirement_names("pixels")
|
|
|
|
|
|
def test_file_format_and_detector_dependencies_are_independent():
|
|
assert "pillow-heif" in _requirement_names("heif")
|
|
assert "pywavelets" in _requirement_names("detect")
|
|
|
|
|
|
def test_extras_use_capability_names_without_legacy_aliases():
|
|
extras = set(metadata("remove-ai-watermarks").get_all("Provides-Extra") or [])
|
|
|
|
assert {"pixels", "heif", "visible", "detect", "diffusion"} <= extras
|
|
assert {"gpu", "remove", "detect-pywavelets"}.isdisjoint(extras)
|
|
|
|
|
|
def test_production_all_does_not_include_development_tools():
|
|
assert {
|
|
"pyright",
|
|
"pytest",
|
|
"pytest-cov",
|
|
"pytest-xdist",
|
|
"ruff",
|
|
}.isdisjoint(_requirement_names("all"))
|