[project] name = "honcho" version = "2.1.0" description = "Honcho Server" authors = [ {name = "Plastic Labs", email = "hello@plasticlabs.ai"}, ] readme = "README.md" requires-python = ">=3.10" dependencies = [ "fastapi[standard]>=0.111.0", "python-dotenv>=1.0.0", "sqlalchemy>=2.0.30", "fastapi-pagination>=0.12.24", "pgvector>=0.2.5", "sentry-sdk[anthropic,fastapi,sqlalchemy]>=2.3.1", "greenlet>=3.0.3", "psycopg[binary]>=3.1.19", "httpx>=0.27.0", "rich>=13.7.1", "nanoid>=2.0.0", "alembic>=1.14.0", "pyjwt>=2.10.0", "tiktoken>=0.9.0", "mirascope[anthropic,google,groq,langfuse]>=1.25.1", "openai>=1.91.0", "pydantic>=2.11.7", "pydantic-settings>=2.10.1", "google-generativeai>=0.8.5", "pdfplumber>=0.11.7", ] [tool.uv] dev-dependencies = [ "honcho-core>=1.2.0", "pytest>=8.2.2", "sqlalchemy-utils>=0.41.2", "pytest-asyncio>=0.23.7", "coverage>=7.6.0", "interrogate>=1.7.0", "py-spy>=0.3.14", "ruff>=0.11.2", "basedpyright>=1.29.4", "pre-commit>=4.2.0", "pytest-cov>=6.2.1", ] [tool.ruff.lint] # from https://docs.astral.sh/ruff/linter/#rule-selection example select = [ # pycodestyle "E", # Pyflakes "F", # pyupgrade "UP", # flake8-bugbear "B", # flake8-simplify "SIM", # isort "I", ] ignore = ["E501", "B008", "COM812"] [tool.ruff.lint.flake8-bugbear] extend-immutable-calls = ["fastapi.Depends"] [tool.pytest.ini_options] asyncio_mode = "auto" asyncio_default_fixture_loop_scope = "session" addopts = "--strict-markers --cov=src/ --cov-report=term-missing" testpaths = ["tests"] pythonpath = ["src"] [tool.basedpyright] # BasedPyright currently seems like the best type checker option, much faster # https://docs.basedpyright.com/latest/configuration/config-files/#sample-pyprojecttoml-file include = ["src", "tests", "sdks/python/src"] exclude = ["tests/**/disabled*.py"] reportIgnoreCommentWithoutRule = false reportMissingTypeStubs = false reportUnusedCallResult = false reportCallInDefaultInitializer = false reportAny = false reportExplicitAny = false allowedUntypedLibraries = ["langfuse", "langfuse.decorators", "mirascope"] reportImplicitOverride = false reportImportCycles = false