Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 3 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,6 @@ jobs:

- run: uv sync --only-dev
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we also move the ${{ matrix.install.command }} here and make the test command uv run --no-sync ...?


- run: uv run mcp-run-python example --deps=numpy
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@DouweM is this still needed now that we have the mcp-run-python in another repo? I've already checked that this test is also ran on that repo.

Copy link
Collaborator

@DouweM DouweM Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Kludex I'm fine removing it.

Note that we also test that it mcp-run-python be started here:

from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerStdio
server = MCPServerStdio( # (1)!
'uv', args=['run', 'mcp-run-python', 'stdio'], timeout=10
)
agent = Agent('openai:gpt-5', toolsets=[server])
async def main():
result = await agent.run('How many days between 2000-01-01 and 2025-03-18?')
print(result.output)
#> There are 9,208 days between January 1, 2000, and March 18, 2025.

That makes the test suite require deno. I actually think we should drop that entirely and really treat it as a separate package.


- name: cache HuggingFace models
uses: actions/cache@v4
with:
Expand Down Expand Up @@ -205,6 +203,7 @@ jobs:
CI: true
COVERAGE_PROCESS_START: ./pyproject.toml
RUN_LLAMA_CPP_TESTS: false
UV_FROZEN: "0"
steps:
- uses: actions/checkout@v4

Expand All @@ -220,9 +219,7 @@ jobs:

- run: mkdir .coverage

- run: uv sync --group dev

- run: uv run mcp-run-python example --deps=numpy
- run: uv sync --group dev --resolution lowest-direct --all-extras

- name: cache HuggingFace models
uses: actions/cache@v4
Expand All @@ -232,9 +229,7 @@ jobs:
restore-keys: |
hf-${{ runner.os }}-

- run: unset UV_FROZEN

- run: uv run --all-extras --resolution lowest-direct coverage run -m pytest --durations=100 -n auto --dist=loadgroup
- run: uv run --no-sync coverage run -m pytest --durations=100 -n auto --dist=loadgroup
env:
COVERAGE_FILE: .coverage/.coverage.${{matrix.python-version}}-lowest-versions

Expand Down
4 changes: 2 additions & 2 deletions pydantic_ai_slim/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ huggingface = ["huggingface-hub[inference]>=0.33.5,<1.0.0"]
outlines-transformers = ["outlines[transformers]>=1.0.0, <1.3.0; (sys_platform != 'darwin' or platform_machine != 'x86_64')", "transformers>=4.0.0", "pillow", "torch; (sys_platform != 'darwin' or platform_machine != 'x86_64')"]
outlines-llamacpp = ["outlines[llamacpp]>=1.0.0, <1.3.0"]
outlines-mlxlm = ["outlines[mlxlm]>=1.0.0, <1.3.0; platform_system == 'Darwin' and platform_machine == 'arm64'"]
outlines-sglang = ["outlines[sglang]>=1.0.0, <1.3.0", "pillow"]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Inconsistent version specifier excludes Pillow 11.0.0

The pillow>11.0.0 constraint uses an exclusive lower bound (>) while all other version constraints in the file consistently use inclusive bounds (>=). In the same PR, vllm>=0.8.0 uses >=. Since Pillow has no version between 11.0.0 and 11.1.0, this effectively sets the minimum to 11.1.0, potentially excluding a valid version. If the intent was to require Pillow 11.0.0 or later, this appears to be a typo and >=11.0.0 would be the correct specifier.

Fix in Cursor Fix in Web

outlines-vllm-offline = ["vllm; python_version < '3.12' and (sys_platform != 'darwin' or platform_machine != 'x86_64')", "torch; (sys_platform != 'darwin' or platform_machine != 'x86_64')", "outlines>=1.0.0, <1.3.0"]
outlines-sglang = ["outlines[sglang]>=1.0.0, <1.3.0", "pillow>11.0.0"]
outlines-vllm-offline = ["vllm>=0.8.0; python_version < '3.12' and (sys_platform != 'darwin' or platform_machine != 'x86_64')", "torch; (sys_platform != 'darwin' or platform_machine != 'x86_64')", "outlines>=1.0.0, <1.3.0"]
# Tools
duckduckgo = ["ddgs>=9.0.0"]
tavily = ["tavily-python>=0.5.0"]
Expand Down
Loading
Loading