pyproject.toml

Summary

Maintainability
Test Coverage
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "pook"
dynamic = ["version"]
description = "HTTP traffic mocking and expectations made easy"
readme = "README.rst"
license = "MIT"
authors = [
    { name = "Tomas Aparicio", email = "tomas@aparicio.me" },
]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Developers",
    "Intended Audience :: System Administrators",
    "License :: OSI Approved :: MIT License",
    "Natural Language :: English",
    "Operating System :: OS Independent",
    "Programming Language :: Python :: 3.8",
    "Programming Language :: Python :: 3.9",
    "Programming Language :: Python :: Implementation :: CPython",
    "Programming Language :: Python :: Implementation :: PyPy",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Software Development",
    "Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
    "furl>=0.5.6",
    "jsonschema>=2.5.1",
    "xmltodict>=0.11.0",
]
requires-python = ">=3.8"

[project.urls]
Homepage = "https://github.com/h2non/pook"

[tool.hatch.version]
path = "src/pook/__init__.py"

[tool.hatch.build.targets.sdist]
packages = ["src/pook"]

[tool.hatch.build.targets.wheel]
packages = ["src/pook"]

[tool.hatch.envs.default]
python = "3.12"
scripts = { test = 'pytest {args}' }
extra-dependencies = [
    "pytest~=7.4",
    "pytest-asyncio~=0.20.3",
    "pytest-pook==0.1.0b0",
    "pytest-httpbin==2.0.0",

    "requests~=2.20",
    "urllib3~=1.24",
    "httpx~=0.26.0",

    "aiohttp~=3.8",
    "async-timeout~=4.0.3",

    # mocket relies on httptools which does not support PyPy
    "mocket[pook]~=3.12.2; platform_python_implementation != 'PyPy'",
]

[tool.hatch.envs.lint]
extra-dependencies = [
    "pre-commit~=3.6",
]

[tool.hatch.envs.lint.scripts]
install = 'pre-commit install'
run = 'pre-commit run --all-files'

[tool.hatch.envs.docs]
extra-dependencies = [
    "Sphinx~=7.2.6 ",
    "sphinx-rtd-theme~=2.0.0",
]

[tool.hatch.envs.docs.scripts]
apidocs = 'sphinx-apidoc -f --follow-links -H "API documentation" -o docs/source src/pook'
htmldocs = 'rm -rf docs/_build && sphinx-build -b html -d docs/_build/doctrees ./docs docs/_build/html'
build = 'hatch run apidocs; hatch run htmldocs'

[tool.hatch.envs.test]
[[tool.hatch.envs.test.matrix]]
python = ["3.8", "3.9", "3.10", "3.11", "3.12", "pypy3.10"]

[tool.pytest.ini_options]
asyncio_mode = "auto"