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

[project]
name = "ai-code-autodoc"
dynamic = ["version"]
description = "AI-powered code intelligence tool for analyzing and documenting codebases"
readme = "README.md"
requires-python = ">=3.10"
license = {text = "MIT"}
authors = [
    {name = "Autodoc Contributors"},
]
keywords = ["code-analysis", "documentation", "ai", "embeddings", "semantic-search"]
classifiers = [
    "Development Status :: 4 - Beta",
    "Intended Audience :: Developers",
    "License :: OSI Approved :: MIT License",
    "Programming Language :: Python :: 3",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Topic :: Software Development :: Documentation",
    "Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
    "aiohttp>=3.9.1",
    "aiohttp-cors>=0.7.0",
    "asyncpg>=0.29.0",
    "numpy<2.0",
    "astroid>=3.0.2",
    "click>=8.1.7",
    "rich>=13.7.0",
    "pyyaml>=6.0.1",
    "python-dotenv>=1.0.0",
    "openai>=1.6.1",
    "tiktoken>=0.5.2",
    "PyGithub>=2.1.1",
    "tree-sitter-languages>=1.10.0",
    "chromadb>=0.4.0",
    "sentence-transformers>=2.2.0",
    "watchdog>=3.0.0",
    "tenacity>=8.2.0",
    "pydantic>=2.0.0",
    "fastmcp>=2.14.1",
]

[project.optional-dependencies]
dev = [
    "pytest>=7.4.3",
    "pytest-asyncio>=0.21.1",
    "black>=23.12.1",
    "ruff>=0.1.8",
]
graph = [
    "neo4j>=5.15.0",
    "matplotlib>=3.8.0",
    "networkx>=3.2.1",
    "plotly>=5.17.0",
    "pyvis>=0.3.2",
]
# Minimal dependencies for MCP server only (no ML/embeddings)
mcp = [
    "fastmcp>=2.14.1",
    "pydantic>=2.0.0",
    "pyyaml>=6.0.1",
    "click>=8.1.7",
    "rich>=13.7.0",
]

[project.scripts]
autodoc = "autodoc.cli:main"

[tool.hatch.version]
path = "src/autodoc/__about__.py"

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

[tool.uv]
dev-dependencies = [
    "pytest>=7.4.3",
    "pytest-asyncio>=0.21.1",
    "black>=23.12.1",
    "ruff>=0.1.8",
    "ipython>=8.18.0",
    "twine>=6.1.0",
    "keyrings-google-artifactregistry-auth>=1.1.2",
    
]

[tool.uv.sources]
# Use uv for all dependency resolution

[tool.black]
line-length = 100

[tool.ruff]
line-length = 100

[tool.ruff.lint]
select = ["E", "F", "I"]
ignore = ["E501"]

[tool.ruff.lint.per-file-ignores]
# Allow imports after logging setup
"src/autodoc/enrichment.py" = ["E402"]
"src/autodoc/graph.py" = ["E402"]
"src/autodoc/rust_analyzer.py" = ["E402"]
