[project] name = "winnow" version = "0.6.4" description = "Selects diverse, high-quality photos from Immich as training data for Frigate face recognition." license = "AGPL-3.0-or-later" requires-python = ">=3.13" authors = [{ name = "Holden Salomon", email = "holden@arch.fyi" }] keywords = ["immich", "frigate", "face-recognition", "training-data", "arcface", "insightface"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Image Recognition", ] dependencies = [ "croniter>=5.0.2", "insightface>=0.7.3", "numpy>=2.2.6", "opencv-python-headless>=4.12.0.88", "pillow>=12.1.0", "python-dotenv>=1.2.1", "requests>=2.32.5", "rich>=14.2.0", ] [project.optional-dependencies] gpu = [ "onnxruntime-gpu>=1.23.2; sys_platform == 'linux' and platform_machine == 'x86_64'", "nvidia-cudnn-cu12>=9.0.0; sys_platform == 'linux' and platform_machine == 'x86_64'", ] rocm = ["onnxruntime-rocm>=1.16.0; sys_platform == 'linux' and platform_machine == 'x86_64'"] intel = ["onnxruntime-openvino>=1.20.0; sys_platform == 'linux' and platform_machine == 'x86_64'"] cpu = ["onnxruntime>=1.23.2"] [project.scripts] winnow = "winnow.cli:main" [project.urls] Repository = "https://github.com/sudolulo/winnow" Changelog = "https://github.com/sudolulo/winnow/blob/main/CHANGELOG.md" Documentation = "https://github.com/sudolulo/winnow/wiki" [tool.uv] index-strategy = "unsafe-best-match" conflicts = [ [ { extra = "gpu" }, { extra = "rocm" }, { extra = "intel" }, { extra = "cpu" }, ], ] required-environments = [ "sys_platform == 'linux' and platform_machine == 'x86_64'", "sys_platform == 'linux' and platform_machine == 'aarch64'", ] [dependency-groups] dev = [ "pytest>=8.0", "ruff>=0.15.17", ] [tool.hatch.build.targets.wheel] packages = ["winnow"] [tool.ruff] line-length = 120 target-version = "py313" [tool.ruff.lint] select = ["E", "F", "I"] [tool.deptry] pep621_dev_dependency_groups = ["dev"] [tool.deptry.package_module_name_map] pillow = "PIL" opencv-python-headless = "cv2" python-dotenv = "dotenv" insightface = "insightface" numpy = "numpy" nvidia-cudnn-cu12 = "nvidia.cudnn" onnxruntime-gpu = "onnxruntime" onnxruntime-rocm = "onnxruntime" onnxruntime-openvino = "onnxruntime" onnxruntime = "onnxruntime" requests = "requests" rich = "rich" [tool.deptry.per_rule_ignores] DEP002 = ["onnxruntime-gpu", "nvidia-cudnn-cu12", "onnxruntime-rocm", "onnxruntime-openvino", "onnxruntime"] [tool.pytest.ini_options] testpaths = ["tests"] [build-system] requires = ["hatchling"] build-backend = "hatchling.build"