Skip to content

build(deps): bump the python group with 7 updates - #15

Open
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/uv/dev/python-04e7058087
Open

dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/uv/dev/python-04e7058087

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 9, 2026

Copy link
Copy Markdown

Bumps the python group with 7 updates:

Package From To
curl-cffi 0.16.3 0.17.0
fastmcp 4.1.4 4.1.5
pydantic 2.14.1 2.14.2
selectolax 1.0.0 1.0.2
playwright 1.64.0 1.64.1
pytest 9.1.1 9.2.0
ruff 0.17.1 0.17.3

Updates curl-cffi from 0.16.3 to 0.17.0

Release notes

Sourced from curl-cffi's releases.

v0.17.0

⚠️ Security Notice

  • The bundled brotoli version was updated to 1.2.1, to mitigate the http2shell issue.
  • certifi version was updated to latest to remove the compromised eMudhra cert.

Highlights

  • Added 9 new fingerprints.
  • Refactored websockets for performance.
  • Added python 3.15 support with the abi3t tag.
  • Added more platform build configs.

What's Changed

... (truncated)

Commits
  • ae03f37 Bump version to 0.17.0
  • d63e56a Bump bundled curl-impersonate version to 2.3.1
  • b1e4579 Add FreeBSD riscv64 configuration to libs.json (#894)
  • 9905de5 Explicit -z option when extracting gzip-compressed tarballs (#893)
  • d491396 ci: limit pro testing to use v3only for http3
  • a88a5a8 Bump version to 0.17.0b2
  • 9bc5c5f ci: Run test pro everyday
  • 0b910d1 security: update certifi to distrust eMudhra
  • 27794c9 docs and fingerprints update for 0.17
  • 4e44b01 tests: prefer the linked raw profile for pro fingerprints testing
  • Additional commits viewable in compare view

Updates fastmcp from 4.1.4 to 4.1.5

Release notes

Sourced from fastmcp's releases.

v4.1.5: Back to the Fourture

Twelve fixes backported from main onto the new release/4.1 line: mounted resource templates keep their list-style query parameters, FastMCPStdioTransport forwards script arguments, OpenAPI tools report timeouts and concise upstream errors (and reject undeclared arguments under strict validation), a missing prompt argument returns invalid params, and JSON Schema const/enum compare by JSON equality, so true no longer passes for 1. Thanks to our 12 contributors, including 7 first-time contributors.

What's Changed

Security 🔒

Fixes 🐞

New Contributors

Full Changelog: PrefectHQ/fastmcp@v4.1.4...v4.1.5

Changelog

Sourced from fastmcp's changelog.


title: "Changelog" description: "Release notes for every FastMCP version, with the changes, fixes, and contributors in each release." icon: "list-check" rss: true tag: NEW

v4.2.0a3: A Particular Set of Skills

FastMCP 4.2.0a3 consolidates skills around Skill, SkillCatalogProvider, and the new strict SkillsDirectoryProvider in fastmcp.skills.provider. Directory loading validates each skill before publication, and skills with structured metadata or YAML allowed-tools lists are accepted without changing their values. This alpha also fixes stale proxy discovery caches, preserves OpenAPI schema references and explicit null values, and improves client connection recovery. Skills support remains experimental; this prerelease is intended for integration testing. If you import the 4.1 skills providers directly, they keep their behavior in 4.2 and now warn ahead of removal in 4.3. Move directory loading to from fastmcp.skills.provider import SkillsDirectoryProvider; its startup errors and the legacy providers' warnings identify folders that need fixing. For a single skill, use Skill.from_directory(...) with SkillCatalogProvider from fastmcp.skills.provider. Client.list_skill_resources() remains available for servers without the Skills extension. The old experimental_skills=True path redirects to the new provider for the base class and rejects subclasses to preserve access controls. Legacy Skill wire-model construction still works with a warning, wire entries retain isinstance(entry, Skill) behavior, and existing Pydantic Skill fields still validate wire payloads. Use MCPSkill for wire entries, annotations, and checks, and Skill for authoring. For manifest metadata on resource-only servers, read skill://<name>/_manifest with client.read_resource() and parse its JSON; client.get_skill() requires the Skills extension, while client.read_skill() downloads and validates the whole skill. Since a2, ClientGroup retains known tool routes after its context exits, OpenAPI tool inputs omit readOnly properties, and header and path parameters follow their declared simple serialization style. OAuth consent bindings survive concurrent approvals, exception middleware matches subclasses, and empty logging method filters mean “log nothing.” Thanks to our 46 contributors, including 29 first-time contributors.

Breaking Changes ⚠️

  • Make Skill a storage-neutral object with folders as one loader by @​zzstoatzz in #6065

Enhancements ✨

Security 🔒

  • Verify advertised skill frontmatter when reading content by @​zzstoatzz in #6090
  • Check skill limits before reading directory and remote files by @​zzstoatzz in #6092
  • fix: preserve _list_query_params in FastMCPProviderResourceTemplate.wrap by @​RS-ITACHI in #6130
  • Read composite action inputs from env and pin actions by digest by @​gaker in #6168
  • Scope the /marvin App token to the permissions it uses by @​zzstoatzz in #6206

Fixes 🐞

  • Make the version-check InvalidURL regression independent of proxy parsing by @​HootRock in #6048

... (truncated)

Commits
  • bcd05d6 docs: credit xubenqiang in the v4.1.5 changelog (#6220)
  • 968af33 docs: credit xubenqiang in the v4.1.5 changelog
  • 39494d4 docs: add v4.1.5 changelog entries (#6219)
  • a3a30d6 docs: add v4.1.5 changelog entries
  • 317a9ad Backport 12 fixes to release/4.1 for v4.1.5 (#6218)
  • e17fc52 Drop client context holds left by finished tasks (#6205)
  • 0fa4d8e fix(openapi): preserve timeouts so the server maps them to the actionable mes...
  • a69d56c fix(resources): reverse hostless URIs through Namespace unchanged (#5230)
  • bd16357 Reject undeclared OpenAPI tool arguments under strict input validation (#6140)
  • 055b3a6 Keep schema definitions when hydrating a wrapped tool result (#5927)
  • Additional commits viewable in compare view

Updates pydantic from 2.14.1 to 2.14.2

Release notes

Sourced from pydantic's releases.

v2.14.2 2026-10-29

v2.14.2 (2026-10-29)

This release addresses 2 security issues, GHSA-qpmf-fgh3-ff25 and GHSA-3r8g-cqwr-jr29.

Packaging

Performance

Fixes

  • Make JSON validation by iteration consistent with Python approach by @​davidhewitt in #13275.

    JSON validation now handles field lookup and extra data the same way as Python validation. In particular, keys that only match an unused alias or field name are now treated as extra data, instead of being silently dropped:

    from pydantic import BaseModel, ConfigDict
    from pydantic.alias_generators import to_camel
    class Page(BaseModel):
    model_config = ConfigDict(extra='forbid', alias_generator=to_camel)
    page_size: int = 10
    
    Page.model_validate_json('{"page_size": 50}')
    Before: Page(page_size=10)
    After: ValidationError (extra_forbidden)

    See the pull request for the full list of behavior changes. This change addresses GHSA-qpmf-fgh3-ff25.

  • Ignore extra data matching a field name in TypedDict and dataclasses with extra=allow by @​Viicos in #14090. Addresses GHSA-3r8g-cqwr-jr29.

  • Fix unpickling of generic classes defined in separate module by @​Viicos in #13994

  • Support explicit by_alias overriding validate_by_alias in validation JSON schemas by @​Viicos in #13997

  • Fix mypy plugin crash on deferred empty model by @​ilevkivskyi in #14027

  • Fix infinite recursion when validating an invalid default with PydanticUseDefault by @​Viicos in #14028

  • Implement recursion guard for validate_strings() by @​Viicos in #14029

... (truncated)

Changelog

Sourced from pydantic's changelog.

v2.14.2 (2026-10-29)

GitHub release

What's Changed

Packaging

Performance

Fixes

  • Make JSON validation by iteration consistent with Python approach by @​davidhewitt in #13275.

    JSON validation now handles field lookup and extra data the same way as Python validation. In particular, keys that only match an unused alias or field name are now treated as extra data, instead of being silently dropped:

    from pydantic import BaseModel, ConfigDict
    from pydantic.alias_generators import to_camel
    class Page(BaseModel):
    model_config = ConfigDict(extra='forbid', alias_generator=to_camel)
    page_size: int = 10
    
    Page.model_validate_json('{"page_size": 50}')
    Before: Page(page_size=10)
    After: ValidationError (extra_forbidden)

    See the pull request for the full list of behavior changes.

  • Fix unpickling of generic classes defined in separate module by @​Viicos in #13994

  • Support explicit by_alias overriding validate_by_alias in validation JSON schemas by @​Viicos in #13997

  • Fix mypy plugin crash on deferred empty model by @​ilevkivskyi in #14027

  • Fix infinite recursion when validating an invalid default with PydanticUseDefault by @​Viicos in #14028

  • Implement recursion guard for validate_strings() by @​Viicos in #14029

  • Support named tuples in Sequence serialization by @​Viicos in #14033

... (truncated)

Commits
  • aa540ac Update changelog for v2.14.2
  • 6cde12f Update changelog for v2.14.2
  • 2db7c25 Fix deep copy of self-referential models
  • d783154 Update changelog for v2.14.2
  • df49b6c Avoid heap allocation for small JSON model field buffers
  • cd93e69 Skip decorator field checks when no field decorators exist
  • 2771e57 Make JSON validation by iteration consistent with Python approach
  • 8102e3f Avoid Python tuple allocation during model fields validation
  • dd139b5 Bump pydantic.v1 namespace to v1.10.27
  • 66155f9 Prepare release v2.14.2
  • Additional commits viewable in compare view

Updates selectolax from 1.0.0 to 1.0.2

Release notes

Sourced from selectolax's releases.

v1.0.2

Bugfix release for 1.0.1.

  • Fix insert_child(), insert_before(), insert_after() and replace_with() move nodes.
  • Add the move parameter to insert_child(), insert_before(), insert_after() and replace_with(). Pass move=True to move the node instead of copying it: the node is removed from its current position and placed in the new one. A node taken from another parser is copied into the target document and removed from the document it came from. The default is move=False, which keeps the copying behaviour.

v1.0.1

  • Add the scripting option to LexborHTMLParser, which parses <noscript> the way a browser with scripting enabled does: its content becomes raw text, so a <noscript> in <head> no longer pushes the head elements after it into <body>. The default is unchanged.
  • Add template_fragments() for reaching the content of \<template> elements which are ignored by HTML5 compliant parsers.
  • Do not replace <-undef> it not longer possible to get it.
  • The internal <html> wrapper of an HTML fragment is no longer reported as the parent of the fragment's top-level nodes.
  • create_tag() no longer returns None for the tags whose start tag the HTML parser drops (html, head, body, caption, col, colgroup, frame, frameset, tbody, td, tfoot, th, thead, tr).
  • Fix inner_html covering only the first top-level node of an HTML fragment.
  • Improve the speed of comment extraction
  • Improve the speed of len(attrs) by counting the attribute list directly
  • Fix encoding initialization when encoding=True.
Changelog

Sourced from selectolax's changelog.

Version 1.0.2

Bugfix release for 1.0.1.

  • Fix insert_child(), insert_before(), insert_after() and replace_with() move nodes.
  • Add the move parameter to insert_child(), insert_before(), insert_after() and replace_with(). Pass move=True to move the node instead of copying it: the node is removed from its current position and placed in the new one. A node taken from another parser is copied into the target document and removed from the document it came from. The default is move=False, which keeps the copying behaviour.

Version 1.0.1

  • Add the scripting option to LexborHTMLParser, which parses <noscript> the way a browser with scripting enabled does: its content becomes raw text, so a <noscript> in <head> no longer pushes the head elements after it into <body>. The default is unchanged.
  • Add template_fragments() for reaching the content of \<template> elements which are ignored by HTML5 compliant parsers.
  • Do not replace <-undef> it not longer possible to get it.
  • The internal <html> wrapper of an HTML fragment is no longer reported as the parent of the fragment's top-level nodes.
  • create_tag() no longer returns None for the tags whose start tag the HTML parser drops (html, head, body, caption, col, colgroup, frame, frameset, tbody, td, tfoot, th, thead, tr).
  • Fix inner_html covering only the first top-level node of an HTML fragment.
  • Improve the speed of comment extraction
  • Improve the speed of len(attrs) by counting the attribute list directly
  • Fix encoding initialization when encoding=True.
Commits

Updates playwright from 1.64.0 to 1.64.1

Release notes

Sourced from playwright's releases.

v1.64.1

Highlights

microsoft/playwright-python#3283 - chore: roll Node.js to 24.22.1

The bundled Node.js 24.22.1 is a security release that distrusts the compromised eMudhra intermediate CAs. The driver uses Node's CA store for its own TLS connections, for example connect_over_cdp to a wss:// endpoint.

Browser Versions

  • Chromium 156.0.8078.4
  • Mozilla Firefox 157.0
  • WebKit 27.2

This version was also tested against the following stable channels:

  • Google Chrome 155
  • Microsoft Edge 155
Commits

Updates pytest from 9.1.1 to 9.2.0

Release notes

Sourced from pytest's releases.

9.2.0

pytest 9.2.0 (2026-10-27)

Removals and backward incompatible breaking changes

  • #14716: -c now raises a usage error for a path that does not exist, is a directory, or is in a format pytest has no loader for. Such paths were previously either ignored or reported as an unhandled FileNotFoundError.

  • #8593: The indirect, ids and scope arguments of Metafunc.parametrize() <pytest.Metafunc.parametrize> -- and therefore of @pytest.mark.parametrize <pytest.mark.parametrize ref> -- are now keyword-only.

    Passing them positionally was a common source of confusing errors, e.g. parametrize("arg1", "arg2", [(1, 2)]) made the argvalues land in indirect and failed with indirect fixture '(1, 2)' doesn't exist; such mistakes now fail with an understandable TypeError. The type annotations have always declared these arguments as keyword-only.

  • #993: Plugin import failures at startup are now reported and classified instead of escaping as a raw traceback with the accidental exit code 1:

    • a plugin that cannot be found -- via -p, pytest_plugins or PYTEST_PLUGINS -- exits with pytest.ExitCode USAGE_ERROR (4), like a conftest.py that fails to import;
    • a plugin that is found but raises while importing -- including a broken pytest11 entry point or a missing plugin dependency -- exits with pytest.ExitCode INTERNAL_ERROR (3), with the traceback preserved.

    pytest.main now returns these codes instead of raising ImportError. Also fixed an IndexError from pytest's own internals when the plugin raised an exception with no arguments.

Deprecations (removal in next major release)

  • #14742: The private _pytest.python.CallSpec2 name has been renamed to CallSpec. The old CallSpec2 alias remains available for now and will be removed in pytest 10 or 11.

  • #14755: Schedule yield_fixture decorator for removal in pytest 10 or 11.

  • #14774: Similarly to the deprecation of class-scoped fixtures defined as instance methods in pytest 9.1, all higher-scoped fixtures (module, package, and session) defined as instance methods are now deprecated.

    They suffer from the same issue the original deprecation only fixed for class-scoped fixtures, see 10819 and 14011.

  • #14808: Passing a non-string value to a string-typed ini option now emits a pytest.PytestRemovedIn10Warning. This affects [tool.pytest.ini_options] in pyproject.toml. In pytest 10 this will raise a TypeError, matching the behavior of the corresponding TOML config path.

  • #7323: Passing bytes to TerminalReporter.write_line() is now deprecated, pass a str instead.

New features

  • #14743: Full diff: now contains a legend explaining the + & - symbols in diff output.
  • #2781: When strict_markers is enabled, marker names used in -m expressions are now validated against registered markers.
  • #6881: Added the parametrize_long_str_id_strategy configuration option to control how long str/bytes parameter values are handled in auto-generated test IDs. Explicit IDs set via ids=[...] or pytest.param(..., id=...) are not affected. Available strategies: short (default, values over 100 chars fall back to argname+index), sha256 (SHA-256 hex digest), legacy (keep full value), and disallow (error requesting explicit IDs).

Improvements in existing functionality

  • #10745: A RecursionError whose recursion origin cannot be located now shows only the first and last 10 stack frames, matching what pytest already did when locating the origin failed outright. Previously the full traceback -- often around a thousand near-identical frames -- was rendered, which was both slow and unreadable. Pass --full-trace to see every frame.

... (truncated)

Commits
  • ae1d0ff Prepare release version 9.2.0
  • 143ce31 pre-commit: exclude codespell on generated release announcements
  • 532dc5f tox: add attrs dependency to regen, needed in reportingdemo.rst
  • a7b2446 Merge pull request #15245 from pytest-dev/claude/project-thread-9jcf91
  • 679d09c [pre-commit.ci] pre-commit autoupdate (#15266)
  • 41d12cd docs: clarify typing for yield fixtures
  • b9022ba Merge pull request #15182 from 1871698/docs/improve-getting-started-description
  • 16f87a7 docs: improve getting-started.rst test execution description
  • 082ed70 Merge pull request #15255 from pytest-dev/claude/project-thread-eoi3d6
  • ae37a01 Merge pull request #15227 from pytest-dev/claude/project-thread-4etye4
  • Additional commits viewable in compare view

Updates ruff from 0.17.1 to 0.17.3

Release notes

Sourced from ruff's releases.

0.17.3

Release Notes

Released on 2026-10-26.

Preview features

  • [suspicious] Add shared-clock-mock (#29074)

Bug fixes

  • [pyupgrade] Avoid incorrect conversions to f-strings (UP032) (#25485)

Performance

  • Buffer stdout in ruff format (#29631)
  • Specialize ASCII identifier lexing (#29503)
  • Speed up identifier and keyword lexing (#29463)

Documentation

  • [flake8-bandit] Describe what the rule actually checks for httpx (S113) (#27936)

Contributors

Install ruff 0.17.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.17.3/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.17.3/ruff-installer.ps1 | iex"

Download ruff 0.17.3

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum

... (truncated)

Changelog

Sourced from ruff's changelog.

0.17.3

Released on 2026-10-26.

Preview features

  • [suspicious] Add shared-clock-mock (#29074)

Bug fixes

  • [pyupgrade] Avoid incorrect conversions to f-strings (UP032) (#25485)

Performance

  • Buffer stdout in ruff format (#29631)
  • Specialize ASCII identifier lexing (#29503)
  • Speed up identifier and keyword lexing (#29463)

Documentation

  • [flake8-bandit] Describe what the rule actually checks for httpx (S113) (#27936)

Contributors

0.17.2

Released on 2026-10-22.

Preview features

  • [complexity] Add unnecessary-regular-expression-compile (#25533)

Bug fixes

  • Avoid syntax errors for type variables with starred constraints (UP040, UP046, UP047, RUF053) (#28362)
  • [pydocstyle] Treat backslash-escaped *args and **kwargs as documented (D417) (#29536)
  • [pylint] Avoid false positive on starred elements (PLE0643) (#29483)
  • [pylint] Mark fixes unsafe when deleting comments (PLR5501, PLW0120) (#29414)
  • [pyupgrade] Mark fix unsafe when deleting comments (UP035) (#29413)

Performance

  • Avoid intermediate names in lint name resolution (#29506)
  • Prefilter bidirectional Unicode checks by UTF-8 leading bytes (#29561)
  • Share postfix parsing and reduce expression copies (#29480)

... (truncated)

Commits

Bumps the python group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [curl-cffi](https://github.com/lexiforest/curl_cffi) | `0.16.3` | `0.17.0` |
| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `4.1.4` | `4.1.5` |
| [pydantic](https://github.com/pydantic/pydantic) | `2.14.1` | `2.14.2` |
| [selectolax](https://github.com/rushter/selectolax) | `1.0.0` | `1.0.2` |
| [playwright](https://github.com/microsoft/playwright-python) | `1.64.0` | `1.64.1` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.1.1` | `9.2.0` |
| [ruff](https://github.com/astral-sh/ruff) | `0.17.1` | `0.17.3` |


Updates `curl-cffi` from 0.16.3 to 0.17.0
- [Release notes](https://github.com/lexiforest/curl_cffi/releases)
- [Changelog](https://github.com/lexiforest/curl_cffi/blob/main/docs/changelog.rst)
- [Commits](lexiforest/curl_cffi@v0.16.3...v0.17.0)

Updates `fastmcp` from 4.1.4 to 4.1.5
- [Release notes](https://github.com/PrefectHQ/fastmcp/releases)
- [Changelog](https://github.com/PrefectHQ/fastmcp/blob/main/docs/changelog.mdx)
- [Commits](PrefectHQ/fastmcp@v4.1.4...v4.1.5)

Updates `pydantic` from 2.14.1 to 2.14.2
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v2.14.2/HISTORY.md)
- [Commits](pydantic/pydantic@v2.14.1...v2.14.2)

Updates `selectolax` from 1.0.0 to 1.0.2
- [Release notes](https://github.com/rushter/selectolax/releases)
- [Changelog](https://github.com/rushter/selectolax/blob/master/CHANGES.md)
- [Commits](rushter/selectolax@v1.0.0...v1.0.2)

Updates `playwright` from 1.64.0 to 1.64.1
- [Release notes](https://github.com/microsoft/playwright-python/releases)
- [Commits](microsoft/playwright-python@v1.64.0...v1.64.1)

Updates `pytest` from 9.1.1 to 9.2.0
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](pytest-dev/pytest@9.1.1...9.2.0)

Updates `ruff` from 0.17.1 to 0.17.3
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](astral-sh/ruff@0.17.1...0.17.3)

---
updated-dependencies:
- dependency-name: curl-cffi
  dependency-version: 0.17.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: fastmcp
  dependency-version: 4.1.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: pydantic
  dependency-version: 2.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: selectolax
  dependency-version: 1.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: playwright
  dependency-version: 1.64.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
- dependency-name: pytest
  dependency-version: 9.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: python
- dependency-name: ruff
  dependency-version: 0.17.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: python
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Nov 9, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants