content: [build-system]
  requires = ["uv_build>=0.8.0,<0.9.0"]
  build-backend = "uv_build"
  
  [project]
  name = "draive"
  description = "Framework designed to simplify and accelerate the development of LLM-based applications."
  version = "0.88.0"
  readme = "README.md"
  maintainers = [
    { name = "Kacper Kaliński", email = "kacper.kalinski@miquido.com" },
  ]
  requires-python = ">=3.12"
  classifiers = [
    "License :: OSI Approved :: MIT License",
    "Intended Audience :: Developers",
    "Programming Language :: Python",
    "Typing :: Typed",
    "Topic :: Software Development",
    "Topic :: Scientific/Engineering :: Artificial Intelligence",
    "Topic :: Software Development :: Libraries :: Application Frameworks",
  ]
  license = { file = "LICENSE" }
  dependencies = ["numpy~=2.3", "haiway~=0.34.7"]
  
  [project.urls]
  Homepage = "https://miquido.com"
  Repository = "https://github.com/miquido/draive.git"
  
  [project.optional-dependencies]
  cohere = ["cohere~=5.18"]
  cohere_bedrock = ["cohere~=5.18", "boto3~=1.40"]
  openai = ["openai~=2.1"]
  openai_realtime = ["openai[realtime]~=2.1"]
  anthropic = ["anthropic~=0.69"]
  anthropic_bedrock = ["anthropic[bedrock]~=0.69"]
  mistral = ["mistralai~=1.9"]
  gemini = ["google-genai~=1.41", "google-api-core"]
  ollama = ["ollama~=0.6.0"]
  bedrock = ["boto3~=1.40"]
  vllm = ["openai~=2.1"]
  mcp = ["mcp~=1.16"]
  opentelemetry = [
    "haiway[opentelemetry]",
    "opentelemetry-api",
    "opentelemetry-sdk",
    "opentelemetry-exporter-otlp-proto-grpc",
  ]
  httpx = ["haiway[httpx]", "httpx"]
  postgres = ["haiway[postgres]", "asyncpg"]
  dev = [
    "bandit~=1.8",
    "pyright~=1.1",
    "pytest~=8.4",
    "pytest-asyncio~=1.2",
    "pytest-cov~=7.0",
    "ruff~=0.13",
  ]
  docs = [
    "mkdocs~=1.6",
    "mkdocs-material~=9.6",
    "mkdocstrings[python]~=0.30",
    "mdformat~=0.7",
    "mdformat-gfm~=0.4",
    "pymarkdownlnt~=0.9",
  ]
  
  [tool.ruff]
  target-version = "py312"
  line-length = 100
  extend-exclude = [".venv", ".git", ".cache"]
  lint.select = ["E", "F", "A", "I", "B", "PL", "W", "C", "RUF", "UP", "NPY201"]
  lint.ignore = ["A005", "PLC0415"]
  lint.pydocstyle.convention = "numpy"
  
  [tool.ruff.lint.per-file-ignores]
  "__init__.py" = ["F401", "E402"]
  "./tests/*.py" = ["PLR2004"]
  
  [tool.ruff.lint.pylint]
  max-args = 12
  
  [tool.pyright]
  pythonVersion = "3.12"
  venvPath = "."
  venv = ".venv"
  include = ["./src"]
  exclude = ["**/node_modules", "**/__pycache__"]
  stubPath = "./stubs"
  reportMissingImports = true
  reportMissingTypeStubs = false
  userFileIndexingLimit = -1
  useLibraryCodeForTypes = true
  
  [tool.pyright.analysis]
  diagnosticMode = "workspace"
  typeCheckingMode = "strict"
  
  [tool.uv-build]
  packages = [{ include = "draive", 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"]
  