[build-system]
requires = ["maturin>=1.0,<2.0"]
build-backend = "maturin"

[project]
name = "ignyx"
version = "2.9.1"
description = "Rust-powered Python web framework — 10x faster than FastAPI"
readme = "README.md"
license = { text = "MIT" }
authors = [
    { name = "Saketh Jangala" }
]
requires-python = ">=3.12"
keywords = ["web", "framework", "rust", "api", "http", "fast"]
classifiers = [
    "Development Status :: 5 - Production/Stable",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Rust",
    "Framework :: AsyncIO",
    "Topic :: Internet :: WWW/HTTP :: WSGI :: Server",
    "Topic :: Software Development :: Libraries :: Application Frameworks",
]

[project.optional-dependencies]
dev = ["pytest", "httpx", "pydantic", "pytest-cov", "ruff", "maturin", "mypy"]
reload = ["watchfiles"]
dependencies = [
    "pydantic>=2.0.0"
]

[project.scripts]
ignyx-cli = "ignyx.cli:main"

[project.urls]
Homepage = "https://github.com/sakethdevx/ignyx"
Repository = "https://github.com/sakethdevx/ignyx"
"Bug Tracker" = "https://github.com/sakethdevx/ignyx/issues"

[tool.maturin]
features = ["pyo3/extension-module"]
python-source = "python"
module-name = "ignyx._core"

[tool.pytest.ini_options]
addopts = "--tb=short"

[tool.mypy]
python_version = "3.12"
strict = true
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
disallow_any_generics = true
check_untyped_defs = true
no_implicit_optional = true
warn_redundant_casts = true
warn_unused_ignores = true
warn_no_return = true
warn_unreachable = true
strict_equality = true
ignore_missing_imports = true

[tool.ruff]
line-length = 100
target-version = "py312"
 
[tool.ruff.lint]
select = ["E", "F", "W", "I"]
ignore = ["E501"]
