content: [build-system]
  requires = ["uv_build>=0.9.0,<0.10.0"]
  build-backend = "uv_build"
  
  [project]
  name = "haiway"
  description = "Framework for dependency injection and state management within structured concurrency model."
  version = "0.35.1"
  readme = "README.md"
  maintainers = [
    { name = "Kacper Kaliński", email = "kacper.kalinski@miquido.com" },
  ]
  requires-python = ">=3.13"
  classifiers = [
    "License :: OSI Approved :: MIT License",
    "Intended Audience :: Developers",
    "Programming Language :: Python",
    "Typing :: Typed",
    "Topic :: Software Development",
    "Topic :: Software Development :: Libraries :: Application Frameworks",
  ]
  license = { file = "LICENSE" }
  dependencies = []
  
  [project.urls]
  Homepage = "https://miquido.com"
  Repository = "https://github.com/miquido/haiway.git"
  
  [project.optional-dependencies]
  opentelemetry = [
    "opentelemetry-api~=1.37",
    "opentelemetry-sdk~=1.37",
    "opentelemetry-exporter-otlp-proto-grpc~=1.37",
  ]
  httpx = ["httpx~=0.28"]
  postgres = ["asyncpg~=0.30"]
  dev = [
    "bandit~=1.8",
    "pyright~=1.1",
    "pytest~=8.4",
    "pytest-asyncio~=1.2",
    "pytest-cov~=7.0",
    "ruff~=0.14",
  ]
  docs = [
    "mkdocs~=1.6",
    "mkdocs-material~=9.6",
    "mkdocstrings[python]~=0.30",
    "mdformat~=0.7",
    "mdformat-gfm~=0.4",
    "pymarkdownlnt~=0.9",
  ]
  
  [tool.pytest.ini_options]
  pythonpath = ["src"]
  
  [tool.ruff]
  target-version = "py313"
  line-length = 100
  extend-exclude = [".venv", ".git", ".cache"]
  lint.select = ["E", "F", "A", "I", "B", "PL", "W", "C", "RUF", "UP"]
  lint.ignore = ["A005"]
  
  [tool.ruff.lint.pylint]
  max-args = 12
  
  [tool.ruff.lint.per-file-ignores]
  "__init__.py" = ["F401", "E402"]
  "./tests/*.py" = ["PLR2004"]
  
  [tool.pyright]
  pythonVersion = "3.13"
  venvPath = "."
  venv = ".venv"
  include = ["./src"]
  exclude = ["**/node_modules", "**/__pycache__"]
  ignore = []
  stubPath = "./stubs"
  reportMissingImports = true
  reportMissingTypeStubs = false
  userFileIndexingLimit = -1
  useLibraryCodeForTypes = true
  
  [tool.pyright.analysis]
  diagnosticMode = "workspace"
  typeCheckingMode = "strict"
  
  [tool.uv-build]
  packages = [{ include = "haiway", from = "src" }]
  
  [tool.uv-build.sdist]
  exclude = [
    "site",
    "docs",
    "tests",
    ".github",
    "stubs",
    "config",
    "llms.txt",
    ".vscode",
    ".claude",
    ".codex",
    ".zed",
    ".venv",
    "**/.DS_Store",
    "**/__pycache__",
    ".ruff_cache",
    ".pytest_cache",
    ".mypy_cache",
  ]
  
  [tool.uv-build.wheel]
  exclude = ["**/.DS_Store", "**/__pycache__", "**/*.pyc"]
  