mirror of
https://github.com/wiltodelta/remove-ai-watermarks.git
synced 2026-08-31 09:40:38 +02:00
Merge remote-tracking branch 'origin/main' into docs/arxiv-paper-review
# Conflicts: # .claude/settings.json # docs/installation.md # docs/supported-signals.md # docs/synthid.md # docs/verification-plan.md # docs/watermarking-landscape.md # pyproject.toml # src/remove_ai_watermarks/identify.py # uv.lock
This commit is contained in:
+15
-2
@@ -5,19 +5,27 @@ from __future__ import annotations
|
||||
from importlib.metadata import metadata, requires
|
||||
|
||||
from packaging.requirements import Requirement
|
||||
from packaging.specifiers import SpecifierSet
|
||||
from packaging.utils import canonicalize_name
|
||||
|
||||
|
||||
def _requirement_names(extra: str | None = None) -> set[str]:
|
||||
def _requirement_names(extra: str | None = None, *, python_version: str | None = None) -> set[str]:
|
||||
selected_extra = extra or ""
|
||||
environment = {"extra": selected_extra}
|
||||
if python_version is not None:
|
||||
environment["python_version"] = python_version
|
||||
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})
|
||||
if requirement.marker is None or requirement.marker.evaluate(environment)
|
||||
}
|
||||
|
||||
|
||||
def test_supported_python_floor_is_published():
|
||||
assert SpecifierSet(metadata("remove-ai-watermarks")["Requires-Python"]) == SpecifierSet(">=3.11,<3.15")
|
||||
|
||||
|
||||
def test_default_install_is_metadata_focused():
|
||||
default = _requirement_names()
|
||||
|
||||
@@ -56,6 +64,11 @@ def test_file_format_and_detector_dependencies_are_independent():
|
||||
assert "openai" in _requirement_names("verify")
|
||||
|
||||
|
||||
def test_trustmark_is_limited_to_its_numpy_compatible_python_range():
|
||||
assert "trustmark" in _requirement_names("trustmark", python_version="3.12")
|
||||
assert "trustmark" not in _requirement_names("trustmark", python_version="3.13")
|
||||
|
||||
|
||||
def test_extras_use_capability_names_without_legacy_aliases():
|
||||
extras = set(metadata("remove-ai-watermarks").get_all("Provides-Extra") or [])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user