/ pyproject.toml
pyproject.toml
1 [project] 2 name = "spoolman" 3 version = "0.23.1" 4 description = "A web service that keeps track of 3D printing spools." 5 license = "MIT" 6 readme = "README.md" 7 authors = [{ name = "Donkie", email = "daniel.cf.hultgren@gmail.com" }] 8 dependencies = [ 9 "uvicorn~=0.34", 10 "httptools>=0.6.4; platform_machine != \"armv7l\"", 11 "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\")", 12 "fastapi~=0.115", 13 "SQLAlchemy[aiomysql,aiosqlite,asyncio,postgresql_asyncpg]~=2.0", 14 "pydantic~=2.10", 15 "platformdirs~=4.3", 16 "alembic~=1.15", 17 "scheduler~=0.8", 18 "sqlalchemy-cockroachdb~=2.0", 19 "asyncpg~=0.30", 20 "psycopg2-binary~=2.9", 21 "setuptools~=78.1", 22 "WebSockets~=15.0", 23 "prometheus-client~=0.21", 24 "httpx~=0.28", 25 "hishel~=0.1", 26 "aiomysql[rsa]~=0.3", 27 ] 28 requires-python = ">=3.10" 29 30 [dependency-groups] 31 dev = [ 32 "ruff==0.14.10", 33 "pytest~=8.3.5", 34 "pytest-asyncio~=0.25.3", 35 "httpx~=0.28.1", 36 "poethepoet>=0.40.0", 37 ] 38 39 [tool.poe.tasks.generate-docs] 40 script = "spoolman.docs:generate_docs" 41 help = "Generate API documentation for Spoolman." 42 43 [tool.poe.tasks.bump] 44 script = "spoolman.bump:bump" 45 help = "Bump Spoolman version." 46 47 [tool.poe.tasks.run] 48 cmd = "uvicorn spoolman.main:app" 49 help = "Start Spoolman." 50 51 [tool.poe.tasks.itest] 52 cmd = "python tests_integration/run.py" 53 help = "Builds Spoolman and runs integration tests on the backend against all supported databases." 54 55 [tool.bumpversion] 56 current_version = "0.22.1" 57 parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)" 58 serialize = ["{major}.{minor}.{patch}"] 59 allow_dirty = false 60 61 [[tool.bumpversion.files]] 62 filename = "pyproject.toml" 63 search = 'version = "{current_version}"' 64 replace = 'version = "{new_version}"' 65 66 [tool.ruff] 67 line-length = 120 68 target-version = "py310" 69 70 [tool.ruff.lint] 71 select = ["ALL"] 72 ignore = [ 73 "A003", 74 "COM812", 75 "D101", 76 "D104", 77 "D203", 78 "D213", 79 "D406", 80 "D407", 81 "DTZ003", 82 "EM101", 83 "EM102", 84 "FA100", 85 "FIX002", 86 "PLR0913", 87 "S104", 88 "S603", 89 "SIM108", 90 "TD002", 91 "TD003", 92 "TRY003", 93 "TRY201", 94 ] 95 96 [tool.ruff.lint.per-file-ignores] 97 "tests*/*" = ["ANN201", "ASYNC210", "S101", "PLR2004", "D103", "TID252"] 98 "migrations/versions/*" = ["N999"]