[project] name = "shapeshifter_uftp" version = "2.3.1" description = "Implementation of the Shapeshifter (UFTP) protocol" dependencies = [ "xsdata[lxml]>=25.0,<27.0", "pynacl>=1.5.0,<=1.6.2", "dnspython==2.8.0", "fastapi>=0.110,<0.128", "fastapi-xml>=1.1.1,<2.0.0", "requests", "uvicorn", "termcolor", ] requires-python = ">=3.11,<3.15" readme = "README.rst" license = "Apache-2.0" [project.urls] Repository = "https://github.com/shapeshifter/shapeshifter-library-python" Documentation = "https://github.com/shapeshifter/shapeshifter-library-python/README.md" Issues = "https://github.com/shapeshifter/shapeshifter-library-python/issues" Changelog = "https://github.com/shapeshifter/shapeshifter-library-python/blob/main/CHANGELOG.md" [dependency-groups] dev = [ "xmlschema", "pytest", "pytest-cov", "pylint", "responses", "sphinx", "sphinx-rtd-theme" ] [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project.scripts] shapeshifter-keypair = "shapeshifter_uftp.cli:generate_signing_keypair" shapeshifter-lookup = "shapeshifter_uftp.cli:perform_lookup" [tool.pytest.ini_options] addopts = "-v --cov --cov-report html --cov-report lcov" [tool.coverage.run] include = [ "shapeshifter_uftp/**/*.py", ] omit = [ "application/asgi.py", ] [tool.coverage.report] skip_empty = true [tool.coverage.html] directory = "test_coverage" [tool.pylint.DESIGN] [tool.isort] profile = "black" [tool.setuptools] packages = [ "shapeshifter_uftp", "shapeshifter_uftp.client", "shapeshifter_uftp.service", "shapeshifter_uftp.uftp", "shapeshifter_uftp.uftp.messages" ] [tool.ruff.lint] select = [ "I", "W191", "W291", "W292", "W293", "F401", ]