[tool.poetry] name = "datacenter-docs" version = "1.0.0" description = "Automated datacenter documentation system with LLM and MCP integration" authors = ["Automation Team "] license = "MIT" readme = "README.md" packages = [{include = "datacenter_docs", from = "src"}] [tool.poetry.dependencies] python = "^3.12" # Web Framework fastapi = "^0.115.0" uvicorn = {extras = ["standard"], version = "^0.32.0"} pydantic = "^2.10.0" pydantic-settings = "^2.6.0" # Database motor = "^3.6.0" # Async MongoDB driver pymongo = "^4.10.0" redis = "^5.2.0" beanie = "^1.27.0" # ODM for MongoDB # MCP (Model Context Protocol) # mcp = "^0.1.0" # Package name might be different openai = "^1.58.0" # OpenAI-compatible API for multiple LLM providers # Network and Device Management paramiko = "^3.5.0" netmiko = "^4.5.0" pysnmp = "^6.2.0" napalm = "^5.0.0" # Virtualization pyvmomi = "^8.0.3.0" proxmoxer = "^2.1.0" kubernetes = "^31.0.0" # Storage # purestorage = "^1.47.0" # Temporarily disabled # Database Clients mysql-connector-python = "^9.1.0" psycopg2-binary = "^2.9.10" # Monitoring prometheus-client = "^0.21.0" pyzabbix = "^1.3.0" # Cloud Providers boto3 = "^1.35.0" azure-mgmt-compute = "^33.0.0" google-cloud-compute = "^1.20.0" # Utilities jinja2 = "^3.1.4" pyyaml = "^6.0.2" python-dotenv = "^1.0.1" httpx = "^0.28.0" tenacity = "^9.0.0" python-multipart = "^0.0.20" # CLI typer = "^0.15.0" rich = "^13.9.0" # Websockets for chat websockets = "^14.0" python-socketio = "^5.12.0" # Background tasks celery = {extras = ["redis"], version = "^5.4.0"} flower = "^2.0.1" # LLM Integration langchain = "^0.3.0" langchain-community = "^0.3.0" # chromadb = "^0.5.0" # Requires Visual C++ Build Tools on Windows [tool.poetry.group.dev.dependencies] pytest = "^8.3.0" pytest-asyncio = "^0.24.0" pytest-cov = "^6.0.0" black = "^24.10.0" ruff = "^0.8.0" mypy = "^1.13.0" pre-commit = "^4.0.0" ipython = "^8.30.0" [tool.poetry.scripts] datacenter-docs = "datacenter_docs.cli:app" docs-api = "datacenter_docs.api.main:start" docs-chat = "datacenter_docs.chat.main:start" docs-worker = "datacenter_docs.workers.celery_app:start" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.black] line-length = 100 target-version = ['py312'] include = '\.pyi?$' [tool.ruff] line-length = 100 [tool.ruff.lint] select = ["E", "F", "I", "N", "W"] ignore = ["E501"] [tool.ruff.lint.per-file-ignores] "src/datacenter_docs/api/auto_remediation.py" = ["F821"] "src/datacenter_docs/api/main_enhanced.py" = ["F821"] [tool.mypy] python_version = "3.12" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true [[tool.mypy.overrides]] module = [ "datacenter_docs.api.auto_remediation", "datacenter_docs.api.main_enhanced" ] ignore_errors = true [tool.pytest.ini_options] testpaths = ["tests"] python_files = "test_*.py" python_classes = "Test*" python_functions = "test_*" addopts = "-v --cov=src/datacenter_docs --cov-report=html --cov-report=term" [tool.coverage.run] source = ["src"] omit = ["*/tests/*", "*/test_*.py"]