| [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.24.0", |
| |
| "gradio[mcp]>=6.0.0", |
| |
| "mcp>=1.23.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", |
| ] |
|
|
| |
| |
|
|