|
|
[project] |
|
|
name = "deepcritical" |
|
|
version = "0.1.0" |
|
|
description = "AI-Native Drug Repurposing Research Agent" |
|
|
readme = "README.md" |
|
|
requires-python = ">=3.11" |
|
|
dependencies = [ |
|
|
|
|
|
"pydantic>=2.7", |
|
|
"pydantic-settings>=2.2", |
|
|
"pydantic-ai>=0.0.16", |
|
|
|
|
|
"openai>=1.0.0", |
|
|
"anthropic>=0.18.0", |
|
|
|
|
|
"httpx>=0.27", |
|
|
"beautifulsoup4>=4.12", |
|
|
"xmltodict>=0.13", |
|
|
|
|
|
"gradio[mcp]>=5.0.0", |
|
|
|
|
|
"python-dotenv>=1.0", |
|
|
"tenacity>=8.2", |
|
|
"structlog>=24.1", |
|
|
"requests>=2.32.5", |
|
|
] |
|
|
|
|
|
[project.optional-dependencies] |
|
|
dev = [ |
|
|
|
|
|
"pytest>=8.0", |
|
|
"pytest-asyncio>=0.23", |
|
|
"pytest-sugar>=1.0", |
|
|
"pytest-cov>=5.0", |
|
|
"pytest-mock>=3.12", |
|
|
"respx>=0.21", |
|
|
|
|
|
|
|
|
"ruff>=0.4.0", |
|
|
"mypy>=1.10", |
|
|
"pre-commit>=3.7", |
|
|
] |
|
|
magentic = [ |
|
|
"agent-framework-core", |
|
|
] |
|
|
embeddings = [ |
|
|
"chromadb>=0.4.0", |
|
|
"sentence-transformers>=2.2.0", |
|
|
] |
|
|
modal = [ |
|
|
|
|
|
"modal>=0.63.0", |
|
|
"llama-index>=0.11.0", |
|
|
"llama-index-llms-openai", |
|
|
"llama-index-embeddings-openai", |
|
|
"llama-index-vector-stores-chroma", |
|
|
"chromadb>=0.4.0", |
|
|
] |
|
|
|
|
|
[build-system] |
|
|
requires = ["hatchling"] |
|
|
build-backend = "hatchling.build" |
|
|
|
|
|
[tool.hatch.build.targets.wheel] |
|
|
packages = ["src"] |
|
|
|
|
|
|
|
|
[tool.ruff] |
|
|
line-length = 100 |
|
|
target-version = "py311" |
|
|
src = ["src", "tests"] |
|
|
|
|
|
[tool.ruff.lint] |
|
|
select = [ |
|
|
"E", |
|
|
"F", |
|
|
"B", |
|
|
"I", |
|
|
"N", |
|
|
"UP", |
|
|
"PL", |
|
|
"RUF", |
|
|
] |
|
|
ignore = [ |
|
|
"PLR0913", |
|
|
"PLR0912", |
|
|
"PLR0911", |
|
|
"PLR2004", |
|
|
"PLW0603", |
|
|
"PLC0415", |
|
|
"E402", |
|
|
"RUF100", |
|
|
] |
|
|
|
|
|
[tool.ruff.lint.isort] |
|
|
known-first-party = ["src"] |
|
|
|
|
|
|
|
|
[tool.mypy] |
|
|
python_version = "3.11" |
|
|
strict = true |
|
|
ignore_missing_imports = true |
|
|
disallow_untyped_defs = true |
|
|
warn_return_any = true |
|
|
warn_unused_ignores = false |
|
|
|
|
|
|
|
|
[tool.pytest.ini_options] |
|
|
testpaths = ["tests"] |
|
|
asyncio_mode = "auto" |
|
|
addopts = [ |
|
|
"-v", |
|
|
"--tb=short", |
|
|
"--strict-markers", |
|
|
] |
|
|
markers = [ |
|
|
"unit: Unit tests (mocked)", |
|
|
"integration: Integration tests (real APIs)", |
|
|
"slow: Slow tests", |
|
|
] |
|
|
|
|
|
|
|
|
[tool.coverage.run] |
|
|
source = ["src"] |
|
|
omit = ["*/__init__.py"] |
|
|
|
|
|
[tool.coverage.report] |
|
|
exclude_lines = [ |
|
|
"pragma: no cover", |
|
|
"if TYPE_CHECKING:", |
|
|
"raise NotImplementedError", |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|