Newer
Older
sups_yolo / pyproject.toml
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "sups-yolo"
version = "0.1.0"
description = "Intelligent machine-vision system for real-time defect detection on polyurethane shoe soles."
readme = "README.md"
license = { text = "MIT" }
requires-python = ">=3.10"
authors = [
  { name = "SUPS Team" },
]
keywords = ["yolo", "machine-vision", "defect-detection", "polyurethane", "soles"]
classifiers = [
  "Development Status :: 3 - Alpha",
  "Intended Audience :: Manufacturing",
  "License :: OSI Approved :: MIT License",
  "Programming Language :: Python :: 3 :: Only",
  "Programming Language :: Python :: 3.10",
  "Programming Language :: Python :: 3.11",
  "Programming Language :: Python :: 3.12",
]

dependencies = [
  "fastapi>=0.115.0",
  "uvicorn[standard]>=0.32.0",
  "jinja2>=3.1.0",
  "python-multipart>=0.0.17",
  "websockets>=14.0",
  "sqlalchemy>=2.0.36",
  "aiosqlite>=0.20.0",
  "opencv-python>=4.10.0",
  "pillow>=11.0.0",
  "numpy>=1.26.0",
  "ultralytics>=8.3.0",
  "albumentations>=1.4.0",
  "pydantic>=2.9.0",
  "pydantic-settings>=2.6.0",
  "pyyaml>=6.0.2",
  "click>=8.1.0",
  "rich>=13.9.0",
]

[project.optional-dependencies]
rpi = [
  "picamera2>=0.3.17",
]
dev = [
  "pytest>=8.3.0",
  "pytest-asyncio>=0.24.0",
  "pytest-cov>=6.0.0",
  "ruff>=0.8.0",
  "mypy>=1.13.0",
  "pre-commit>=4.0.0",
  "httpx>=0.27.0",
]

[project.scripts]
sups-yolo = "sups_yolo.cli:main"

[project.urls]
Homepage = "https://github.com/gmikcon/sups_yolo"
Documentation = "https://github.com/gmikcon/sups_yolo/tree/main/docs"

[tool.hatch.build.targets.wheel]
packages = ["src/sups_yolo"]

[tool.ruff]
target-version = "py310"
line-length = 100

[tool.ruff.lint]
select = [
  "E",
  "F",
  "I",
  "N",
  "W",
  "UP",
  "B",
  "C4",
  "SIM",
  "ARG",
  "PL",
]
ignore = ["PLR2004", "PLC0415"]

[tool.ruff.lint.pydocstyle]
convention = "google"

[tool.mypy]
python_version = "3.10"
strict = true
warn_return_any = true
warn_unused_ignores = true
ignore_missing_imports = true

[tool.pytest.ini_options]
asyncio_mode = "auto"
testpaths = ["tests"]
pythonpath = ["src"]