[build-system] requires = ["setuptools>=68", "wheel"] build-backend = "setuptools.build_meta" [project] name = "crafting-table" version = "0.1.0" description = "Polyglot dev/build/audit container — HTTP API + async job runner." readme = "README.md" license = { text = "MIT" } requires-python = ">=3.11" authors = [ { name = "Kayos", email = "kayos@sulkta.com" }, ] dependencies = [ "fastapi>=0.115,<1.0", "uvicorn[standard]>=0.30,<1.0", "pydantic>=2.7,<3.0", ] [project.optional-dependencies] test = [ "pytest>=8.0", "pytest-asyncio>=0.23", "httpx>=0.27", ] [tool.setuptools.packages.find] include = ["crafting_table*"] [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] filterwarnings = [ # asyncio's BaseSubprocessTransport.__del__ can fire after the test loop # closes when subprocess cleanup races with pytest-asyncio's loop teardown. # The test logic verifies the subprocess actually died; the late __del__ # touch is harmless. Suppressing keeps pytest's AST cache from blowing up. "ignore::pytest.PytestUnraisableExceptionWarning", ]