Files
pydantic-ai-harness/pyproject.toml
T
2026-04-13 18:33:40 +05:30

136 lines
3.1 KiB
TOML

[build-system]
requires = ['hatchling', 'uv-dynamic-versioning>=0.7.0']
build-backend = 'hatchling.build'
[project]
name = 'pydantic-harness'
dynamic = ['version']
description = 'The batteries for your Pydantic AI agent'
readme = 'README.md'
requires-python = '>=3.10'
license = 'MIT'
authors = [
{ name = 'Douwe Maan', email = 'douwe@pydantic.dev' },
{ name = 'David SF', email = 'david.sanchez@pydantic.dev' },
{ name = 'Aditya Vardhan', email = 'aditya@pydantic.dev' },
]
classifiers = [
'Development Status :: 3 - Alpha',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Programming Language :: Python :: 3.14',
'Topic :: Software Development :: Libraries',
'Typing :: Typed',
]
dependencies = [
'pydantic-ai-slim>=1.80.0',
]
[project.optional-dependencies]
code-mode = [
'pydantic-monty>=0.0.10',
]
temporal = [
'pydantic-ai-slim[temporal]',
]
dbos = [
'pydantic-ai-slim[dbos]',
]
[project.urls]
Homepage = 'https://github.com/pydantic/pydantic-harness'
Source = 'https://github.com/pydantic/pydantic-harness'
Issues = 'https://github.com/pydantic/pydantic-harness/issues'
[dependency-groups]
dev = [
'pydantic-harness[code-mode]',
'pytest',
'anyio[trio]',
'pytest-anyio',
'coverage',
'logfire[httpx]>=4.31.0',
]
lint = [
'ruff>=0.14',
'pyright>=1.1.408',
]
[tool.uv.sources]
pydantic-ai-slim = { git = 'https://github.com/pydantic/pydantic-ai.git', branch = 'main', subdirectory = 'pydantic_ai_slim' }
[tool.hatch.version]
source = 'uv-dynamic-versioning'
[tool.uv-dynamic-versioning]
vcs = 'git'
style = 'pep440'
bump = true
[tool.hatch.build.targets.wheel]
packages = ['pydantic_harness']
[tool.ruff]
line-length = 120
target-version = 'py310'
exclude = ['template']
[tool.ruff.lint]
extend-select = ['Q', 'RUF100', 'C90', 'UP', 'I', 'D', 'TID251']
[tool.ruff.lint.per-file-ignores]
'tests/**/*.py' = ['D']
[tool.ruff.lint.flake8-quotes]
inline-quotes = 'single'
[tool.ruff.lint.mccabe]
max-complexity = 15
[tool.ruff.lint.pydocstyle]
convention = 'google'
[tool.ruff.format]
quote-style = 'single'
[tool.pyright]
pythonVersion = '3.10'
typeCheckingMode = 'strict'
exclude = ['template', '.venv']
executionEnvironments = [
{ root = 'tests', reportPrivateUsage = false },
]
[tool.pytest.ini_options]
testpaths = ['tests']
xfail_strict = true
filterwarnings = [
'error',
# DBOS's run_sync triggers this on Python 3.12+ — not our code.
'ignore:There is no current event loop:DeprecationWarning',
]
anyio_mode = 'auto'
[tool.coverage.run]
branch = true
source = ['pydantic_harness', 'tests']
[tool.coverage.paths]
source = ['.', '/home/runner/work/pydantic-harness/pydantic-harness']
[tool.coverage.report]
fail_under = 100
show_missing = true
exclude_lines = [
'pragma: no cover',
'pragma: lax no cover',
'assert_never',
'if TYPE_CHECKING:',
]