[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "nexios"
version = "2.4.9-post1"
description = "Nexios is a modern, high-performance ASGI web framework for Python with multi-server support with zero overhead."
authors = [
    {name = "Chidebele Dunamis", email = "techwithdunamix@gmail.com"}
]
license = "MIT"
homepage = "https://github.com/nexios-labs/nexios"
repository = "https://github.com/nexios-labs/nexios"
documentation = "https://nexios-docs.netlify.app/"
readme = "readme.md"
keywords = [
    "ASGI",
    "backend",
    "framework",
    "web",
    "Python",
    "async",
    "asynchronous",
    "uvicorn",
    "granian",
    "web server",
    "API",
    "scalable",
    "real-time",
    "concurrent",
    "HTTP",
    "websocket"
]
requires-python = ">=3.9"
dependencies = [
    "uvicorn>=0.27.0",
    "anyio==4.3.0",
    "itsdangerous>=2.1.2",
    "python-multipart>=0.0.6",
    "typing-extensions==4.12.2",
    "pydantic>=2.0,<3.0",
    "click>=8.1.3",
    "setuptools>=42.0.0",
]

[project.optional-dependencies]
templating = ["jinja2>=3.1.6"]
jwt = ["pyjwt>=2.7.0"]
granian = ["granian>=1.2.0"]
all = ["granian>=1.2.0", "pyjwt>=2.7.0", "jinja2>=3.1.6"]
dev = [
    "mypy>=1.15.0",
    "pytest>=8.3.4,<8.4.0",
    "mkdocs>=1.2.3",
    "coverage>=6.3,<8.0",
    "httpx>=0.23.3,<0.29.0",
    "typing-extensions==4.12.2",
    "pytest-asyncio>=0.25.3,<0.27.0",
    "pyjwt>=2.7.0",
]

[project.scripts]
nexios = "nexios.cli:cli"

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

[tool.mypy]
python_version = "3.13"
ignore_missing_imports = true
warn_unused_ignores = true
warn_redundant_casts = true
warn_return_any = false
disallow_untyped_calls = false
disallow_untyped_defs = false
files = ["nexios"]
exclude = "(nexios/templates/.*)"

