Skip to content

chore(deps): bump the backend-minor-patch group across 1 directory with 7 updates - #3915

Open
dependabot[bot] wants to merge 2 commits into
developfrom
dependabot/pip/backend/develop/backend-minor-patch-59fa736559
Open

dependabot[bot] wants to merge 2 commits into
developfrom
dependabot/pip/backend/develop/backend-minor-patch-59fa736559

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 31, 2026

Copy link
Copy Markdown
Contributor

Bumps the backend-minor-patch group with 7 updates in the /backend directory:

Package From To
sqlalchemy 2.1.4 2.1.6
platformdirs 4.13.0 4.13.7
alembic 1.20.0 1.20.1
pytest 9.1.1 9.2.0
pytest-asyncio 1.4.0 1.4.1
ruff 0.17.0 0.17.3
datamodel-code-generator 0.83.0 0.86.0

Updates sqlalchemy from 2.1.4 to 2.1.6

Release notes

Sourced from sqlalchemy's releases.

2.1.6

Released: October 21, 2026

orm

  • [orm] [bug] Fixed issue where a Session flush that replaced an expired object in the identity map with a newly flushed object of the same primary key would emit a SELECT to refresh the expired object, solely in order to determine whether to emit an "Identity map already had an identity" warning. This could occur when a row loaded within a transaction is rolled back and its primary key value is subsequently reused, and could lead to an AttributeError if the expired object were garbage collected during that load. The check now emits no SQL, and an expired object that is replaced in this way no longer causes the warning to be emitted.

    This change is also backported to: 2.0.56

    References: #13711

  • [orm] [bug] [regression] Fixed regression caused by #13070 where using more than one orm.with_loader_criteria() option for the same entity, where the criteria made use of correlated subqueries referring to that entity, would fail with a RecursionError when compiling.

    References: #13701

  • [orm] [bug] [regression] Fixed regression caused by the new implementation of .params() for statements introduced in #7066, where parameter values passed to the .params() method of an ORM statement created using Select.from_statement() would not be applied when the statement was compiled without the compiled statement cache, such as when the cache was disabled or when the statement was stringified directly, leading to an error that a value is required for the bound parameter.

    References: #13709

orm extensions

  • [bug] [orm extensions] Fixed an issue in the instrumentation_toplevel extension where unrelated classes inheriting from typing.Generic could incorrectly raise a TypeError when using different instrumentation implementations. Pull request courtesy TomasCaruso10.

    This change is also backported to: 2.0.56

    References: #13680

... (truncated)

Commits

Updates platformdirs from 4.13.0 to 4.13.7

Release notes

Sourced from platformdirs's releases.

4.13.7

Bug fixes

  • Fall back to the default media directories when user-dirs.dirs exists but cannot be read, rather than raising PermissionError or IsADirectoryError (#632) by @​Debasishhh and @​gaborbernat.
  • Resolve the Windows Projects directory from USERPROFILE when HOME is empty, rather than raising RuntimeError (#635) by @​pabszero and @​gaborbernat.
  • Resolve $HOME entries in user-dirs.dirs to /Documents instead of //Documents when the home directory is / (#636) by @​darrenhuai and @​gaborbernat.
  • Print the error and keep listing directories in python -m platformdirs when the home directory is unknown, rather than stopping with RuntimeError (#638) by @​tongwentao and @​gaborbernat.
  • Raise FileNotFoundError from the place_*_file methods when the user directory is on a missing Windows drive or network share, rather than recursing until RecursionError (#639) by @​nk-batman21 and @​gaborbernat.
  • Search the directories of a subclass's overridden iter_*_paths method in find_*_file and find_*_files, rather than the base class ones (#640) by @​KennyMcSimpson and @​gaborbernat.
  • Keep isolated_dirs paths under a relative root after the working directory changes, and yield the root as an absolute path (#643) by @​0x5t4l1n and @​gaborbernat.
  • Ignore Windows folder overrides with a UNC path missing its server or share name, such as \\server, instead of treating the application name as the share (#647) by @​RedCat888 and @​gaborbernat.

Documentation

  • Remove the literal /opt/homebrew from a macOS source comment. Homebrew replaces it with a placeholder when bottling on Apple Silicon but not on Linux, so formulae that bundle platformdirs could not share one bottle across both (#644) by @​Moisan and @​gaborbernat.

New Contributors

PyPI release

Full Changelog

4.13.6

Packaging

  • Releases now run on the shared tox-dev/github-workflows pipeline, with a locked release toolchain and generated GitHub Release notes (#650) by @​gaborbernat.

🐍 PyPI release

📜 Full Changelog

4.13.5

... (truncated)

Changelog

Sourced from platformdirs's changelog.

########### Changelog ###########

.. towncrier-draft-entries:: Unreleased

.. towncrier release notes start

.. _release-4-14-1:


4.14.1 (2026-10-30)


.. _release-4-14-1-fixed:

Fixed

  • Fall back to the real user ID on platforms without an effective user ID, restoring imports and Unix directory lookups on Pyodide (:pr:676) by :user:mayankdhingra02.

.. _release-4-14-0:


4.14.0 (2026-10-28)


.. _release-4-14-0-added:

Added

  • Accept a keyword-only ensure_exists in the module-level media directory functions, such as :func:~platformdirs.user_documents_path, to create a directory set through XDG_*_DIR or user-dirs.dirs (:pr:656) by :user:darrenhuai and :user:gaborbernat.

.. _release-4-14-0-fixed:

Fixed

  • Return the media and fonts directories under root's home for root with use_site_for_root, ignoring the invoking user's XDG_*_DIR, user-dirs.dirs and XDG_DATA_HOME, and create no inherited media directory under ensure_exists (:pr:661) by :user:gaborbernat.
  • Raise ValueError from site_data_dir and site_config_dir under multipath=True when appname or version contains os.pathsep, rather than returning a string that splits into a directory outside the site base (:pr:662) by :user:gaborbernat.
  • Parse an unquoted user-dirs.dirs value with a long run of blanks in linear time, rather than in time quadratic in the run's length on every Unix media directory lookup (:pr:663) by :user:gaborbernat.

... (truncated)

Commits
  • c24ff32 release 4.13.7
  • a3c9e1e 🐛 fix(testing): pin relative isolation roots (#643)
  • 671f20a 🐛 fix(api): honor overridden iter_*_paths in find (#640)
  • cb1b03a 🐛 fix(api): raise on missing drive in place_*_file (#639)
  • 4e0605e 🐛 fix(cli): keep reporting when home is unknown (#638)
  • dbe1497 🐛 fix(unix): default when user-dirs.dirs unreadable (#632)
  • c243545 ✅ test(unix): use host strerror in warning tests (#630)
  • 43fef5f 🐛 fix(windows): ignore UNC overrides missing a share (#647)
  • 3e928c8 🐛 fix(windows): ignore empty HOME for Projects (#635)
  • 870073e 🐛 fix(unix): avoid // in user-dirs when HOME is / (#636)
  • Additional commits viewable in compare view

Updates alembic from 1.20.0 to 1.20.1

Release notes

Sourced from alembic's releases.

1.20.1

Released: October 21, 2026

bug

  • [bug] [autogenerate] Fixed issue where a table or column comment set to an empty string would cause autogenerate to detect a comment change on every run. As most backends, including PostgreSQL, MySQL, MariaDB and Oracle, don't store an empty string comment distinctly from no comment, autogenerate now treats an empty string comment the same as None when comparing comments. Additionally, an empty string comment is now rendered in op.create_table() and op.add_column() directives, where it was previously omitted. Pull request courtesy vineoy.

    References: #1085

  • [bug] [autogenerate] [postgresql] Fixed rendering of the PostgreSQL ~sqlalchemy.dialects.postgresql.DOMAIN type in autogenerated migration scripts. Previously the type was rendered using repr(), which omitted the check, not_null, default, collation, constraint_name, schema and create_type arguments and did not apply a dialect prefix to the underlying data type. The full set of arguments is now rendered and the underlying data type is rendered using the standard type-rendering logic. Pull request courtesy Sebastian Cao.

    References: #1360

  • [bug] [autogenerate] [postgresql] Fixed false-positive "Computed default cannot be modified" warning emitted during autogenerate when comparing PostgreSQL Computed columns whose reflected SQL expression includes type cast specifiers such as ::regconfig or ::text, which PostgreSQL adds to the expression as stored. These cast specifiers are now stripped before comparison so that otherwise equivalent expressions no longer trigger the warning. Pull request courtesy Sebastian Cao.

    References: #1462

  • [bug] [autogenerate] [postgresql] Fixed issue where autogenerate would detect an unchanged PostgreSQL expression-based index as modified when the expression included type casts, such as a cast to a type with a length or precision, a nested cast, or a cast followed by a DESC modifier.

  • [bug] [postgresql] Fixed bug where Operations.alter_column() against a PostgreSQL identity column would render an incomplete, invalid ALTER TABLE ... ALTER COLUMN statement with no clause at all when existing_server_default was omitted, even if there were no existing server default. Pull request courtesy Riti Grover.

... (truncated)

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 pytest-asyncio from 1.4.0 to 1.4.1

Release notes

Sourced from pytest-asyncio's releases.

pytest-asyncio v1.4.1

1.4.1 - 2026-10-25

Added

  • Declared support for Python 3.15 (#1588)

Fixed

  • Allow AsyncIterable as a return type for asynchronous generator fixtures decorated with pytest_asyncio.fixture (#1090)

Notes for Downstream Packagers

  • Source-tree development dependencies now use PEP 735 dependency groups and uv.lock. (#1518)
Commits
  • 6af7f5c chore: Prepare release of v1.4.1.
  • 32ccf64 Support 3.15 (#1588)
  • 9830071 Build(deps): Bump certifi from 2026.6.17 to 2026.10.19 (#1590)
  • 0238023 Build(deps): Bump virtualenv from 21.7.13 to 21.14.13 (#1589)
  • 93893ec Build(deps): Bump astral-sh/setup-uv from 10.2.0 to 10.3.0 (#1583)
  • f287e5e Build(deps): Bump actions/download-artifact from 8.0.1 to 8.0.2 (#1581)
  • b71da4f Build(deps-dev): Bump hypothesis from 6.168.3 to 6.168.5 (#1582)
  • d8c51d8 Build(deps): Bump actions/upload-artifact from 7.0.1 to 7.0.2 (#1580)
  • b12808b Build(deps): Bump virtualenv from 21.7.12 to 21.7.13 (#1578)
  • e0601f0 Build(deps-dev): Bump coverage from 7.16.1 to 7.16.2 (#1577)
  • Additional commits viewable in compare view

Updates ruff from 0.17.0 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

Updates datamodel-code-generator from 0.83.0 to 0.86.0

Release notes

Sourced from datamodel-code-generator's releases.

0.86.0

Breaking Changes

Code Generation Changes

  • Base64 bytes with length constraints now use EncodedBytes - With --type-mappings string+byte=binary, a format: byte string with minLength or maxLength used to generate conbytes(...), which did not decode base64. With --field-constraints it used to generate Base64Bytes with a Field(max_length=...). It now generates Annotated[bytes, Field(max_length=8), EncodedBytes(encoder=Base64Encoder)], which decodes the base64 text and checks the lengths on the encoded text, as JSON Schema counts them. Field values are now the decoded bytes instead of the raw text. Under --field-constraints, inputs whose base64 text is longer than the limit are now rejected, even when the decoded bytes fit. Generated modules now import Annotated, Field, EncodedBytes and Base64Encoder. Pydantic checks these lengths on the text only from 2.10 on, and an explicit --target-pydantic-version 2 now warns about each such field (#4798)
  • Strict bytes no longer skip base64 decoding for mapped byte strings - With --type-mappings string+byte=binary and --strict-types bytes, format: byte fields used to generate StrictBytes, or conbytes(..., strict=True) when they had lengths, and held the raw text. They now generate Base64Bytes, or the EncodedBytes form when they have lengths, and decode the base64 text, so validated values change. FastAPI path, query, header and cookie parameters with this combination no longer stop generation with an error (#4798)
  • Mapped byte formats now decode base64 when mapped without constraints - With --type-mappings string+byte=binary, code paths that map a type and format without constraints now pass base64 decoding through. For example, a format: byte string member of a multi-type type list now generates Base64Bytes, as in Base64Bytes | list[int], instead of plain bytes. Its runtime value becomes the decoded bytes (#4798)

Other Output Changes

These change generated output compared with 0.85.0, but only where 0.85.0 output failed or for options that are new in this release.

  • Integer and subclass enums that list null no longer get a None member - An enum with a value type base (the IntEnum written for type: integer, or a --use-subclass-enum class such as (int, Enum)) that lists null used to get a member such as integer_None = None, which made the generated module raise TypeError at import. That member is no longer generated, and an enum whose only value is null becomes a RootModel[None]. Class names and field defaults are unchanged (#4884, #4889)
  • Discriminator tags keep no pattern their values already satisfy - Pydantic discriminator tag fields written with Field() constraints no longer carry a pattern that every tag value satisfies. Such output failed at import in 0.85.0 because the tag was no longer a usable discriminator. Tags whose values contradict their own pattern are unchanged (#4888)
  • Optional one-value Literal discriminator tags default to their value - A tag such as kind: Literal['card'] | None = None is now written as kind: Literal['card'] = 'card'. The discriminated union failed at import before; a standalone model using such a tag now defaults to and dumps 'card' instead of None (#4895)
  • The builtin formatter wraps long Annotated[...] = None assignments like black - Where 0.85.0 put the None default in parentheses on its own lines, the line is now split inside the annotation, as black does. The code is equivalent, but --check runs with a dated preset (which uses the builtin formatter) report the reformatting (#4794)
  • Refinements of options new in this release - --use-tag-as-union-variant-name no longer repeats the key in prefixed names of models inside key-named branches (#4903), and --use-single-value-enum-as-const types nullable single-value unions as Literal[...] | None keeps mixed-type single-value branches apart instead of merging them into one Enum (#4926, #4927), and leaves nullable: true single-value enums as enums so they still accept null (#4944). Both options were added after 0.85.0, so output without them is unchanged

What's Changed

... (truncated)

Changelog

Sourced from datamodel-code-generator's changelog.

0.86.0 - 2026-10-18

Breaking Changes

Code Generation Changes

  • Base64 bytes with length constraints now use EncodedBytes - With --type-mappings string+byte=binary, a format: byte string with minLength or maxLength used to generate conbytes(...), which did not decode base64. With --field-constraints it used to generate Base64Bytes with a Field(max_length=...). It now generates Annotated[bytes, Field(max_length=8), EncodedBytes(encoder=Base64Encoder)], which decodes the base64 text and checks the lengths on the encoded text, as JSON Schema counts them. Field values are now the decoded bytes instead of the raw text. Under --field-constraints, inputs whose base64 text is longer than the limit are now rejected, even when the decoded bytes fit. Generated modules now import Annotated, Field, EncodedBytes and Base64Encoder. Pydantic checks these lengths on the text only from 2.10 on, and an explicit --target-pydantic-version 2 now warns about each such field (#4798)
  • Strict bytes no longer skip base64 decoding for mapped byte strings - With --type-mappings string+byte=binary and --strict-types bytes, format: byte fields used to generate StrictBytes, or conbytes(..., strict=True) when they had lengths, and held the raw text. They now generate Base64Bytes, or the EncodedBytes form when they have lengths, and decode the base64 text, so validated values change. FastAPI path, query, header and cookie parameters with this combination no longer stop generation with an error (#4798)
  • Mapped byte formats now decode base64 when mapped without constraints - With --type-mappings string+byte=binary, code paths that map a type and format without constraints now pass base64 decoding through. For example, a format: byte string member of a multi-type type list now generates Base64Bytes, as in Base64Bytes | list[int], instead of plain bytes. Its runtime value becomes the decoded bytes (#4798)

Other Output Changes

These change generated output compared with 0.85.0, but only where 0.85.0 output failed or for options that are new in this release.

  • Integer and subclass enums that list null no longer get a None member - An enum with a value type base (the IntEnum written for type: integer, or a --use-subclass-enum class such as (int, Enum)) that lists null used to get a member such as integer_None = None, which made the generated module raise TypeError at import. That member is no longer generated, and an enum whose only value is null becomes a RootModel[None]. Class names and field defaults are unchanged (#4884, #4889)
  • Discriminator tags keep no pattern their values already satisfy - Pydantic discriminator tag fields written with Field() constraints no longer carry a pattern that every tag value satisfies. Such output failed at import in 0.85.0 because the tag was no longer a usable discriminator. Tags whose values contradict their own pattern are unchanged (#4888)
  • Optional one-value Literal discriminator tags default to their value - A tag such as kind: Literal['card'] | None = None is now written as kind: Literal['card'] = 'card'. The discriminated union failed at import before; a standalone model using such a tag now defaults to and dumps 'card' instead of None (#4895)
  • The builtin formatter wraps long Annotated[...] = None assignments like black - Where 0.85.0 put the None default in parentheses on its own lines, the line is now split inside the annotation, as black does. The code is equivalent, but --check runs with a dated preset (which uses the builtin formatter) report the reformatting (#4794)
  • Refinements of options new in this release - --use-tag-as-union-variant-name no longer repeats the key in prefixed names of models inside key-named branches (#4903), and --use-single-value-enum-as-const types nullable single-value unions as Literal[...] | None keeps mixed-type single-value branches apart instead of merging them into one Enum (#4926, #4927), and leaves nullable: true single-value enums as enums so they still accept null (#4944). Both options were added after 0.85.0, so output without them is unchanged

What's Changed

…th 7 updates

Bumps the backend-minor-patch group with 7 updates in the /backend directory:

| Package | From | To |
| --- | --- | --- |
| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.1.4` | `2.1.6` |
| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.13.0` | `4.13.7` |
| [alembic](https://github.com/sqlalchemy/alembic) | `1.20.0` | `1.20.1` |
| [pytest](https://github.com/pytest-dev/pytest) | `9.1.1` | `9.2.0` |
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.4.0` | `1.4.1` |
| [ruff](https://github.com/astral-sh/ruff) | `0.17.0` | `0.17.3` |
| [datamodel-code-generator](https://github.com/datamodel-code-generator/datamodel-code-generator) | `0.83.0` | `0.86.0` |



Updates `sqlalchemy` from 2.1.4 to 2.1.6
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

Updates `platformdirs` from 4.13.0 to 4.13.7
- [Release notes](https://github.com/tox-dev/platformdirs/releases)
- [Changelog](https://github.com/tox-dev/platformdirs/blob/main/docs/changelog.rst)
- [Commits](tox-dev/platformdirs@4.13.0...4.13.7)

Updates `alembic` from 1.20.0 to 1.20.1
- [Release notes](https://github.com/sqlalchemy/alembic/releases)
- [Changelog](https://github.com/sqlalchemy/alembic/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/alembic/commits)

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 `pytest-asyncio` from 1.4.0 to 1.4.1
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](pytest-dev/pytest-asyncio@v1.4.0...v1.4.1)

Updates `ruff` from 0.17.0 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.0...0.17.3)

Updates `datamodel-code-generator` from 0.83.0 to 0.86.0
- [Release notes](https://github.com/datamodel-code-generator/datamodel-code-generator/releases)
- [Changelog](https://github.com/datamodel-code-generator/datamodel-code-generator/blob/main/CHANGELOG.md)
- [Commits](datamodel-code-generator/datamodel-code-generator@0.83.0...0.86.0)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-version: 2.1.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: backend-minor-patch
- dependency-name: platformdirs
  dependency-version: 4.13.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: backend-minor-patch
- dependency-name: alembic
  dependency-version: 1.20.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: backend-minor-patch
- dependency-name: pytest
  dependency-version: 9.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: backend-minor-patch
- dependency-name: pytest-asyncio
  dependency-version: 1.4.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: backend-minor-patch
- dependency-name: ruff
  dependency-version: 0.17.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: backend-minor-patch
- dependency-name: datamodel-code-generator
  dependency-version: 0.86.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: backend-minor-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Dependency upgrades and tracking label Oct 31, 2026
@socket-security

socket-security Bot commented Oct 31, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedpypi/​datamodel-code-generator@​0.83.0 ⏵ 0.86.097100100100100
Addedpypi/​sqlalchemy@​2.1.697100100100100
Updatedpypi/​alembic@​1.20.0 ⏵ 1.20.198 +1100100100100
Updatedpypi/​platformdirs@​4.13.0 ⏵ 4.13.7100 +1100100100100
Updatedpypi/​ruff@​0.17.0 ⏵ 0.17.3100 +1100100100100
Addedpypi/​pytest-asyncio@​1.4.1100100100100100

View full report

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 Dependency upgrades and tracking

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant