mirror of
https://github.com/pydantic/pydantic-ai-harness.git
synced 2026-07-21 02:45:34 +00:00
Set up pydantic-harness as a publishable Python package using hatchling, with CI (lint, test across Python 3.10-3.13) and automated PyPI releases on tag pushes via OIDC trusted publishing — mirroring pydantic-handlebars.
90 lines
1.9 KiB
TOML
90 lines
1.9 KiB
TOML
[build-system]
|
|
requires = ['hatchling']
|
|
build-backend = 'hatchling.build'
|
|
|
|
[project]
|
|
name = 'pydantic-harness'
|
|
version = '0.0.1'
|
|
description = 'Agent harness for composable, reusable AI agent capabilities, built on PydanticAI'
|
|
readme = 'README.md'
|
|
requires-python = '>=3.10'
|
|
license = 'MIT'
|
|
authors = [
|
|
{ name = 'Pydantic Services Inc.' },
|
|
]
|
|
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',
|
|
'Topic :: Software Development :: Libraries',
|
|
'Typing :: Typed',
|
|
]
|
|
dependencies = ['pydantic-ai-slim>=0.1']
|
|
|
|
[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 = [
|
|
'pytest',
|
|
'pytest-xdist',
|
|
'coverage',
|
|
]
|
|
lint = [
|
|
'ruff>=0.14',
|
|
'pyright>=1.1.408',
|
|
]
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ['src/pydantic_harness']
|
|
|
|
[tool.ruff]
|
|
line-length = 120
|
|
target-version = 'py310'
|
|
|
|
[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'
|
|
|
|
[tool.pytest.ini_options]
|
|
xfail_strict = true
|
|
filterwarnings = ['error']
|
|
|
|
[tool.coverage.run]
|
|
branch = true
|
|
source = ['pydantic_harness', 'tests']
|
|
|
|
[tool.coverage.report]
|
|
fail_under = 100
|
|
show_missing = true
|
|
exclude_lines = [
|
|
'pragma: no cover',
|
|
'assert_never',
|
|
'if TYPE_CHECKING:',
|
|
]
|