Files
wildminder-ComfyUI-KEEP/pyproject.toml
T
WildAi ba503f2068 build(deps): declare only what the ComfyUI host does not ship
The host's requirements.txt provides torch, torchvision, numpy, einops, pyyaml, Pillow, scipy, tqdm and requests; the pack now declares only opencv-python-headless - the vendored architectures and the four LANCZOS4 resizes need cv2, and no GUI call exists anywhere in the pack or the vendored tree, so the headless wheel suffices (no libGL/Qt in a server install). requests was a phantom: only the vendored basicsr download helper imports it. The dependency guards move to the host-guarantee policy (closure coverage = declared + host-provided, pinned to the host's requirement lines, exhaustive in both directions).
2026-10-25 23:07:07 +03:00

72 lines
3.2 KiB
TOML

[project]
name = "ComfyUI-KEEP"
description = "Kalman-Inspired Feature Propagation for Video Face Super-Resolution"
version = "2.0.0"
license = {file = "LICENSE"}
requires-python = ">=3.10"
# The declared runtime set (host-guarantee policy): the pack declares only
# what the ComfyUI host does not already provide. The host's own
# requirements.txt ships torch, torchvision, numpy, einops, pyyaml, Pillow,
# scipy, tqdm and requests, so none of them is repeated here - the pack
# reports progress through the ComfyUI execution API instead of tqdm, and
# its single scipy call (gaussian_filter1d) became a torch-native smoothing.
# OpenCV is the one image dependency the host does not ship, and the
# vendored architectures plus the LANCZOS4 resizes of the processor still
# need cv2 - the headless wheel covers the whole closure (no GUI function
# is called anywhere in the pack or the vendored tree) without dragging
# the libGL/Qt stack into a server-side install. Matches requirements.txt.
dependencies = ["opencv-python-headless"]
# The test-only dependencies. ``tomli`` is the ``tomllib`` parser of
# Python 3.10 (the minimum of ``requires-python``) - the metadata test
# imports it when the standard library has no ``tomllib`` yet.
[project.optional-dependencies]
test = ["tomli>=2.0; python_version < '3.11'"]
[project.urls]
Repository = "https://github.com/wildminder/ComfyUI-KEEP"
# Used by Comfy Registry https://comfyregistry.org
[tool.comfy]
PublisherId = "wildai"
DisplayName = "KEEP"
# The preview asset of the registry entry. The file is committed in the
# repository (``assets/keep-preview.png``); P6.5 may replace the image, but
# the key must keep pointing at a file that exists.
Icon = "assets/keep-preview.png"
requires-comfyui = ">=0.28.0"
# P1.1 - pytest harness configuration.
# The four markers are the tiers of the modernization plan (section 4):
# unit - pure logic, no ComfyUI dependency
# mock_integration - node execute paths against the root conftest mocks
# headless - real ComfyUI source tree on sys.path, no server
# gpu_acceptance - opt-in real-weight run (RUN_KEEP_E2E + KEEP_MODEL_DIR)
[tool.pytest.ini_options]
testpaths = ["tests"]
addopts = "-v --tb=short --import-mode=importlib"
consider_namespace_packages = true
pythonpath = ["."]
markers = [
"unit: Pure unit test (no ComfyUI dependency)",
"mock_integration: Mock-based integration test (node execute paths against the conftest mocks)",
"headless: Requires the real ComfyUI source tree on sys.path (no server)",
"gpu_acceptance: Opt-in real-weight run (RUN_KEEP_E2E=1 and KEEP_MODEL_DIR)",
]
# P1.5 - the lint gate of .github/workflows/tests.yml.
# Scope decision (same as the reference pack ComfyUI-DyPE): the gate covers the
# *correctness* rules (pyflakes F + syntax errors E9). The vendored
# third-party tree (modules/deps) is excluded - it is upstream code, not ours.
[tool.ruff]
target-version = "py310"
line-length = 120
extend-exclude = ["modules/deps"]
[tool.ruff.lint]
select = ["E9", "F"]
# F401 (unused import) and F541 (f-string without placeholders) are style
# findings in the *existing* production code; they are cleaned up in the
# production phases (P4.7), not in the test-infrastructure phase.
ignore = ["F401", "F541"]