[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
Use external pip if available instead of installing, speeds up environment setup with virtualenv slightly and venv significantly. (PR #736)
Stopped injecting wheel as a build dependency automatically, in the case of missing pyproject.toml -- by @webknjaz. (PR #716)
Use importlib_metadata on Python <3.10.2 for bugfixes not present in those CPython standard libraries (not required when bootstrapping) -- by @GianlucaFicarelli. (PR #693, fixes issue #692)
Fixed invoking outer pip from user site packages
(PR :pr:746, fixes issue :issue:745)
Corrected the minimum pip version required to use an outer pip
(PR :pr:746, fixes issue :issue:745)
1.1.0 (2024-02-29)
Use external pip if available instead of installing, speeds up environment
setup with virtualenv slightly and venv significantly.
(PR :pr:736)
Stopped injecting wheel as a build dependency automatically, in the
case of missing pyproject.toml -- by :user:webknjaz.
(PR :pr:716)
Use importlib_metadata on Python <3.10.2 for bugfixes not present in
those CPython standard libraries (not required when bootstrapping) -- by
:user:GianlucaFicarelli.
(PR :pr:693, fixes issue :issue:692)
- Add request correlation ID support ([#101](https://github.com/mozilla-services/python-dockerflow/issues/101)).
In order to add a ``rid`` field to all log messages, add the ``dockerflow.logging.RequestIdLogFilter`` filter to your logging handlers.
See: :ref:`Django <django-logging>`, :ref:`FastAPI <fastapi-logging>`, :ref:`Flask <flask-logging>`, :ref:`Sanic <sanic-logging>` for details.
This release of the Python agent no longer reports attributes with None values and attaches a transaction trace ID to the error traces even when Distributed Tracing is not enabled.
Previously, the agent recorded attributes with a value of None type as the string "None". Now, the agent no longer records user or agent attributes that have None type values.
Bug fixes
Add transaction trace ID to the error traces even when Distributed Tracing is not enabled
Previously, certain trace attributes in error traces such as stack traces were only visible in the UI if Distributed Tracing was enabled. Linking the transaction trace to error traces by including the transaction trace id on the error traces allows the user to have access to the transaction trace attributes in the UI.
Support statement
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Python agent EOL policy for information about agent releases and support dates.
Commits
56fbda1 Merge pull request #1064 from newrelic/drop-none-attrs
Made all dateutil submodules lazily imported using PEP 562. On Python 3.7+, things like import dateutil; dateutil.tz.gettz("America/New_York") will now work without explicitly importing dateutil.tz, with the import occurring behind the scenes on first use. The old behavior remains on Python 3.6 and earlier. Fixed by Orson Adams. (gh issue #771, gh pr #1007)
Bugfixes
Removed a call to datetime.utcfromtimestamp, which is deprecated as of Python 3.12. Reported by Hugo van Kemenade (gh pr #1284), fixed by Thomas Grainger (gh pr #1285).
Documentation changes
Added note into docs and tests where relativedelta would return last day of the month only if the same day on a different month resolves to a date that doesn't exist. Reported by @hawkEye-01 (gh issue #1167). Fixed by @Mifrill (gh pr #1168)
Made all dateutil submodules lazily imported using PEP 562 <https://www.python.org/dev/peps/pep-0562/>_. On Python 3.7+, things like
import dateutil; dateutil.tz.gettz("America/New_York") will now work
without explicitly importing dateutil.tz, with the import occurring behind
the scenes on first use. The old behavior remains on Python 3.6 and earlier.
Fixed by Orson Adams. (gh issue #771, gh pr #1007)
Bugfixes
Removed a call to datetime.utcfromtimestamp, which is deprecated as of Python 3.12. Reported by Hugo van Kemenade (gh pr #1284), fixed by Thomas Grainger (gh pr #1285).
Documentation changes
Added note into docs and tests where relativedelta would return last day of the month
only if the same day on a different month resolves to a date that doesn't exist.
Reported by @hawkEye-01 (gh issue #1167). Fixed by @Mifrill (gh pr #1168)
Commits
1ae8077 Merge pull request #1346 from pganssle/release_2.9.0.post0
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 minor-patch group with 7 updates:
2.0.25
2.0.28
1.0.3
1.1.1
2024.1.0
2024.3.0
9.6.0
9.7.0
2.8.2
2.9.0.post0
1.14
1.16
0.2.2
0.3.0
Updates
sqlalchemy
from 2.0.25 to 2.0.28Release notes
Sourced from sqlalchemy's releases.
... (truncated)
Commits
Updates
build
from 1.0.3 to 1.1.1Release notes
Sourced from build's releases.
Changelog
Sourced from build's changelog.
Commits
b36126a
release 1.1.19588222
env: fix global pip (#746)da06973
chore: prepare for 1.1.0 (#744)42231a7
compat: create separate importlib, tarfile and tomllib shims894998a
chore: address feedbackaa0aa04
fix(types): make the passthrough generalaf5ff53
feat: use external pip if available9ceb49d
build(deps): bump the actions group with 1 update (#739)ac57b94
refactor: pull out pip checks (#735)e6969d1
pre-commit: bump repositories (#734)Updates
dockerflow
from 2024.1.0 to 2024.3.0Release notes
Sourced from dockerflow's releases.
Changelog
Sourced from dockerflow's changelog.
Commits
b98b4ff
Update changelog 2024.3.0a953916
Generalize usage of request correlation id to all integrations (#101)6a6c78a
Github Action status for each tox combination (#102)6b9e191
Useruff
instead of flake8 and black (#96)4bad625
(fastapi) Log request ID when set in headers (#100)c939637
Fix docs about heartbeat status on warnings (200, not 5XX) (#99)e695de7
Configurable status for failed heartbeat (#98)39ea4e4
Add querystring to MozLog"request.summary"
(#97)2ba0254
Align upload/download artifacts actions versions6aaf5c1
Do not restrict FastAPI testing to 0.100 onlyUpdates
newrelic
from 9.6.0 to 9.7.0Release notes
Sourced from newrelic's releases.
Commits
56fbda1
Merge pull request #1064 from newrelic/drop-none-attrs5bbf0dc
Fix loguru test2755208
Summarize agent spec quoteac17284
Fixup formatting of blank linesee87f7a
Remove log context attr=None tests0337ab6
Add description of create_agent_attributes5bb045b
Replace create_user_attributes w/create_attributes62b1bc0
Only add attr if key is not None22acf04
Remove unused importsa57f789
Drop None type attributesUpdates
python-dateutil
from 2.8.2 to 2.9.0.post0Release notes
Sourced from python-dateutil's releases.
Changelog
Sourced from python-dateutil's changelog.
Commits
1ae8077
Merge pull request #1346 from pganssle/release_2.9.0.post0ee6de9d
Update news to prepare for release9780d32
Pinsetuptools_scm
to <8db9d018
Merge pull request #1343 from pganssle/release_2.9.0423ca2f
Run updatezinfo before buildedd3fd4
Update NEWS filefe02d02
Run towncrier with Python 3.119c7524a
Fix MANIFEST.in pattern6de58f5
Update classifiers to include Python 3.128fe0cab
Merge pull request #1342 from pganssle/update_zoneinfoUpdates
python-rapidjson
from 1.14 to 1.16Changelog
Sourced from python-rapidjson's changelog.
Commits
018fe4a
Release 1.160da1259
Update CHANGES.rst32df22d
Revert "Stop producing binary wheels for Python 3.8"95f68b3
There's something silly going on GH Action...af3c8c7
Release 1.15233f928
Update CHANGES.rst4ca5fed
Attempt to turn a crash into a proper exception65a507f
Drop support for Pythons older than 3.513c1736
Re-try uploading wheels only on new git tag0622101
Use cibuildwheel 2.16.5Updates
ruff
from 0.2.2 to 0.3.0Release notes
Sourced from ruff's releases.
... (truncated)
Changelog
Sourced from ruff's changelog.
... (truncated)
Commits
b53118e
Bump version to v0.3.0 (#10151)52f4c1e
Remove deprecated CLI option--format
(#10170)eceffe7
Deprecateruff \<path>
ruff --explain
,ruff --clean
and `ruff --generate...c73c497
[pydocstyle
] Trim whitespace when removing blank lines after section (`D413...c9c98c4
Fix mkdocs local link (#10167)72ccb34
Fix ecosystem check for indico (#10164)dcc92f5
Update black tests (#10166)a6f32dd
Ruff 2024.2 style (#9639)0293908
Implement RUF028 to detect useless formatter suppression comments (#9899)36bc725
[flake8-bugbear
] Avoid adding default initializers to stubs (B006
) (#10152)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