kiwi/pyproject.toml
pyr0ball c18bfec8f5
Some checks are pending
CI / Backend (Python) (push) Waiting to run
CI / Frontend (Vue) (push) Waiting to run
Mirror / mirror (push) Waiting to run
fix(lint): add ruff config, fix all lint errors for GitHub CI
- pyproject.toml: add [tool.ruff] config suppressing E402/W293 globally,
  F841/E741/E702 in tests, E741 in scripts
- inventory.py: split semicolon import (E702)
- recipes.py: fix logger -> log (F821 undefined name)
- shopping.py: rename l -> lnk in list comprehension (E741)
- format_conversion.py: noqa F841 on CUDA flag (used as future hook)
- backfill_keywords.py: rename done -> _done (F841)
- ingest_purplecarrot.py: drop == True comparison (E712)
- Auto-fix: I001 import sorting, F401 unused imports across all files
2026-07-06 02:49:02 -07:00

56 lines
1.5 KiB
TOML

[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "kiwi"
version = "0.10.0"
description = "Pantry tracking + leftover recipe suggestions"
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
# API
"fastapi>=0.110",
"uvicorn[standard]>=0.27",
"python-multipart>=0.0.9",
"aiofiles>=23.0",
# Image processing + OCR
"opencv-python>=4.8",
"numpy>=1.25",
"pyzbar>=0.1.9",
"Pillow>=10.0",
# HTTP clients
"httpx>=0.27",
"requests>=2.31",
# mDNS advertisement (optional; user must opt in)
"zeroconf>=0.131",
# CircuitForge shared scaffold
"circuitforge-core>=0.8.0",
]
[tool.setuptools.packages.find]
where = ["."]
include = ["app*"]
[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "W", "I"]
ignore = [
"E501", # line length — handled by formatter
"E402", # module-import-not-at-top — intentional for conditional/lazy imports in endpoints
"W293", # whitespace before newline on blank lines — cosmetic, fixed by formatter
]
[tool.ruff.lint.per-file-ignores]
# tests/: F841 unused variables are the standard mock-patch capture pattern.
# E741 ambiguous names and E402 conditional imports are common in test fixtures.
"tests/**" = ["F841", "E741", "E702"]
# scripts/: E741 ambiguous loop vars are common in data pipeline scripts.
"scripts/**" = ["E741"]