honcho/pyproject.toml

101 lines
2.9 KiB
TOML

[project]
name = "honcho"
version = "2.0.1"
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",
]
[tool.uv]
dev-dependencies = [
"honcho-core>=1.1.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",
]
[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"]
[tool.ruff.lint.flake8-bugbear]
extend-immutable-calls = ["fastapi.Depends"]
[tool.pytest.ini_options]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "session"
[tool.basedpyright]
# BasedPyright currently seems like the best type checker option, much faster
# than mypy and with a good extension for VSCode/Cursor.
# https://marketplace.visualstudio.com/items?itemName=detachhead.basedpyright
# https://docs.basedpyright.com/latest/configuration/config-files/#sample-pyprojecttoml-file
include = ["src", "tests", "sdks/python/src"]
exclude = ["tests/**/disabled*.py"]
# By default BasedPyright is very strict, so you almost certainly want to disable
# some of the rules.
# First, these turn off warnings about (yes) how you ignore warnings:
reportIgnoreCommentWithoutRule = false
# reportUnnecessaryTypeIgnoreComment = false
# A few typically noisy warnings are next.
# How many you enable is up to you. The first few are off by default, but you can
# comment/uncomment these as desired:
reportMissingTypeStubs = false
reportUnusedCallResult = false
reportCallInDefaultInitializer = false
reportAny = false
reportExplicitAny = false
allowedUntypedLibraries = ["langfuse", "langfuse.decorators", "mirascope"]
reportImplicitOverride = false
# reportImplicitStringConcatenation = false
# reportUnreachable = false
# reportPrivateImportUsage = false
# reportPrivateLocalImportUsage = false
# reportMissingImports = false
# reportUnnecessaryIsInstance = false
# reportUnknownVariableType = false
# reportUnknownArgumentType = false
# reportUnknownParameterType = false
# reportUnknownMemberType = false
reportImportCycles = false