[orm] [usecase] Added new parameter _orm.mapped_column.hash to ORM constructs
such as _orm.mapped_column(), _orm.relationship(), etc.,
which is interpreted for ORM Native Dataclasses in the same way as other
dataclass-specific field parameters.
[orm] [bug] Fixed bug in ORM bulk update/delete where using RETURNING with bulk
update/delete in combination with populate_existing would fail to
accommodate the populate_existing option.
[orm] [bug] Continuing from #11912, columns marked with
mapped_column.onupdate,
mapped_column.server_onupdate, or Computed are now
refreshed in ORM instances when running an ORM enabled UPDATE with WHERE
criteria, even if the statement does not use RETURNING or
populate_existing.
[orm] [bug] Fixed regression caused by fixes to joined eager loading in #11449
released in 2.0.31, where a particular joinedload case could not be
asserted correctly. We now have an example of that case so the assertion
has been repaired to allow for it.
[orm] [bug] Improved the error message emitted when trying to map as dataclass a class
while also manually providing the __table__ attribute.
This usage is currently not supported.
[orm] [bug] Refined the check which the ORM lazy loader uses to detect "this would be
loading by primary key and the primary key is NULL, skip loading" to take
into account the current setting for the
orm.Mapper.allow_partial_pks parameter. If this parameter is
False, then a composite PK value that has partial NULL elements should
also be skipped. This can apply to some composite overlapping foreign key
configurations.
We’ve just uploaded mypy 1.13 to the Python Package Index (PyPI).
Mypy is a static type checker for Python. You can install it as follows:
python3 -m pip install -U mypy
You can read the full documentation for this release on Read the Docs.
Note that unlike typical releases, Mypy 1.13 does not have any changes to type checking semantics
from 1.12.1.
Improved performance
Mypy 1.13 contains several performance improvements. Users can expect mypy to be 5-20% faster.
In environments with long search paths (such as environments using many editable installs), mypy
can be significantly faster, e.g. 2.2x faster in the use case targeted by these improvements.
Mypy 1.13 allows use of the orjson library for handling the cache instead of the stdlib json,
for improved performance. You can ensure the presence of orjson using the faster-cache extra:
python3 -m pip install -U mypy[faster-cache]
Mypy may depend on orjson by default in the future.
These improvements were contributed by Shantanu.
List of changes:
Significantly speed up file handling error paths (Shantanu, PR 17920)
Use fast path in modulefinder more often (Shantanu, PR 17950)
Let mypyc optimise os.path.join (Shantanu, PR 17949)
This release adds explicit support for Python 3.13 and drops support for running Nox itself under Python 3.7. Note that you can still use 3.7 in your Nox sessions, we just dropped support for installing & running nox itself in 3.7.
We'd like to thank the following folks who conributed to this release:
This release adds explicit support for Python 3.13 and drops support for running Nox itself under Python 3.7. Note that you can still use 3.7 in your Nox sessions, we just dropped support for installing & running nox itself in 3.7.
We'd like to thank the following folks who contributed to this release:
What's new in psycopg 2.9.10
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Add support for Python 3.13.
Receive notifications on commit (:ticket:[#1728](https://github.com/psycopg/psycopg2/issues/1728)).
~psycopg2.errorcodes map and ~psycopg2.errors classes updated to
PostgreSQL 17.
Drop support for Python 3.7.
What's new in psycopg 2.9.9
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Add support for Python 3.12.
Drop support for Python 3.6.
What's new in psycopg 2.9.8
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Wheel package bundled with PostgreSQL 16 libpq in order to add support for
recent features, such as sslcertmode.
What's new in psycopg 2.9.7
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Fix propagation of exceptions raised during module initialization
(:ticket:[#1598](https://github.com/psycopg/psycopg2/issues/1598)).
Fix building when pg_config returns an empty string (:ticket:[#1599](https://github.com/psycopg/psycopg2/issues/1599)).
Wheel package bundled with OpenSSL 1.1.1v.
What's new in psycopg 2.9.6
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Package manylinux 2014 for aarch64 and ppc64le platforms, in order to
include libpq 15 in the binary package (:ticket:[#1396](https://github.com/psycopg/psycopg2/issues/1396)).
Wheel package bundled with OpenSSL 1.1.1t.
What's new in psycopg 2.9.5
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Add support for Python 3.11.
Add support for rowcount in MERGE statements in binary packages
(:ticket:[#1497](https://github.com/psycopg/psycopg2/issues/1497)).
#12446: Avoid calling @property (and other instance descriptors) during fixture discovery -- by asottile{.interpreted-text role="user"}
#12659: Fixed the issue of not displaying assertion failure differences when using the parameter --import-mode=importlib in pytest>=8.1.
#12667: Fixed a regression where type change in [ExceptionInfo.errisinstance]{.title-ref} caused [mypy]{.title-ref} to fail.
#12744: Fixed typing compatibility with Python 3.9 or less -- replaced [typing.Self]{.title-ref} with [typing_extensions.Self]{.title-ref} -- by Avasam{.interpreted-text role="user"}
#12745: Fixed an issue with backslashes being incorrectly converted in nodeid paths on Windows, ensuring consistent path handling across environments.
#6682: Fixed bug where the verbosity levels where not being respected when printing the "msg" part of failed assertion (as in assert condition, msg).
#9422: Fix bug where disabling the terminal plugin via -p no:terminal would cause crashes related to missing the verbose option.
-- by GTowers1{.interpreted-text role="user"}
Improved documentation
#12663: Clarify that the [pytest_deselected]{.title-ref} hook should be called from [pytest_collection_modifyitems]{.title-ref} hook implementations when items are deselected.
#12678: Remove erroneous quotes from [tmp_path_retention_policy]{.title-ref} example in docs.
Miscellaneous internal changes
#12769: Fix typos discovered by codespell and add codespell to pre-commit hooks.
8.3.2
pytest 8.3.2 (2024-07-24)
Bug fixes
#12652: Resolve regression [conda]{.title-ref} environments where no longer being automatically detected.
-- by RonnyPfannschmidt{.interpreted-text role="user"}
8.3.1
pytest 8.3.1 (2024-07-20)
The 8.3.0 release failed to include the change notes and docs for the release. This patch release remedies this. There are no other changes.
... (truncated)
Commits
d0f136f build(deps): Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 (#12790)
BREAKING: Updated minimum supported pytest version to v8.2.0
Adds an optional loop_scope keyword argument to pytest.mark.asyncio. This argument controls which event loop is used to run the marked async test. #706, #871
Deprecates the optional scope keyword argument to pytest.mark.asyncio for API consistency with pytest_asyncio.fixture. Users are encouraged to use the loop_scope keyword argument, which does exactly the same.
Raises an error when passing scope or loop_scope as a positional argument to @pytest.mark.asyncio. #812
Fixes a bug that caused module-scoped async fixtures to fail when reused in other modules #862#668
pytest-asyncio 0.24.0a1
0.24.0 (UNRELEASED)
BREAKING: Updated minimum supported pytest version to v8.2.0
Adds an optional loop_scope keyword argument to pytest.mark.asyncio. This argument controls which event loop is used to run the marked async test. #706, #871
Deprecates the optional scope keyword argument to pytest.mark.asyncio for API consistency with pytest_asyncio.fixture. Users are encouraged to use the loop_scope keyword argument, which does exactly the same.
Raises an error when passing scope or loop_scope as a positional argument to @pytest.mark.asyncio. #812
Fixes a bug that caused module-scoped async fixtures to fail when reused in other modules #862#668
pytest-asyncio 0.24.0a0
0.24.0 (UNRELEASED)
Adds an optional loop_scope keyword argument to pytest.mark.asyncio. This argument controls which event loop is used to run the marked async test. #706, #871
Deprecates the optional scope keyword argument to pytest.mark.asyncio for API consistency with pytest_asyncio.fixture. Users are encouraged to use the loop_scope keyword argument, which does exactly the same.
Raises an error when passing scope or loop_scope as a positional argument to @pytest.mark.asyncio. #812
Commits
fb5422f docs: Set release date for v0.24 in changelog.
6dc7f58 docs: Add migration guides for pytest-asyncio v0.21 and v0.23.
1bfc181 Wire Sphinx builds into the RTD config via tox
f03cf13 Build(deps): Bump hypothesis in /dependencies/default
69540bf Build(deps): Bump attrs from 24.1.0 to 24.2.0 in /dependencies/default
b0ccfc5 Build(deps): Bump hypothesis in /dependencies/default
574f1db Build(deps): Bump babel from 2.15.0 to 2.16.0 in /dependencies/docs
ae30dac Update .readthedocs.yaml to install pytest-asyncio
Removed support for xdist rsync (now deprecated).
Contributed by Matthias Reichenbach in [#623](https://github.com/pytest-dev/pytest-cov/issues/623) <https://github.com/pytest-dev/pytest-cov/pull/623>_.
Switched docs theme to Furo.
Various legacy Python cleanup and CI improvements.
Contributed by Christian Clauss and Hugo van Kemenade in
[#630](https://github.com/pytest-dev/pytest-cov/issues/630) <https://github.com/pytest-dev/pytest-cov/pull/630>,
[#631](https://github.com/pytest-dev/pytest-cov/issues/631) <https://github.com/pytest-dev/pytest-cov/pull/631>,
[#632](https://github.com/pytest-dev/pytest-cov/issues/632) <https://github.com/pytest-dev/pytest-cov/pull/632>_ and
[#633](https://github.com/pytest-dev/pytest-cov/issues/633) <https://github.com/pytest-dev/pytest-cov/pull/633>_.
Added a pyproject.toml example in the docs.
Contributed by Dawn James in [#626](https://github.com/pytest-dev/pytest-cov/issues/626) <https://github.com/pytest-dev/pytest-cov/pull/626>_.
Modernized project's pre-commit hooks to use ruff. Initial POC contributed by
Christian Clauss in [#584](https://github.com/pytest-dev/pytest-cov/issues/584) <https://github.com/pytest-dev/pytest-cov/pull/584>_.
Made errors when parsing Distribution data more explicit about the expected type (tuple[str, ...] | list[str]) -- by :user:Avasam (#4578)
Bugfixes
Fix a TypeError when a Distribution's old included attribute was a tuple -- by :user:Avasam (#4578)
Add workaround for bdist_wheel --dist-info-dir errors
when customisation does not inherit from setuptools. (#4684)
v75.1.1
Bugfixes
Re-use pre-existing .dist-info dir when creating wheels via the build backend APIs (PEP 517) and the metadata_directory argument is passed -- by :user:pelson. (#1825)
Changed egg_info command to avoid adding an empty .egg-info directory
while iterating over entry-points.
This avoids triggering integration problems with importlib.metadata/importlib_metadata
(reference: pypa/pyproject-hooks#206). (#4680)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore con...
_Description has been truncated_
🧙 Sourcery has finished reviewing your pull request!
Tips and commands
#### Interacting with Sourcery
- **Trigger a new review:** Comment `@sourcery-ai review` on the pull request.
- **Continue discussions:** Reply directly to Sourcery's review comments.
- **Generate a GitHub issue from a review comment:** Ask Sourcery to create an
issue from a review comment by replying to it.
- **Generate a pull request title:** Write `@sourcery-ai` anywhere in the pull
request title to generate a title at any time.
- **Generate a pull request summary:** Write `@sourcery-ai summary` anywhere in
the pull request body to generate a PR summary at any time. You can also use
this command to specify where the summary should be inserted.
#### Customizing Your Experience
Access your [dashboard](https://app.sourcery.ai) to:
- Enable or disable review features such as the Sourcery-generated pull request
summary, the reviewer's guide, and others.
- Change the review language.
- Add, remove or edit custom review instructions.
- Adjust other review settings.
#### Getting Help
- [Contact our support team](mailto:support@sourcery.ai) for questions or feedback.
- Visit our [documentation](https://docs.sourcery.ai) for detailed guides and information.
- Keep in touch with the Sourcery team by following us on [X/Twitter](https://x.com/SourceryAI), [LinkedIn](https://www.linkedin.com/company/sourcery-ai/) or [GitHub](https://github.com/sourcery-ai).
Bumps the all-dependencies group with 11 updates in the / directory:
2.0.35
2.0.36
0.29.0
0.30.0
23.12.1
24.8.0
7.2.1
8.5.0
1.8.0
1.13.0
2023.4.22
2024.10.9
2.9.9
2.9.10
7.4.4
8.3.3
0.23.8
0.24.0
4.1.0
5.0.0
75.1.0
75.2.0
Updates
sqlalchemy
from 2.0.35 to 2.0.36Release notes
Sourced from sqlalchemy's releases.
... (truncated)
Commits
Updates
asyncpg
from 0.29.0 to 0.30.0Release notes
Sourced from asyncpg's releases.
... (truncated)
Commits
bae282e
asyncpg v0.30.0965fb08
Fix release workflowf6ec755
Allow customizing connection state reset (#1191)3ef884e
Upgrade Sphinx3ee19ba
Add connect_fn kwarg to Pool to better support GCP's CloudSQL (#1170)73f2209
Addfetchmany
to execute many and return rows (#1175)b732b4f
tests: Attempt to inhibit spurious ConnectionResetError on Windows (#1190)cee97e1
Test on PostgreSQL 17 (#1189)3aa9894
Test and build on Python 3.13 (#1188)afdb05c
Add support for thesslnegotiation
parameter (#1187)Updates
black
from 23.12.1 to 24.8.0Release notes
Sourced from black's releases.
... (truncated)
Changelog
Sourced from black's changelog.
... (truncated)
Commits
b965c2a
Prepare release 24.8.0 (#4426)9ccf279
Documentfind_project_root
ignoringpyproject.toml
without[tool.black]
...14b6e61
fix: Enhace black efficiently to skip directories listed in .gitignore (#4415)b1c4dd9
fix: respect braces better in f-string parsing (#4422)4b4ae43
Fix incorrect linenos on fstring tokens with escaped newlines (#4423)7fa1faf
docs: fix the installation command of extra for blackd (#4413)8827acc
Bump sphinx from 7.3.7 to 7.4.0 in /docs (#4404)b0da11d
Bump furo from 2024.5.6 to 2024.7.18 in /docs (#4409)721dff5
fix: avoid formatting backslash strings inside f-strings (#4401)7e2afc9
Updateactions/checkout
to v4 to stop node deprecation warnings (#4379)Updates
importlib-metadata
from 7.2.1 to 8.5.0Changelog
Sourced from importlib-metadata's changelog.
... (truncated)
Commits
b34810b
Finalize8c1d1fa
Merge pull request #501 from Avasam/Pass-mypy-and-link-issuesafa39e8
Back out changes to tests._path8b909f9
Merge pull request #503 from danielhollas/defer-json2a3f50d
Add news fragment.3f78dc1
Add comment to protect the deferred import.18eb2da
Revert "Defer platform import"58832f2
Merge pull request #502 from danielhollas/defer-zippe3ce33b
Add news fragment.d11b67f
Add comment to protect the deferred import.Updates
mypy
from 1.8.0 to 1.13.0Changelog
Sourced from mypy's changelog.
... (truncated)
Commits
eb31034
Bump version to 1.13.02eeb588
Update changelog for 1.12.1 (#17999)bc0386b
Changelog for 1.13 (#18000)5c4d2db
Add faster-cache extra, test in CI (#17978)854ad18
Make is_sub_path faster (#17962)50aa4ca
Speed up stubs suggestions (#17965)7c27808
Use orjson instead of json, when available (#17955)2cd2406
Use fast path in modulefinder more often (#17950)e20aaee
Let mypyc optimise os.path.join (#17949)159974c
Use sha1 for hashing (#17953)Updates
nox
from 2023.4.22 to 2024.10.9Release notes
Sourced from nox's releases.
... (truncated)
Changelog
Sourced from nox's changelog.
... (truncated)
Commits
1199ab3
Release 2024.10.096f295da
docs: add uv sync example (#864)57825e8
docs: note about uv reinstall (#863)57a65d8
docs: clean up dev recipe (#862)40d6b49
feat: install_and_run_script (PEP 721) (#847)9058e72
fix: remove add_timestamp from noxfile.options (#856)19655f4
chore: PyPy no longer supports 3.9 (#858)1806181
ci: use astral-sh's setup-uv (#859)d7072e3
chore: include 3.13 in classifiers (#851)a49c730
feat: support for uv-installed pythons (#842)Updates
psycopg2
from 2.9.9 to 2.9.10Changelog
Sourced from psycopg2's changelog.
... (truncated)
Commits
Updates
pytest
from 7.4.4 to 8.3.3Release notes
Sourced from pytest's releases.
... (truncated)
Commits
d0f136f
build(deps): Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 (#12790)972f307
Prepare release version 8.3.30dabdcf
Include co-authors in release announcement (#12795) (#12797)a9910a4
Do not discover properties when iterating fixtures (#12781) (#12788)0f10b6b
Fix issue with slashes being turned into backslashes on Windows (#12760) (#12...300d13d
Merge pull request #12785 from pytest-dev/patchback/backports/8.3.x/57cccf7f4...e5d32c7
Merge pull request #12784 from svenevs/fix/docs-example-parametrize-minor-typobc913d1
Streamline checks for verbose option (#12706) (#12778)01cfcc9
Fix typos and introduce codespell pre-commit hook (#12769) (#12774)4873394
doc: Remove past training (#12772) (#12773)Updates
pytest-asyncio
from 0.23.8 to 0.24.0Release notes
Sourced from pytest-asyncio's releases.
Commits
fb5422f
docs: Set release date for v0.24 in changelog.6dc7f58
docs: Add migration guides for pytest-asyncio v0.21 and v0.23.1bfc181
Wire Sphinx builds into the RTD config via toxf03cf13
Build(deps): Bump hypothesis in /dependencies/default69540bf
Build(deps): Bump attrs from 24.1.0 to 24.2.0 in /dependencies/defaultb0ccfc5
Build(deps): Bump hypothesis in /dependencies/default574f1db
Build(deps): Bump babel from 2.15.0 to 2.16.0 in /dependencies/docsae30dac
Update .readthedocs.yaml to install pytest-asyncio972a704
Derive project version using importlibd587a52
[pre-commit.ci] pre-commit autoupdateUpdates
pytest-cov
from 4.1.0 to 5.0.0Changelog
Sourced from pytest-cov's changelog.
Commits
5295ce0
Bump version: 4.1.0 → 5.0.01181b06
Update changelog.9757222
Fix a minor grammar error (#636)9f5cd81
Cleanup releasing instructions. Closes #616.93b5047
Add test for pyproject.toml loading without explicit --cov-config. Ref #508.ff50860
docs: add config instructions for pyproject.toml.4a5a4b5
Keep GitHub Actions up to date with GitHub's Dependabot1d7f559
Fix or remove URLs that are causing docs tests to fail6a5af8e
Update changelog.d9fe8df
Switch to furo. Closes #618.Updates
setuptools
from 75.1.0 to 75.2.0Changelog
Sourced from setuptools's changelog.
Commits
61a5a03
Bump version: 75.1.1 → 75.2.08ad3ea7
Workaround forbdist_wheel.dist_info_dir
problems (#4684)9af0877
Type sequence checks in setuptools/dist.py (#4578)0534fde
Add news fragment50b732a
Check for more specific error messagea663287
Add pragma for edge-case code path96be735
Workaround for bdist_wheel.dist_info_dir problems000a413
Deprecate public access to setuptools.dist.sequence00995c1
Use variable msg instead of tmpl in setuptools/distd457d0e
Type sequence checks in setuptools/dist.pyDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show