Skip to content

Release/0.7.0 python 3.11 and an official pydantic - #20

Merged
vericto merged 3 commits into
mainfrom
release/0.7.0-Python-3.11-and-an-official-Pydantic
Nov 1, 2026
Merged

vericto merged 3 commits into
mainfrom
release/0.7.0-Python-3.11-and-an-official-Pydantic

Conversation

@vericto

@vericto vericto commented Nov 1, 2026 •

Copy link
Copy Markdown
Owner

What does this PR change?

Why?

Type of change

  • Driver wrapper (Snowflake, sqlite3, SQLAlchemy, DB-API)
  • Runtime API or CI-check client (retries, fail mode, caching)
  • Integration (LangChain, LlamaIndex, dbt, Airflow)
  • Sanitized mode
  • Bug fix
  • Documentation or examples
  • Dependencies or CI

Tests

  • Added or updated tests that cover the change, including the failure path
  • uv run ruff check . and uv run ruff format --check . pass
  • uv run mypy passes
  • uv run coverage run -m pytest and uv run coverage report --omit=... (as in CI) pass, at or above 80%
  • The Integration (...) job's commands pass locally (if an integration changed)
  • uv build succeeds

Checklist

  • Commits follow Conventional Commits
  • CHANGELOG.md updated under [Unreleased] (if a user of the package can see the change)
  • New or changed options, environment variables or errors documented in README.md
  • Parameter values are still never sent to Vericto
  • CI is green

…tober 2026)

requires-python is now ">=3.11"; the 3.10 classifier and the Test (Python 3.10)
CI job are gone (matrix: 3.11, 3.12, 3.14). Ruff (py311) and mypy target 3.11;
UP042 is ignored so Decision keeps its (str, Enum) behavior. No code path or
fallback existed only for 3.10.

uv.lock loses its python_full_version < '3.11' resolution branch, and with it
Pillow 12.3.0, filelock 3.32.7 and dnspython 2.8.0, the versions behind the
open Dependabot alerts on uv.lock. The lock now has Pillow 13.0.0 and
dnspython 2.9.0 only, and no filelock.

README, the Spanish section and CONTRIBUTING say 3.11+; CHANGELOG upgrade
notes: users on Python 3.10 stay on 0.6.x.
VerictoToolset is a Pydantic AI WrapperToolset: it wraps any toolset
(FunctionToolset, MCPToolset, combined, prefixed) and overrides
call_tool(name, tool_args, ctx, tool), so Vericto checks the SQL argument of
every call to a SQL tool before the wrapped toolset runs it. BLOCKED raises
ModelRetry with the refusal (rule code, suggested_fix) and never runs the SQL
(on_block="return" makes it the tool result, "raise" stops the run with
VerictoBlocked); an approved query (mask, LIMIT bound) runs instead of the
original; FLAGGED/MONITORED run and are logged and passed to on_verdict.
Vericto's own errors stop the run. A tool in scope without the SQL parameter
in its schema stops the run with VerictoConfigError before any tool runs.

The check goes through Vericto.enforce() in a worker thread, as in
vericto.openai_agents; the settings both share move to _agent.ToolCheck.

Extra vericto[pydantic-ai] (pydantic-ai-slim>=2.0,<3, tested with 2.64.0 and
2.0.0); CI job Integration (pydantic-ai) with coverage and mypy against the
real package, pins in ci/requirements-pydantic-ai.txt; tests against the real
Agent with a scripted FunctionModel and an MCPToolset over stdio; the base
import test also checks pydantic_ai. Guide rewritten, README table, install
list and Spanish section, example, CHANGELOG, uv.lock.
_version.py 0.7.0; CHANGELOG [0.7.0] - 2026-11-01 with the upgrade notes
(Python 3.10 users stay on 0.6.x), vericto.pydantic_ai and the uv.lock
security clean-up. uv.lock needs no change: the package version is dynamic.
@vericto
vericto requested a review from donkan168 as a code owner November 1, 2026 15:18
@CLAassistant

CLAassistant commented Nov 1, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@vericto
vericto force-pushed the release/0.7.0-Python-3.11-and-an-official-Pydantic branch from cfa9263 to 85ed7a0 Compare November 1, 2026 15:40
@vericto
vericto merged commit e30d694 into main Nov 1, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants