[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"]