[orm] [performance] [bug] [regression] Adjusted the fix made in #10570, released in 2.0.23, where new
logic was added to reconcile possibly changing bound parameter values
across cache key generations used within the _orm.with_expression()
construct. The new logic changes the approach by which the new bound
parameter values are associated with the statement, avoiding the need to
deep-copy the statement which can result in a significant performance
penalty for very deep / complex SQL constructs. The new approach no longer
requires this deep-copy step.
[orm] [bug] [regression] Fixed regression caused by #9779 where using the "secondary" table
in a relationship and_() expression would fail to be aliased to match
how the "secondary" table normally renders within a
_sql.Select.join() expression, leading to an invalid query.
[engine] [usecase] Added new core execution option
_engine.Connection.execution_options.preserve_rowcount. When
set, the cursor.rowcount attribute from the DBAPI cursor will be
unconditionally memoized at statement execution time, so that whatever
value the DBAPI offers for any kind of statement will be available using
the _engine.CursorResult.rowcount attribute from the
_engine.CursorResult. This allows the rowcount to be accessed for
statments such as INSERT and SELECT, to the degree supported by the DBAPI
in use. The engine_insertmanyvalues also supports this option and
will ensure _engine.CursorResult.rowcount is correctly set for a
bulk INSERT of rows when set.
[asyncio] [bug] An error is raised if a QueuePool or other non-asyncio pool class
is passed to _asyncio.create_async_engine(). This engine only
accepts asyncio-compatible pool classes including
AsyncAdaptedQueuePool. Other pool classes such as
NullPool are compatible with both synchronous and asynchronous
Fixed a bug where comments where mistakenly removed along with redundant parentheses
(#4218)
Preview style
Move the hug_parens_with_braces_and_square_brackets feature to the unstable style
due to an outstanding crash and proposed formatting tweaks (#4198)
Fixed a bug where base expressions caused inconsistent formatting of ** in tenary
expression (#4154)
Checking for newline before adding one on docstring that is almost at the line limit
(#4185)
Remove redundant parentheses in case statement if guards (#4214).
Configuration
Fix issue where Black would ignore input files in the presence of symlinks (#4222)
Black now ignores pyproject.toml that is missing a tool.black section when
discovering project root and configuration. Since Black continues to use version
control as an indicator of project root, this is expected to primarily change behavior
for users in a monorepo setup (desirably). If you wish to preserve previous behavior,
simply add an empty [tool.black] to the previously discovered pyproject.toml
(#4204)
Output
Black will swallow any SyntaxWarnings or DeprecationWarnings produced by the ast
module when performing equivalence checks (#4189)
Integrations
Add a JSONSchema and provide a validate-pyproject entry-point (#4181)
24.1.1
Bugfix release to fix a bug that made Black unusable on certain file systems
with strict limits on path length.
Preview style
Consistently add trailing comma on typed parameters (#4164)
Configuration
Shorten the length of the name of the cache file to fix crashes on file systems that
do not support long paths (#4176)
Fixed a bug where comments where mistakenly removed along with redundant parentheses
(#4218)
Preview style
Move the hug_parens_with_braces_and_square_brackets feature to the unstable style
due to an outstanding crash and proposed formatting tweaks (#4198)
Fixed a bug where base expressions caused inconsistent formatting of ** in tenary
expression (#4154)
Checking for newline before adding one on docstring that is almost at the line limit
(#4185)
Remove redundant parentheses in case statement if guards (#4214).
Configuration
Fix issue where Black would ignore input files in the presence of symlinks (#4222)
Black now ignores pyproject.toml that is missing a tool.black section when
discovering project root and configuration. Since Black continues to use version
control as an indicator of project root, this is expected to primarily change behavior
for users in a monorepo setup (desirably). If you wish to preserve previous behavior,
simply add an empty [tool.black] to the previously discovered pyproject.toml
(#4204)
Output
Black will swallow any SyntaxWarnings or DeprecationWarnings produced by the ast
module when performing equivalence checks (#4189)
Integrations
Add a JSONSchema and provide a validate-pyproject entry-point (#4181)
24.1.1
Bugfix release to fix a bug that made Black unusable on certain file systems with strict
limits on path length.
Preview style
Consistently add trailing comma on typed parameters (#4164)
Configuration
Shorten the length of the name of the cache file to fix crashes on file systems that
do not support long paths (#4176)
- Fix bug that now means the number of parameters cam be as high as an unsigned 16 bit
integer will go.
Version 1.30.4, 2024-01-03
Add support for more range and multirange types.
Make the Connection.parameter_statuses property a dict rather than a dequeue.
Version 1.30.3, 2023-10-31
- Fix problem with PG date overflowing Python types. Now we return the ``str`` we got from the
server if we can't parse it.
Version 1.30.2, 2023-09-17
Bug fix where dollar-quoted string constants weren't supported.
Version 1.30.1, 2023-07-29
- There was a problem uploading the previous version (1.30.0) to PyPI because the
markup of the README.rst was invalid. There's now a step in the automated tests to
check for this.
Version 1.30.0, 2023-07-27
Remove support for Python 3.7
Add a sock keyword parameter for creating a connection from a pre-configured
socket.
#11895: Fix collection on Windows where initial paths contain the short version of a path (for example c:\PROGRA~1\tests).
#11953: Fix an IndexError crash raising from getstatementrange_ast.
#12021: Reverted a fix to [--maxfail]{.title-ref} handling in pytest 8.0.0 because it caused a regression in pytest-xdist whereby session fixture teardowns may get executed multiple times when the max-fails is reached.
8.0.1
pytest 8.0.1 (2024-02-16)
Bug Fixes
#11875: Correctly handle errors from getpass.getuser{.interpreted-text role="func"} in Python 3.13.
#11879: Fix an edge case where ExceptionInfo._stringify_exception could crash pytest.raises{.interpreted-text role="func"}.
#11906: Fix regression with pytest.warns{.interpreted-text role="func"} using custom warning subclasses which have more than one parameter in their [__init__]{.title-ref}.
#11907: Fix a regression in pytest 8.0.0 whereby calling pytest.skip{.interpreted-text role="func"} and similar control-flow exceptions within a pytest.warns(){.interpreted-text role="func"} block would get suppressed instead of propagating.
#11929: Fix a regression in pytest 8.0.0 whereby autouse fixtures defined in a module get ignored by the doctests in the module.
#11937: Fix a regression in pytest 8.0.0 whereby items would be collected in reverse order in some circumstances.
pytest 8.0.0 (2024-01-27)
See 8.0.0rc1 and 8.0.0rc2 for the full changes since pytest 7.4!
Bug Fixes
#11842: Properly escape the reason of a skip <pytest.mark.skip ref>{.interpreted-text role="ref"} mark when writing JUnit XML files.
#11861: Avoid microsecond exceeds 1_000_000 when using log-date-format with %f specifier, which might cause the test suite to crash.
8.0.0rc2
pytest 8.0.0rc2 (2024-01-17)
Improvements
#11233: Improvements to -r for xfailures and xpasses:
Report tracebacks for xfailures when -rx is set.
Report captured output for xpasses when -rX is set.
For xpasses, add - in summary between test name and reason, to match how xfail is displayed.
#11825: The pytest_plugin_registered{.interpreted-text role="hook"} hook has a new plugin_name parameter containing the name by which plugin is registered.
Bug Fixes
#11706: Fix reporting of teardown errors in higher-scoped fixtures when using [--maxfail]{.title-ref} or [--stepwise]{.title-ref}.
Fix typing errors with recent versions of mypy #769
Prevent DeprecationWarning about internal use of asyncio.get_event_loop() from affecting test cases #757
Known issues
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.
Fix typing errors with recent versions of mypy #769
Known issues
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.
pytest-asyncio 0.23.4
0.23.4 (2024-01-28)
pytest-asyncio no longer imports additional, unrelated packages during test collection #729
Addresses further issues that caused an internal pytest error during test collection
pytest-asyncio no longer imports additional, unrelated packages during test collection #729
Addresses further issues that caused an internal pytest error during test collection
Known issues
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.
pytest-asyncio 0.23.4a1
0.23.4 (UNRELEASED)
pytest-asyncio no longer imports additional, unrelated packages during test collection #729
Known issues
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.
pytest-asyncio 0.23.4a0
0.23.4 (UNRELEASED)
pytest-asyncio no longer imports additional, unrelated packages during test collection #729
Known issues
As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see #706). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.
pytest-asyncio 0.23.3
0.23.3 (2024-01-01)
Fixes a bug that caused event loops to be closed prematurely when using async generator fixtures with class scope or wider in a function-scoped test #706
... (truncated)
Commits
3aef605 [build] Update actions/upload-artifact and actions/download-artifact to v4.
4b1908d [fix] Prevent DeprecationWarning from bubbling to user code.
fc6d6cf Fix typing and update to mypy 1.8.0 (#769)
6008cf1 Build(deps): Bump pluggy from 1.3.0 to 1.4.0 in /dependencies/default
712c51b Build(deps): Bump coverage from 7.4.0 to 7.4.1 in /dependencies/default
42fd304 Build(deps): Bump hypothesis in /dependencies/default
a40b4f6 Build(deps): Bump urllib3 from 2.1.0 to 2.2.0 in /dependencies/docs
9d90f8e Build(deps): Bump certifi in /dependencies/docs
fe5da07 Build(deps): Bump markupsafe from 2.1.4 to 2.1.5 in /dependencies/docs
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.23
2.0.28
2.0.1701229837
2.0.1708907391
23.12.1
24.2.0
7.0.1
7.0.2
2023.4.22
2024.3.2
1.30.3
1.30.5
7.4.3
8.0.2
0.23.2
0.23.5
3.0.0
3.1.0
Updates
sqlalchemy
from 2.0.23 to 2.0.28Release notes
Sourced from sqlalchemy's releases.
... (truncated)
Commits
Updates
sqlakeyset
from 2.0.1701229837 to 2.0.1708907391Commits
Updates
black
from 23.12.1 to 24.2.0Release notes
Sourced from black's releases.
... (truncated)
Changelog
Sourced from black's changelog.
... (truncated)
Commits
6fdf8a4
Prepare release 24.2.0 (#4226)8af4394
fix: Don't remove comments along with parens (#4218)35e9776
Bump pre-commit/action from 3.0.0 to 3.0.1 (#4225)23dfc5b
Fix ignoring input files for symlink reasons (#4222)a201003
Simplify check for symlinks that resolve outside root (#4221)dab37a6
Remove redundant parentheses incase
statementif
guards (#4214)32230e6
fix: bug where the doublestar operation had inconsistent formatting. (#4154)7edb50f
fix: additional newline added to docstring when the previous line length is l...3e80de3
Bump furo from 2023.9.10 to 2024.1.29 in /docs (#4211)a08b480
Bump pypa/cibuildwheel from 2.16.4 to 2.16.5 (#4212)Updates
importlib-metadata
from 7.0.1 to 7.0.2Changelog
Sourced from importlib-metadata's changelog.
Commits
913352a
Finalize26b22b8
Merge pull request #483 from Danyal-Faheem/add-types-for-untyped-methods9d4908e
🧎‍♀️ Genuflect to the types.fd3a0ab
Re-order imports for consistency.0ae1d24
Merge https://github.com/jaraco/skeleton55a55ea
Fix docs error due to duplicate explicit target name.79521e1
Moved example sources to the tests/data directory, avoiding build issues.9f2d682
đź‘ą Feed the hobgoblins (delint).b434f69
Use 'extend-select' to avoid disabling the default config. Ref jaraco/skeleto...d1c5444
Enable complexity check and pycodestyle warnings. Closes jaraco/skeleton#110.Updates
nox
from 2023.4.22 to 2024.3.2Release notes
Sourced from nox's releases.
... (truncated)
Changelog
Sourced from nox's changelog.
... (truncated)
Commits
4c8e891
Release 2024.03.02 (#789)d862350
feat: venv backend fallback (#787)1c6af24
fix: warn user when first argument to session.run is a list (#786)d59e1ac
fix: rebuild env if making an incompatible change (#781)ff259ce
chore(deps): bump the actions group with 2 updates (#784)93bacbd
Allow configuringdefault_venv_backend
with an environment variable (#780)5a097cd
feat: support for reuse_venv option (#730)55e09cd
fix: always pull versions from metadata (#782)c248a76
chore: cleanup Ruff a bit (#783)1fe4437
feat: add a uv backend (#762)Updates
pg8000
from 1.30.3 to 1.30.5Changelog
Sourced from pg8000's changelog.
... (truncated)
Commits
bf16ea5
Prepare for new release4ef917e
Use unsigned 16 bit integer in protocol7d0cdde
Move sections from readme to a separate pagef6f416c
Prepare for new release8adb556
Add support for more range and multirange types796cd01
Make Connection.parameter_statuses a dicta93944e
Fix doctest for PostgreSQL 15+433e01f
Fix doctest problem with IDENTIFY_SYSTEM commanda2dc1e8
Fix copy tests for PostgreSQL 16c662f40
PostgreSQL versions: add 16, drop 11Updates
pytest
from 7.4.3 to 8.0.2Release notes
Sourced from pytest's releases.
... (truncated)
Commits
31afeeb
Prepare release version 8.0.21b00a2f
Merge pull request #12025 from pytest-dev/backport-12022-to-8.0.xff2f66d
[8.0.x] Revert "Fix teardown error reporting when--maxfail=1
(#11721)"8a8eed6
[8.0.x] Fix collection of short paths on Windows (#12024)74346f0
[8.0.x] Allow Sphinx 7.x (#12005)b7657b4
[8.0.x] Disallow Sphinx 6 and 7 (#12001)feb7c5e
Merge pull request #11999 from pytest-dev/backport-11996-to-8.0.x0909655
[8.0.x] code: fixIndexError
crash ingetstatementrange_ast
68524d4
Merge pull request #11993 from pytest-dev/release-8.0.1d7d320a
Prepare release version 8.0.1Updates
pytest-asyncio
from 0.23.2 to 0.23.5Release notes
Sourced from pytest-asyncio's releases.
... (truncated)
Commits
3aef605
[build] Update actions/upload-artifact and actions/download-artifact to v4.4b1908d
[fix] Prevent DeprecationWarning from bubbling to user code.fc6d6cf
Fix typing and update to mypy 1.8.0 (#769)6008cf1
Build(deps): Bump pluggy from 1.3.0 to 1.4.0 in /dependencies/default712c51b
Build(deps): Bump coverage from 7.4.0 to 7.4.1 in /dependencies/default42fd304
Build(deps): Bump hypothesis in /dependencies/defaulta40b4f6
Build(deps): Bump urllib3 from 2.1.0 to 2.2.0 in /dependencies/docs9d90f8e
Build(deps): Bump certifi in /dependencies/docsfe5da07
Build(deps): Bump markupsafe from 2.1.4 to 2.1.5 in /dependencies/docs42b140d
fix compatibility with pytest ^8 (#776)Updates
pytest-mypy-plugins
from 3.0.0 to 3.1.0Release notes
Sourced from pytest-mypy-plugins's releases.
Changelog
Sourced from pytest-mypy-plugins's changelog.
Commits
2b79a71
Version 3.1.0 release (#140)0c2163e
Update flush_errors to support different versions of mypy (#139)c92accd
Bump actions/setup-python from 4 to 5 (#136)97aff1e
Test inline mypy configuration with more stable mypy option (#138)c80f1eb
Fix "FileNotFoundError" due to "schema.json" not installed (#132)0e7104e
Ease testing of local stubs by extending "MYPYPATH" (#130)b499462
README.md:mypy_config
typo (#128)e7e1a0f
Validatepytest-mypy-plugins
input file schema (#127)cf14d31
Bump actions/checkout from 3 to 4 (#125)64b3a49
Skip templatingmypy_config
if no placeholders exist (#124)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