[orm] [usecase] Implemented the _orm.Session.bulk_insert_mappings.render_nulls
parameter for new style bulk ORM inserts, allowing render_nulls=True as
an execution option. This allows for bulk ORM inserts with a mixture of
None values in the parameter dictionaries to use a single batch of rows
for a given set of dicationary keys, rather than breaking up into batches
that omit the NULL columns from each INSERT.
[orm] [bug] Fixed issue where the __allow_unmapped__ directive failed to allow for
legacy Column / deferred() mappings that nonetheless had
annotations such as Any or a specific type without Mapped[] as
their type, without errors related to locating the attribute name.
[orm] [bug] Fixed caching bug where using the _orm.with_expression() construct in
conjunction with loader options _orm.selectinload(),
_orm.lazyload() would fail to substitute bound parameter values
correctly on subsequent caching runs.
[orm] [bug] Fixed bug in ORM annotated declarative where using a ClassVar that
nonetheless referred in some way to an ORM mapped class name would fail to
be interpreted as a ClassVar that's not mapped.
[sql] [usecase] Implemented "literal value processing" for the Interval datatype
for both the PostgreSQL and Oracle dialects, allowing literal rendering of
interval values. Pull request courtesy Indivar Mishra.
[sql] [bug] Fixed issue where using the same bound parameter more than once with
literal_execute=True in some combinations with other literal rendering
parameters would cause the wrong values to render due to an iteration
issue.
Fix a potential crash on Python 3.8 at interpreter shutdown time.
This was a regression from earlier 3.0.x releases. Reported by Matt
Wozniski in issue 376 <https://github.com/python-greenlet/greenlet/issues/376>_.
3.0.0 (2023-10-02)
No changes from 3.0rc3 aside from the version number.
Stubgen will now include __all__ in its output if it is in the input file (PR 16356).
Mypy 1.7
We’ve just uploaded mypy 1.7 to the Python Package Index (PyPI). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. 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.
Using TypedDict for **kwargs Typing
Mypy now has support for using Unpack[...] with a TypedDict type to annotate **kwargs arguments enabled by default. Example:
# Or 'from typing_extensions import ...'
from typing import TypedDict, Unpack
class Person(TypedDict):
name: str
age: int
def foo(**kwargs: Unpack[Person]) -> None:
...
foo(name="x", age=1) # Ok
foo(name=1) # Error
The definition of foo above is equivalent to the one below, with keyword-only arguments name and age:
def foo(*, name: str, age: int) -> None:
...
Refer to PEP 692 for more information. Note that unlike in the current version of the PEP, mypy always treats signatures with Unpack[SomeTypedDict] as equivalent to their expanded forms with explicit keyword arguments, and there aren't special type checking rules for TypedDict arguments.
This was contributed by Ivan Levkivskyi back in 2022 (PR 13471).
TypeVarTuple Support Enabled (Experimental)
Mypy now has support for variadic generics (TypeVarTuple) enabled by default, as an experimental feature. Refer to PEP 646 for the details.
TypeVarTuple was implemented by Jared Hance and Ivan Levkivskyi over several mypy releases, with help from Jukka Lehtosalo.
* Document calendar-based versioning scheme (:issue:`716`)
* Enforce that the entire marker string is parsed (:issue:`687`)
* Requirement parsing no longer automatically validates the URL (:issue:`120`)
* Canonicalize names for requirements comparison (:issue:`644`)
* Introduce ``metadata.Metadata`` (along with ``metadata.ExceptionGroup`` and ``metadata.InvalidMetadata``; :issue:`570`)
* Introduce the ``validate`` keyword parameter to ``utils.normalize_name()`` (:issue:`570`)
* Introduce ``utils.is_normalized_name()`` (:issue:`570`)
* Make ``utils.parse_sdist_filename()`` and ``utils.parse_wheel_filename()``
raise ``InvalidSdistFilename`` and ``InvalidWheelFilename``, respectively,
when the version component of the name is invalid
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)).
Wheel package bundled with OpenSSL 1.1.1r and PostgreSQL 15 libpq.
What's new in psycopg 2.9.4
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Fix ~psycopg2.extras.register_composite(),
~psycopg2.extras.register_range() with customized :sql:search_path
(:ticket:[#1487](https://github.com/psycopg/psycopg2/issues/1487)).
Handle correctly composite types with names or in schemas requiring escape.
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 conditions of the specified dependency
- `@dependabot ignore major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore ` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the all-dependencies group with 9 updates:
2.0.20
2.0.23
3.0.0rc3
3.0.1
0.28.0
0.29.0
23.9.1
23.11.0
1.5.1
1.7.0
23.1
23.2
1.30.1
1.30.3
2.9.7
2.9.9
7.4.2
7.4.3
Updates
sqlalchemy
from 2.0.20 to 2.0.23Release notes
Sourced from sqlalchemy's releases.
... (truncated)
Commits
Updates
greenlet
from 3.0.0rc3 to 3.0.1Changelog
Sourced from greenlet's changelog.
Commits
77a9a29
Preparing release 3.0.111b1b75
CI: Use 3.12 final instead of -dev.76b4ac0
Wheels: We're forcing the platform tag for universal2, not the api tag (which...4751fbe
Fix #376309575a
Centralize use of psutil.Process.uss; deal gracefully when it is not available.313d06b
Remove test status badge from README. It was confusing.660a66f
Back to development: 3.0.1ef510e4
Preparing release 3.0.08b24b4d
Updating change log.79f6351
Back to development: 3.0.0rc4Updates
asyncpg
from 0.28.0 to 0.29.0Release notes
Sourced from asyncpg's releases.
... (truncated)
Commits
74f3a00
asyncpg v0.29.0d7faaff
fix: allow host tuple (#1021)b2697ff
Add query logging callbacks and context manager (#1043)93a6f79
Cut BaseProtocol circular reference on close. (#1049)ca9f03b
Close cursor portals once the iterator is exhausted (#1088)b7ffab6
Add support for theWHERE
clause incopy_to
methods (#941)70c8bd8
Use cleanup_ctx in pool usage doc (#878)ccc7baf
Small fix for documentation on using SSL in Connection (#995)313b2b2
Use thetimeout
context manager in the connection path (#1087)8b45beb
Update automatic PostGIS type conversion for Shapely 2.0 (#1085)Updates
black
from 23.9.1 to 23.11.0Release notes
Sourced from black's releases.
... (truncated)
Changelog
Sourced from black's changelog.
... (truncated)
Commits
2a1c67e
Prepare release 23.11.0 (#4032)72e7a2e
Remove redundant condition fromhas_magic_trailing_comma
(#4023)1a7d9c2
Preserve visible quote types for f-string debug expressions (#4005)f4c7be5
docs: fix minor typo (#4030)2e4fac9
Apply force exclude logic before symlink resolution (#4015)66008fd
[563] Fix standalone comments inside complex blocks crashing Black (#4016)50ed622
Fix long case blocks not split into multiple lines (#4024)46be1f8
Support formatting specified lines (#4020)ecbd9e8
Fix crash with f-string docstrings (#4019)e808e61
Preview: Keep requiring two empty lines between module-level docstring and fi...Updates
mypy
from 1.5.1 to 1.7.0Changelog
Sourced from mypy's changelog.
... (truncated)
Commits
f6b9972
Remove +dev from version62bcae2
Fix handling of tuple type context with unpacks (#16444)c22294a
Handle TypeVarTupleType when checking overload constraints (#16428)8813968
Fix type narrowing in lambda expressions (#16407)681e54c
Fix crash on unpack call special-casing (#16381)f68f463
Fix file reloading in dmypy with --export-types (#16359)5624f40
Fix daemon crash caused by deleted submodule (#16370)ad0e183
Enable Unpack/TypeVarTuple support (#16354)b064a5c
Fix dmypy inspect on Windows (#16355)4e30e89
Fix dmypy inspect for namespace packages (#16357)Updates
packaging
from 23.1 to 23.2Release notes
Sourced from packaging's releases.
Changelog
Sourced from packaging's changelog.
Commits
b3a5d7d
Bump for released7ce40d
Fix code blocks in CHANGELOG.md (#724)524b701
parse_{sdist,wheel}_filename: don't raise InvalidVersion (#721)b509bef
Typing annotations fixed (#723)0206c39
Bump pip version to avoid known vulnerabilities (#720)7023537
fix: Update copyright date for docs (#713)39786bb
Document use of calendar-based versioning scheme (#717)c1346df
fix: Detect when a platform is 32-bit more accurately (#711)7e68d82
Correct rST syntax in CHANGELOG.rst (#709)61e6efb
Support enriched metadata inpackaging.metadata
(#686)Updates
pg8000
from 1.30.1 to 1.30.3Commits
017959e
Prepare for new released7cc018
Failure when PG dates overflow Python typese5f3cca
More type constants at pg8000.native309bbdd
Add support for lists in literal function753a06f
Dollar-quoting failsc9aba5e
Add example of parameterised JSON queryUpdates
psycopg2
from 2.9.7 to 2.9.9Changelog
Sourced from psycopg2's changelog.
... (truncated)
Commits
ad5bee7
chore: bump version number to 2.9.937d1de1
chore: add support for Python 3.12abf2723
chore: drop support for Python 3.62da65a7
chore: drop leftover Python 2.7 import aliases from setup.py3fa60fd
chore: bump doc requirement complained by dependabot1c1484e
ci: better interaction with scaleway build serverc81cec6
chore: bump to next dev release7fe8cb7
chore: bump docs requirements dependabot complains aboutb39d5d6
chore: bundle libpq 16921510d
docs: replace "compiled against" with "bundled with" in news fileUpdates
pytest
from 7.4.2 to 7.4.3Release notes
Sourced from pytest's releases.
Commits
2390610
Tweak changelog.rsta0714aa
Prepare release version 7.4.344ad1c9
[7.4.x] fix #10447 - consider marks in reverse mro order to give base classes...5dc7725
[7.4.x] Ensure logging tests always cleanup after themselves (#11541)a517827
[7.4.x] Configure ReadTheDocs to fail on warnings (#11540)21fe071
[7.4.x] fix for ValueError raised in faulthandler teardown code (#11455)f8bb857
Force terminal width when running tests (#11425) (#11432)1944dc0
[7.4.x] Fix --import-mode=importlib when root contains__init__.py
file (#1...946634c
Merge pull request #11419 from nicoddemus/backport-11414-to-7.4.xd849a3e
[7.4.x] fix: closes #11343's [attr-defined] type errors (#11421)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