|
|
[project] |
|
|
name = "deepboner" |
|
|
version = "0.1.0" |
|
|
description = "AI-Native Sexual Health Research Agent" |
|
|
readme = "README.md" |
|
|
license = "Apache-2.0" |
|
|
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", |
|
|
"huggingface-hub>=0.20.0", |
|
|
|
|
|
"gradio[mcp]>=6.0.0", |
|
|
|
|
|
"python-dotenv>=1.0", |
|
|
"tenacity>=8.2", |
|
|
"structlog>=24.1", |
|
|
"requests>=2.32.5", |
|
|
"limits>=3.0", |
|
|
"duckduckgo-search>=5.0", |
|
|
|
|
|
"langgraph>=0.2.50,<1.0", |
|
|
"langchain>=0.3.9,<1.0", |
|
|
"langchain-core>=0.3.21,<1.0", |
|
|
"langchain-huggingface>=0.1.2,<1.0", |
|
|
"langgraph-checkpoint-sqlite>=3.0.0,<4.0", |
|
|
|
|
|
"urllib3>=2.5.0", |
|
|
] |
|
|
|
|
|
[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", |
|
|
"typer>=0.9.0", |
|
|
|
|
|
|
|
|
"ruff>=0.4.0", |
|
|
"mypy>=1.10", |
|
|
"pre-commit>=3.7", |
|
|
|
|
|
|
|
|
"bandit>=1.7.0", |
|
|
"pip-audit>=2.7.0", |
|
|
] |
|
|
magentic = [ |
|
|
"agent-framework-core>=1.0.0b251120,<2.0.0", |
|
|
] |
|
|
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 |
|
|
exclude = [ |
|
|
"^reference_repos/", |
|
|
"^examples/", |
|
|
] |
|
|
|
|
|
|
|
|
[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", |
|
|
"e2e: End-to-End tests (full pipeline)", |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
filterwarnings = [ |
|
|
|
|
|
"ignore:The `__fields__` attribute is deprecated:pydantic.warnings.PydanticDeprecatedSince20", |
|
|
"ignore:The `__fields_set__` attribute is deprecated:pydantic.warnings.PydanticDeprecatedSince20", |
|
|
|
|
|
"ignore:Accessing the 'model_computed_fields' attribute on the instance is deprecated:pydantic.warnings.PydanticDeprecatedSince211", |
|
|
"ignore:Accessing the 'model_fields' attribute on the instance is deprecated:pydantic.warnings.PydanticDeprecatedSince211", |
|
|
] |
|
|
|
|
|
|
|
|
[tool.coverage.run] |
|
|
source = ["src"] |
|
|
omit = ["*/__init__.py"] |
|
|
|
|
|
[tool.coverage.report] |
|
|
exclude_lines = [ |
|
|
"pragma: no cover", |
|
|
"if TYPE_CHECKING:", |
|
|
"raise NotImplementedError", |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|