[project] name = "spoolman" version = "0.23C.2" description = "A web service that keeps track of 3D printing spools." authors = [ { name = "Tony", email = "tony@nastynas.xyz" }, { name = "Donkie", email = "daniel.cf.hultgren@gmail.com" }, { name = "Claude", email = "noreply@anthropic.com" }, ] dependencies = [ "uvicorn~=0.34", "httptools>=0.6.4; platform_machine != \"armv7l\"", "uvloop!=0.15.0,!=0.15.1,>=0.21.0; platform_machine != \"armv7l\" and sys_platform != \"win32\" and (sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\")", "fastapi~=0.115", "SQLAlchemy[aiomysql,aiosqlite,asyncio,postgresql_asyncpg]~=2.0", "pydantic~=2.10", "platformdirs~=4.3", "alembic~=1.15", "scheduler~=0.8", "sqlalchemy-cockroachdb~=2.0", "asyncpg~=0.30", "psycopg2-binary~=2.9", "setuptools~=76.0", "WebSockets~=15.0", "prometheus-client~=0.21", "httpx~=0.28", "hishel~=0.1", "python-multipart~=0.0", ] requires-python = ">=3.9,<3.13" [project.license] text = "MIT" [tool.pdm.dev-dependencies] dev = [ "ruff==0.11.0", "black~=25.1.0", "pre-commit~=4.1.0", "pytest~=8.3.5", "pytest-asyncio~=0.25.3", "httpx~=0.28.1", ] [tool.pdm.scripts.docs] call = "spoolman.docs:generate_docs" [tool.pdm.scripts.bump] call = "spoolman.bump:bump" [tool.pdm.scripts.app] cmd = "uvicorn spoolman.main:app" [tool.pdm.scripts.itest] cmd = "python tests_integration/run.py" [tool.ruff] line-length = 120 target-version = "py39" [tool.ruff.lint] select = [ "ALL", ] ignore = [ "A003", "D101", "D104", "D203", "D213", "D406", "D407", "FA100", "FIX002", "S104", "TRY201", "TRY003", "EM101", "EM102", "DTZ003", "PLR0913", "SIM108", "TD002", "TD003", ] [tool.ruff.lint.per-file-ignores] "tests*/*" = [ "ANN201", "ASYNC210", "S101", "PLR2004", "D103", "TID252", ] "migrations/versions/*" = [ "N999", ] [tool.black] line-length = 120 target-version = [ "py39", ] [build-system] requires = [ "pdm-backend", ] build-backend = "pdm.backend"