Conversation
This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [google-cloud-spanner](https://redirect.github.com/googleapis/python-spanner) | `==3.50.1` -> `==3.51.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>googleapis/python-spanner (google-cloud-spanner)</summary> ### [`v3.51.0`](https://redirect.github.com/googleapis/python-spanner/blob/HEAD/CHANGELOG.md#3510-2024-12-05) [Compare Source](https://redirect.github.com/googleapis/python-spanner/compare/v3.50.1...v3.51.0) ##### Features - Add connection variable for ignoring transaction warnings ([#​1249](https://redirect.github.com/googleapis/python-spanner/issues/1249)) ([eeb7836](https://redirect.github.com/googleapis/python-spanner/commit/eeb7836b6350aa9626dfb733208e6827d38bb9c9)) - **spanner:** Implement custom tracer_provider injection for opentelemetry traces ([#​1229](https://redirect.github.com/googleapis/python-spanner/issues/1229)) ([6869ed6](https://redirect.github.com/googleapis/python-spanner/commit/6869ed651e41d7a8af046884bc6c792a4177f766)) - Support float32 parameters in dbapi ([#​1245](https://redirect.github.com/googleapis/python-spanner/issues/1245)) ([829b799](https://redirect.github.com/googleapis/python-spanner/commit/829b799e0c9c6da274bf95c272cda564cfdba928)) ##### Bug Fixes - Allow setting connection.read_only to same value ([#​1247](https://redirect.github.com/googleapis/python-spanner/issues/1247)) ([5e8ca94](https://redirect.github.com/googleapis/python-spanner/commit/5e8ca949b583fbcf0b92b42696545973aad8c78f)) - Allow setting staleness to same value in tx ([#​1253](https://redirect.github.com/googleapis/python-spanner/issues/1253)) ([a214885](https://redirect.github.com/googleapis/python-spanner/commit/a214885ed474f3d69875ef580d5f8cbbabe9199a)) - Dbapi raised AttributeError with \[] as arguments ([#​1257](https://redirect.github.com/googleapis/python-spanner/issues/1257)) ([758bf48](https://redirect.github.com/googleapis/python-spanner/commit/758bf4889a7f3346bc8282a3eed47aee43be650c)) ##### Performance Improvements - Optimize ResultSet decoding ([#​1244](https://redirect.github.com/googleapis/python-spanner/issues/1244)) ([ccae6e0](https://redirect.github.com/googleapis/python-spanner/commit/ccae6e0287ba6cf3c14f15a907b2106b11ef1fdc)) - Remove repeated GetSession calls for FixedSizePool ([#​1252](https://redirect.github.com/googleapis/python-spanner/issues/1252)) ([c064815](https://redirect.github.com/googleapis/python-spanner/commit/c064815abaaa4b564edd6f0e365a37e7e839080c)) ##### Documentation - **samples:** Add samples for Cloud Spanner Default Backup Schedules ([#​1238](https://redirect.github.com/googleapis/python-spanner/issues/1238)) ([054a186](https://redirect.github.com/googleapis/python-spanner/commit/054a18658eedc5d4dbecb7508baa3f3d67f5b815)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/googleapis/python-spanner-sqlalchemy). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS40Mi40IiwidXBkYXRlZEluVmVyIjoiMzkuNDIuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
* feat: support float32 Adds support for FLOAT32 columns. Applications should use the SQLAlchemy type REAL to create a FLOAT32 column, as FLOAT is already reserved for FLOAT64. Fixes #409 * chore: run code formatter * fix: remove DOUBLE reference which is SQLAlchemy 2.0-only
* docs: add sample for read-only transactions Adds a sample and documentation for read-only transactions. Fixes #493 * chore: run two read-only transactions in test * chore: remove GetSession requests * chore: remove unused import
Adds tests and samples for executing Partitioned DML using SQLAlchemy. Fixes #496
* docs: add sample for stale reads Adds a sample and tests for executing stale reads on Spanner. Using stale reads can improve performance when the application does not require the guarantees that are given by strong reads. Fixes #495 * chore: remove GetSession requests
* test: add tests for using json array Adds test to verify that using JSON with both an array and a dict work as expected. Fixes #404 * chore: remove GetSession checks in tests --------- Co-authored-by: Sanjeev Bhatt <bhatt4982@gmail.com>
* test: add test with 'roles' table Add a test that verifies that a table with the same name as a system view can be used. * chore: fix linting
Cleans up the Transaction section of the README file a bit.
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Bumps [cryptography](https://github.com/pyca/cryptography) from 44.0.0 to 44.0.1. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](pyca/cryptography@44.0.0...44.0.1) --- updated-dependencies: - dependency-name: cryptography dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [certifi](https://redirect.github.com/certifi/python-certifi) | `==2025.11.12` → `==2026.2.25` |  |  | --- ### Release Notes <details> <summary>certifi/python-certifi (certifi)</summary> ### [`v2026.2.25`](https://redirect.github.com/certifi/python-certifi/compare/2026.01.04...2026.02.25) [Compare Source](https://redirect.github.com/certifi/python-certifi/compare/2026.01.04...2026.02.25) ### [`v2026.1.4`](https://redirect.github.com/certifi/python-certifi/compare/2025.11.12...2026.01.04) [Compare Source](https://redirect.github.com/certifi/python-certifi/compare/2025.11.12...2026.01.04) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/googleapis/python-spanner-sqlalchemy). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40OC4xIiwidXBkYXRlZEluVmVyIjoiNDMuNDguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [packaging](https://redirect.github.com/pypa/packaging) | `==25.0` → `==26.0` |  |  | --- ### Release Notes <details> <summary>pypa/packaging (packaging)</summary> ### [`v26.0`](https://redirect.github.com/pypa/packaging/releases/tag/26.0) [Compare Source](https://redirect.github.com/pypa/packaging/compare/25.0...26.0) Read about the performance improvements here: <https://iscinumpy.dev/post/packaging-faster>. #### What's Changed Features: - PEP 751: support pylock by [@​sbidoul](https://redirect.github.com/sbidoul) in [#​900](https://redirect.github.com/pypa/packaging/pull/900) - PEP 794: import name metadata by [@​brettcannon](https://redirect.github.com/brettcannon) in [#​948](https://redirect.github.com/pypa/packaging/pull/948) - Support writing metadata by [@​henryiii](https://redirect.github.com/henryiii) in [#​846](https://redirect.github.com/pypa/packaging/pull/846) - Support `__replace__` for `Version` by [@​henryiii](https://redirect.github.com/henryiii) in [#​1003](https://redirect.github.com/pypa/packaging/pull/1003) - Support positional pattern matching for `Version` and `Specifier` by [@​henryiii](https://redirect.github.com/henryiii) in [#​1004](https://redirect.github.com/pypa/packaging/pull/1004) Behavior adaptations: - PEP 440 handling of prereleases for `Specifier.contains`, `SpecifierSet.contains`, and `SpecifierSet.filter` by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​897](https://redirect.github.com/pypa/packaging/pull/897) - Handle PEP 440 edge case in `SpecifierSet.filter` by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​942](https://redirect.github.com/pypa/packaging/pull/942) - Adjust arbitrary equality intersection preservation in `SpecifierSet` by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​951](https://redirect.github.com/pypa/packaging/pull/951) - Return `False` instead of raising for `.contains` with invalid version by [@​Liam-DeVoe](https://redirect.github.com/Liam-DeVoe) in [#​932](https://redirect.github.com/pypa/packaging/pull/932) - Support arbitrary equality on arbitrary strings for `Specifier` and `SpecifierSet`'s `filter` and `contains` method. by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​954](https://redirect.github.com/pypa/packaging/pull/954) - Only try to parse as `Version` on certain marker keys, return `False` on unequal ordered comparsions by [@​JP-Ellis](https://redirect.github.com/JP-Ellis) in [#​939](https://redirect.github.com/pypa/packaging/pull/939) Fixes: - Update `_hash` when unpickling `Tag()` by [@​dholth](https://redirect.github.com/dholth) in [#​860](https://redirect.github.com/pypa/packaging/pull/860) - Correct comment and simplify implicit prerelease handling in `Specifier.prereleases` by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​896](https://redirect.github.com/pypa/packaging/pull/896) - Use explicit `_GLibCVersion` `NamedTuple` in `_manylinux` by [@​cthoyt](https://redirect.github.com/cthoyt) in [#​868](https://redirect.github.com/pypa/packaging/pull/868) - Detect invalid license expressions containing `()` by [@​bwoodsend](https://redirect.github.com/bwoodsend) in [#​879](https://redirect.github.com/pypa/packaging/pull/879) - Correct regex for metadata `'name'` format by [@​di](https://redirect.github.com/di) in [#​925](https://redirect.github.com/pypa/packaging/pull/925) - Improve the message around expecting a semicolon by [@​pradyunsg](https://redirect.github.com/pradyunsg) in [#​833](https://redirect.github.com/pypa/packaging/pull/833) - Support nested parens in license expressions by [@​Liam-DeVoe](https://redirect.github.com/Liam-DeVoe) in [#​931](https://redirect.github.com/pypa/packaging/pull/931) - Add space before at symbol in `Requirements` string by [@​henryiii](https://redirect.github.com/henryiii) in [#​953](https://redirect.github.com/pypa/packaging/pull/953) - A root logger use found by ruff LOG, use `packaging` logger instead by [@​henryiii](https://redirect.github.com/henryiii) in [#​965](https://redirect.github.com/pypa/packaging/pull/965) - Better support for subclassing `Marker` and `Requirement` by [@​henryiii](https://redirect.github.com/henryiii) in [#​1022](https://redirect.github.com/pypa/packaging/pull/1022) - Normalize all extras, not just if it comes first by [@​henryiii](https://redirect.github.com/henryiii) in [#​1024](https://redirect.github.com/pypa/packaging/pull/1024) - Don't produce a broken repr if `Marker` fails to construct by [@​henryiii](https://redirect.github.com/henryiii) in [#​1033](https://redirect.github.com/pypa/packaging/pull/1033) Performance: - Avoid recompiling regexes in the tokenizer for a 3x speedup by [@​hauntsaninja](https://redirect.github.com/hauntsaninja) in [#​1019](https://redirect.github.com/pypa/packaging/pull/1019) - Improve performance in `_manylinux.py` by [@​cthoyt](https://redirect.github.com/cthoyt) in [#​869](https://redirect.github.com/pypa/packaging/pull/869) - Minor cleanups to `Version` by [@​bearomorphism](https://redirect.github.com/bearomorphism) in [#​913](https://redirect.github.com/pypa/packaging/pull/913) - Skip redundant creation of `Version`s in specifier comparison by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​986](https://redirect.github.com/pypa/packaging/pull/986) - Cache `Specifier`'s Version by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​985](https://redirect.github.com/pypa/packaging/pull/985) - Make `Version` a little faster by [@​henryiii](https://redirect.github.com/henryiii) in [#​987](https://redirect.github.com/pypa/packaging/pull/987) - Minor `Version` regex cleanup by [@​henryiii](https://redirect.github.com/henryiii) in [#​990](https://redirect.github.com/pypa/packaging/pull/990) - Faster regex on Python 3.11.5+ by [@​henryiii](https://redirect.github.com/henryiii) in [#​988](https://redirect.github.com/pypa/packaging/pull/988) and [#​1055](https://redirect.github.com/pypa/packaging/pull/1055) - Lazily calculate `_key` in `Version` by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​989](https://redirect.github.com/pypa/packaging/pull/989) and regression for `packaging_legacy` fixed by [@​henryiii](https://redirect.github.com/henryiii) in [#​1048](https://redirect.github.com/pypa/packaging/pull/1048) - Faster `canonicalize_version` by [@​henryiii](https://redirect.github.com/henryiii) in [#​993](https://redirect.github.com/pypa/packaging/pull/993) - Use `fullmatch` in a couple more places by [@​henryiii](https://redirect.github.com/henryiii) in [#​992](https://redirect.github.com/pypa/packaging/pull/992) - Use `fullmatch` for markers too by [@​henryiii](https://redirect.github.com/henryiii) in [#​1029](https://redirect.github.com/pypa/packaging/pull/1029) - Use `map` instead of generator by [@​henryiii](https://redirect.github.com/henryiii) in [#​996](https://redirect.github.com/pypa/packaging/pull/996) - Deprecate `._version` (`_Version`, a `NamedTuple`) by [@​henryiii](https://redirect.github.com/henryiii) in [#​995](https://redirect.github.com/pypa/packaging/pull/995) and [#​1062](https://redirect.github.com/pypa/packaging/pull/1062) - Avoid duplicate `Version` creation in `canonicalize_version` by [@​henryiii](https://redirect.github.com/henryiii) in [#​994](https://redirect.github.com/pypa/packaging/pull/994) - Add `__slots__` to `Version` by [@​henryiii](https://redirect.github.com/henryiii) in [#​1001](https://redirect.github.com/pypa/packaging/pull/1001) - Add `__slots__` to `Specifier`s by [@​henryiii](https://redirect.github.com/henryiii) in [#​1002](https://redirect.github.com/pypa/packaging/pull/1002) - Add `__slots__` to `Node`s by [@​henryiii](https://redirect.github.com/henryiii) in [#​1032](https://redirect.github.com/pypa/packaging/pull/1032) - Use `version.__replace__` in specifier comparison by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​999](https://redirect.github.com/pypa/packaging/pull/999) - Use `_get_spec_version` in more places in `Specifier` by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​1005](https://redirect.github.com/pypa/packaging/pull/1005) - Pull `set` construction out of function by [@​henryiii](https://redirect.github.com/henryiii) in [#​1012](https://redirect.github.com/pypa/packaging/pull/1012) - Letter normalization dict for prereleases and the like by [@​henryiii](https://redirect.github.com/henryiii) in [#​1014](https://redirect.github.com/pypa/packaging/pull/1014) - Avoid normalizing extras again when comparing by [@​henryiii](https://redirect.github.com/henryiii) in [#​1028](https://redirect.github.com/pypa/packaging/pull/1028) - Speed up `Version.__str__` by about 10% by [@​henryiii](https://redirect.github.com/henryiii) in [#​997](https://redirect.github.com/pypa/packaging/pull/997) - Increase the performance of `canonicalize_name` by avoiding a regex by [@​henryiii](https://redirect.github.com/henryiii) in [#​1030](https://redirect.github.com/pypa/packaging/pull/1030), [#​1047](https://redirect.github.com/pypa/packaging/pull/1047), and [#​1064](https://redirect.github.com/pypa/packaging/pull/1064) - Faster zero stripping by [@​henryiii](https://redirect.github.com/henryiii) in [#​1058](https://redirect.github.com/pypa/packaging/pull/1058) Type annotations: - Fix a type annotation by [@​brettcannon](https://redirect.github.com/brettcannon) in [#​907](https://redirect.github.com/pypa/packaging/pull/907) - Fix tags return type in `parse_wheel_filename` docs by [@​ncoghlan](https://redirect.github.com/ncoghlan) in [#​973](https://redirect.github.com/pypa/packaging/pull/973) - Add type hint for `_version` in `.version.Version` by [@​brettcannon](https://redirect.github.com/brettcannon) in [#​927](https://redirect.github.com/pypa/packaging/pull/927) - Changed static type annotations in prereleases setter method in `specifier.py` by [@​subhajitsaha01](https://redirect.github.com/subhajitsaha01) in [#​930](https://redirect.github.com/pypa/packaging/pull/930) - Statically type the tests by [@​henryiii](https://redirect.github.com/henryiii) in [#​982](https://redirect.github.com/pypa/packaging/pull/982) Internal: - Test and declare support Python 3.14 by [@​henryiii](https://redirect.github.com/henryiii) in [#​901](https://redirect.github.com/pypa/packaging/pull/901) - Modernize and speed up tests on Python 3.14 by [@​henryiii](https://redirect.github.com/henryiii) in [#​903](https://redirect.github.com/pypa/packaging/pull/903) - Change our license metadata to use an SPDX license expression by [@​cdce8p](https://redirect.github.com/cdce8p) in [#​881](https://redirect.github.com/pypa/packaging/pull/881) - No need for `license-files` by [@​DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos) in [#​924](https://redirect.github.com/pypa/packaging/pull/924) - Update mypy by [@​hauntsaninja](https://redirect.github.com/hauntsaninja) in [#​891](https://redirect.github.com/pypa/packaging/pull/891) - Some config updates by [@​henryiii](https://redirect.github.com/henryiii) in [#​902](https://redirect.github.com/pypa/packaging/pull/902) - Add spell check and rst check by [@​henryiii](https://redirect.github.com/henryiii) in [#​904](https://redirect.github.com/pypa/packaging/pull/904) - Clean up ruff ignores by [@​henryiii](https://redirect.github.com/henryiii) in [#​905](https://redirect.github.com/pypa/packaging/pull/905) - Update example for env marker `python_version` by [@​trim21](https://redirect.github.com/trim21) in [#​908](https://redirect.github.com/pypa/packaging/pull/908) - Move codespell configuration into pyproject.toml by [@​yarikoptic](https://redirect.github.com/yarikoptic) in [#​910](https://redirect.github.com/pypa/packaging/pull/910) - Check warning a little more precisely by [@​henryiii](https://redirect.github.com/henryiii) in [#​837](https://redirect.github.com/pypa/packaging/pull/837) - Speed up mypy a little by [@​henryiii](https://redirect.github.com/henryiii) in [#​836](https://redirect.github.com/pypa/packaging/pull/836) - Apply ruff/flake8-pyi rules (PYI) by [@​DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos) in [#​835](https://redirect.github.com/pypa/packaging/pull/835) - Better local runs for codespell by [@​henryiii](https://redirect.github.com/henryiii) in [#​911](https://redirect.github.com/pypa/packaging/pull/911) - Remove outdated/confusing Gist link by [@​stefan6419846](https://redirect.github.com/stefan6419846) in [#​921](https://redirect.github.com/pypa/packaging/pull/921) - Fix docs and docs ci after [#​897](https://redirect.github.com/pypa/packaging/issues/897) landed by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​926](https://redirect.github.com/pypa/packaging/pull/926) - Run twine-check on push in CI by [@​EpicWink](https://redirect.github.com/EpicWink) in [#​922](https://redirect.github.com/pypa/packaging/pull/922) - `ruff` was renamed `ruff-check` in pre-commit by [@​henryiii](https://redirect.github.com/henryiii) in [#​933](https://redirect.github.com/pypa/packaging/pull/933) - Fix incorrectly implicitly concatenated string in specifiers test by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​946](https://redirect.github.com/pypa/packaging/pull/946) - Simplify conditional by [@​ofek](https://redirect.github.com/ofek) in [#​949](https://redirect.github.com/pypa/packaging/pull/949) - Modernize nox, use dependency-groups for tests by [@​henryiii](https://redirect.github.com/henryiii) in [#​952](https://redirect.github.com/pypa/packaging/pull/952) - Add more checks that don't affect anything by [@​henryiii](https://redirect.github.com/henryiii) in [#​957](https://redirect.github.com/pypa/packaging/pull/957) - Enable Ruff ISC rule by [@​henryiii](https://redirect.github.com/henryiii) in [#​959](https://redirect.github.com/pypa/packaging/pull/959) - Ruff code FLY by [@​henryiii](https://redirect.github.com/henryiii) in [#​963](https://redirect.github.com/pypa/packaging/pull/963) - pytest `log_level` is better than `log_cli_level` by [@​henryiii](https://redirect.github.com/henryiii) in [#​956](https://redirect.github.com/pypa/packaging/pull/956) - Ruff code TRY by [@​henryiii](https://redirect.github.com/henryiii) in [#​961](https://redirect.github.com/pypa/packaging/pull/961) - Add the ruff PL checks by [@​henryiii](https://redirect.github.com/henryiii) in [#​964](https://redirect.github.com/pypa/packaging/pull/964) - Enable Ruff ARG rules by [@​henryiii](https://redirect.github.com/henryiii) in [#​958](https://redirect.github.com/pypa/packaging/pull/958) - Ruff PT code (pytest) by [@​henryiii](https://redirect.github.com/henryiii) in [#​960](https://redirect.github.com/pypa/packaging/pull/960) - Add ruff DTZ by [@​henryiii](https://redirect.github.com/henryiii) in [#​968](https://redirect.github.com/pypa/packaging/pull/968) - Add ruff BLE by [@​henryiii](https://redirect.github.com/henryiii) in [#​967](https://redirect.github.com/pypa/packaging/pull/967) - Add the ruff SIM checks by [@​henryiii](https://redirect.github.com/henryiii) in [#​966](https://redirect.github.com/pypa/packaging/pull/966) - Adding ruff PERF by [@​henryiii](https://redirect.github.com/henryiii) in [#​969](https://redirect.github.com/pypa/packaging/pull/969) - Move some config into coverage config by [@​henryiii](https://redirect.github.com/henryiii) in [#​971](https://redirect.github.com/pypa/packaging/pull/971) - Check ruff C4 by [@​henryiii](https://redirect.github.com/henryiii) in [#​962](https://redirect.github.com/pypa/packaging/pull/962) - Adding ruff T20 by [@​henryiii](https://redirect.github.com/henryiii) in [#​972](https://redirect.github.com/pypa/packaging/pull/972) - Add a tests pass job by [@​henryiii](https://redirect.github.com/henryiii) in [#​977](https://redirect.github.com/pypa/packaging/pull/977) - Add ruff TC by [@​henryiii](https://redirect.github.com/henryiii) in [#​980](https://redirect.github.com/pypa/packaging/pull/980) - Adding part of ruff RET by [@​henryiii](https://redirect.github.com/henryiii) in [#​979](https://redirect.github.com/pypa/packaging/pull/979) - Reorder mypy check by [@​henryiii](https://redirect.github.com/henryiii) in [#​983](https://redirect.github.com/pypa/packaging/pull/983) - Enable ruff ALL by [@​henryiii](https://redirect.github.com/henryiii) in [#​984](https://redirect.github.com/pypa/packaging/pull/984) - Link back to repo/source in furo by [@​henryiii](https://redirect.github.com/henryiii) in [#​991](https://redirect.github.com/pypa/packaging/pull/991) - Add case insensitivity tests for arbitrary equality by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​975](https://redirect.github.com/pypa/packaging/pull/975) - Synchronize documentation and code for markers by [@​zahlman](https://redirect.github.com/zahlman) in [#​1008](https://redirect.github.com/pypa/packaging/pull/1008) - Use `partition` in `_parse_project_urls` by [@​henryiii](https://redirect.github.com/henryiii) in [#​1013](https://redirect.github.com/pypa/packaging/pull/1013) - auto-skip the dependabot PRs in the release changelog generation by [@​henryiii](https://redirect.github.com/henryiii) in [#​1016](https://redirect.github.com/pypa/packaging/pull/1016) - Update unreleased section in changelog by [@​henryiii](https://redirect.github.com/henryiii) in [#​1017](https://redirect.github.com/pypa/packaging/pull/1017) - Fix PR role to match extlinks by [@​hugovk](https://redirect.github.com/hugovk) in [#​1020](https://redirect.github.com/pypa/packaging/pull/1020) - Mention new parts in README by [@​henryiii](https://redirect.github.com/henryiii) in [#​1023](https://redirect.github.com/pypa/packaging/pull/1023) - Replace a couple of asserts with else by [@​henryiii](https://redirect.github.com/henryiii) in [#​1027](https://redirect.github.com/pypa/packaging/pull/1027) - Simplify and/or check a little more by [@​henryiii](https://redirect.github.com/henryiii) in [#​1031](https://redirect.github.com/pypa/packaging/pull/1031) - Use slim runner for all check by [@​henryiii](https://redirect.github.com/henryiii) in [#​1021](https://redirect.github.com/pypa/packaging/pull/1021) - Use typos instead of codespell by [@​henryiii](https://redirect.github.com/henryiii) in [#​1015](https://redirect.github.com/pypa/packaging/pull/1015) - Update changelog with recent additions by [@​henryiii](https://redirect.github.com/henryiii) in [#​1034](https://redirect.github.com/pypa/packaging/pull/1034) - Publish to PyPI via GitHub CI by [@​EpicWink](https://redirect.github.com/EpicWink) in [#​893](https://redirect.github.com/pypa/packaging/pull/893) - Use prek for faster pre-commit lint step by [@​henryiii](https://redirect.github.com/henryiii) in [#​1037](https://redirect.github.com/pypa/packaging/pull/1037) - Add help text to noxfile by [@​henryiii](https://redirect.github.com/henryiii) in [#​1038](https://redirect.github.com/pypa/packaging/pull/1038) - Update licenses to 3.27 by [@​henryiii](https://redirect.github.com/henryiii) in [#​1036](https://redirect.github.com/pypa/packaging/pull/1036) - Use relative import in `packaging.licenses` by [@​notatallshaw](https://redirect.github.com/notatallshaw) in [#​1039](https://redirect.github.com/pypa/packaging/pull/1039) - Add zizmor and tighten up CI by [@​henryiii](https://redirect.github.com/henryiii) in [#​1035](https://redirect.github.com/pypa/packaging/pull/1035) - Fix release script by [@​henryiii](https://redirect.github.com/henryiii) in [#​1040](https://redirect.github.com/pypa/packaging/pull/1040) - Fix using a dev version (again) by [@​henryiii](https://redirect.github.com/henryiii) in [#​1041](https://redirect.github.com/pypa/packaging/pull/1041) - Fix type hint of function used with `contextlib.contextmanager` by [@​SpecLad](https://redirect.github.com/SpecLad) in [#​1046](https://redirect.github.com/pypa/packaging/pull/1046) - Always run tests by [@​henryiii](https://redirect.github.com/henryiii) in [#​1044](https://redirect.github.com/pypa/packaging/pull/1044) - Fix a changelog number by [@​henryiii](https://redirect.github.com/henryiii) in [#​1042](https://redirect.github.com/pypa/packaging/pull/1042) - Fix the publish job by [@​henryiii](https://redirect.github.com/henryiii) in [#​1043](https://redirect.github.com/pypa/packaging/pull/1043) - Get the correct tag on publish by [@​henryiii](https://redirect.github.com/henryiii) in [#​1045](https://redirect.github.com/pypa/packaging/pull/1045) - Test on first public release of CPython 3.11 and newer by [@​henryiii](https://redirect.github.com/henryiii) in [#​1056](https://redirect.github.com/pypa/packaging/pull/1056) - Fix publication job (again) by [@​henryiii](https://redirect.github.com/henryiii) in [#​1051](https://redirect.github.com/pypa/packaging/pull/1051) - Use `actionlint` to check CI workflows by [@​miketheman](https://redirect.github.com/miketheman) in [#​1052](https://redirect.github.com/pypa/packaging/pull/1052) - Fix formatting of distribution types in metadata.rst by [@​brettcannon](https://redirect.github.com/brettcannon) in [#​1053](https://redirect.github.com/pypa/packaging/pull/1053) #### New Contributors - [@​cdce8p](https://redirect.github.com/cdce8p) made their first contribution in [#​881](https://redirect.github.com/pypa/packaging/pull/881) - [@​dholth](https://redirect.github.com/dholth) made their first contribution in [#​860](https://redirect.github.com/pypa/packaging/pull/860) - [@​trim21](https://redirect.github.com/trim21) made their first contribution in [#​908](https://redirect.github.com/pypa/packaging/pull/908) - [@​yarikoptic](https://redirect.github.com/yarikoptic) made their first contribution in [#​910](https://redirect.github.com/pypa/packaging/pull/910) - [@​cthoyt](https://redirect.github.com/cthoyt) made their first contribution in [#​868](https://redirect.github.com/pypa/packaging/pull/868) - [@​bwoodsend](https://redirect.github.com/bwoodsend) made their first contribution in [#​879](https://redirect.github.com/pypa/packaging/pull/879) - [@​stefan6419846](https://redirect.github.com/stefan6419846) made their first contribution in [#​921](https://redirect.github.com/pypa/packaging/pull/921) - [@​bearomorphism](https://redirect.github.com/bearomorphism) made their first contribution in [#​913](https://redirect.github.com/pypa/packaging/pull/913) - [@​EpicWink](https://redirect.github.com/EpicWink) made their first contribution in [#​922](https://redirect.github.com/pypa/packaging/pull/922) - [@​Liam-DeVoe](https://redirect.github.com/Liam-DeVoe) made their first contribution in [#​932](https://redirect.github.com/pypa/packaging/pull/932) - [@​subhajitsaha01](https://redirect.github.com/subhajitsaha01) made their first contribution in [#​930](https://redirect.github.com/pypa/packaging/pull/930) - [@​ncoghlan](https://redirect.github.com/ncoghlan) made their first contribution in [#​973](https://redirect.github.com/pypa/packaging/pull/973) - [@​zahlman](https://redirect.github.com/zahlman) made their first contribution in [#​1008](https://redirect.github.com/pypa/packaging/pull/1008) - [@​JP-Ellis](https://redirect.github.com/JP-Ellis) made their first contribution in [#​939](https://redirect.github.com/pypa/packaging/pull/939) #### Since last RC Fixes: - Restore `._version` as a compat shim by [@​henryiii](https://redirect.github.com/henryiii) in [#​1062](https://redirect.github.com/pypa/packaging/pull/1062) Performance: - Dual replace by [@​henryiii](https://redirect.github.com/henryiii) in [#​1064](https://redirect.github.com/pypa/packaging/pull/1064) Documentaiton: - Prepare for 26.0 final by [@​henryiii](https://redirect.github.com/henryiii) in [#​1063](https://redirect.github.com/pypa/packaging/pull/1063) **Full Changelog**: <pypa/packaging@26.0rc3...26.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/googleapis/python-spanner-sqlalchemy). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40OC4xIiwidXBkYXRlZEluVmVyIjoiNDMuNDguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [opentelemetry-api](https://redirect.github.com/open-telemetry/opentelemetry-python) | `==1.38.0` → `==1.40.0` |  |  | | [opentelemetry-sdk](https://redirect.github.com/open-telemetry/opentelemetry-python) | `==1.38.0` → `==1.40.0` |  |  | --- ### Release Notes <details> <summary>open-telemetry/opentelemetry-python (opentelemetry-api)</summary> ### [`v1.40.0`](https://redirect.github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1400061b0-2026-03-04) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-python/compare/v1.39.1...v1.40.0) - `opentelemetry-sdk`: deprecate `LoggingHandler` in favor of `opentelemetry-instrumentation-logging`, see `opentelemetry-instrumentation-logging` documentation ([#​4919](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4919)) - `opentelemetry-sdk`: Clarify log processor error handling expectations in documentation ([#​4915](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4915)) - bump semantic-conventions to v1.40.0 ([#​4941](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4941)) - Add stale PR GitHub Action ([#​4926](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4926)) - `opentelemetry-sdk`: Drop unused Jaeger exporter environment variables (exporter removed in 1.22.0) ([#​4918](https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4918)) - `opentelemetry-sdk`: Clarify timeout units in environment variable documentation ([#​4906](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4906)) - `opentelemetry-exporter-otlp-proto-grpc`: Fix re-initialization of gRPC channel on UNAVAILABLE error ([#​4825](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4825)) - `opentelemetry-exporter-prometheus`: Fix duplicate HELP/TYPE declarations for metrics with different label sets ([#​4868](https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4868)) - Allow loading all resource detectors by setting `OTEL_EXPERIMENTAL_RESOURCE_DETECTORS` to `*` ([#​4819](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4819)) - `opentelemetry-sdk`: Fix the type hint of the `_metrics_data` property to allow `None` ([#​4837](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4837)). - Regenerate opentelemetry-proto code with v1.9.0 release ([#​4840](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4840)) - Add python 3.14 support ([#​4798](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4798)) - Silence events API warnings for internal users ([#​4847](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4847)) - opentelemetry-sdk: make it possible to override the default processors in the SDK configurator ([#​4806](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4806)) - Prevent possible endless recursion from happening in `SimpleLogRecordProcessor.on_emit`, ([#​4799](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4799)) and ([#​4867](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4867)). - Implement span start/end metrics ([#​4880](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4880)) - Add environment variable carriers to API ([#​4609](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4609)) - Add experimental composable rule based sampler ([#​4882](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4882)) - Make ConcurrentMultiSpanProcessor fork safe ([#​4862](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4862)) - `opentelemetry-exporter-otlp-proto-http`: fix retry logic and error handling for connection failures in trace, metric, and log exporters ([#​4709](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4709)) - `opentelemetry-sdk`: avoid RuntimeError during iteration of view instrument match dictionary in MetricReaderStorage.collect() ([#​4891](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4891)) - Implement experimental TracerConfigurator ([#​4861](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4861)) - `opentelemetry-sdk`: Fix instrument creation race condition ([#​4913](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4913)) - bump semantic-conventions to v1.39.0 ([#​4914](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4914)) - `opentelemetry-sdk`: automatically generate configuration models using OTel config JSON schema ([#​4879](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4879)) ### [`v1.39.1`](https://redirect.github.com/open-telemetry/opentelemetry-python/releases/tag/v1.39.1): Version 1.39.1/0.60b1 [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-python/compare/v1.39.0...v1.39.1) This is a patch release on the previous 1.39.0/0.60b0 release, fixing the issue(s) below. - Silence events API warnings for internal users ([#​4847](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4847)) ### [`v1.39.0`](https://redirect.github.com/open-telemetry/opentelemetry-python/blob/HEAD/CHANGELOG.md#Version-1390060b0-2025-12-03) [Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-python/compare/v1.38.0...v1.39.0) - `opentelemetry-api`: Convert objects of any type other than AnyValue in attributes to string to be exportable ([#​4808](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4808)) - docs: Added sqlcommenter example ([#​4734](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4734)) - build: bump ruff to 0.14.1 ([#​4782](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4782)) - Add `opentelemetry-exporter-credential-provider-gcp` as an optional dependency to `opentelemetry-exporter-otlp-proto-grpc` and `opentelemetry-exporter-otlp-proto-http` ([#​4760](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4760)) - feat: implement on ending in span processor ([#​4775](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4775)) - semantic-conventions: Bump to 1.38.0 ([#​4791](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4791)) - \[BREAKING] Remove LogData and extend SDK LogRecord to have instrumentation scope ([#​4676](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4676)) - \[BREAKING] Rename several classes from Log to LogRecord ([#​4647](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4647)) **Migration Guide:** `LogData` has been removed. Users should update their code as follows: - **For Log Exporters:** Change from `Sequence[LogData]` to `Sequence[ReadableLogRecord]` ```python # Before from opentelemetry.sdk._logs import LogData def export(self, batch: Sequence[LogData]) -> LogRecordExportResult: ... # After from opentelemetry.sdk._logs import ReadableLogRecord def export(self, batch: Sequence[ReadableLogRecord]) -> LogRecordExportResult: ... ``` - **For Log Processors:** Use `ReadWriteLogRecord` for processing, `ReadableLogRecord` for exporting ```python # Before from opentelemetry.sdk._logs import LogData def on_emit(self, log_data: LogData): ... # After from opentelemetry.sdk._logs import ReadWriteLogRecord, ReadableLogRecord def on_emit(self, log_record: ReadWriteLogRecord): # Convert to ReadableLogRecord before exporting readable = ReadableLogRecord( log_record=log_record.log_record, resource=log_record.resource or Resource.create({}), instrumentation_scope=log_record.instrumentation_scope, limits=log_record.limits, ) ... ``` - **Accessing log data:** Use the same attributes on `ReadableLogRecord`/`ReadWriteLogRecord` - `log_record.log_record` - The API LogRecord (contains body, severity, attributes, etc.) - `log_record.resource` - The Resource - `log_record.instrumentation_scope` - The InstrumentationScope (now included, was in LogData before) - `log_record.limits` - The LogRecordLimits - Mark the Events API/SDK as deprecated. The Logs API/SDK should be used instead, an event is now a `LogRecord` with the `event_name` field set ([#​4654](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4654)). - Fix type checking for built-in metric exporters ([#​4820](https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4820)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/googleapis/python-spanner-sqlalchemy). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My40OC4xIiwidXBkYXRlZEluVmVyIjoiNDMuNDguMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> --------- Co-authored-by: Knut Olav Løite <koloite@gmail.com>
…hemy/main' into migration.python-spanner-sqlalchemy.migration.2026-03-09_19-05-52.migrate
Contributor
|
Warning Gemini is experiencing higher than usual traffic and was unable to create the summary. Please try again in a few hours by commenting |
This prevents the sqlalchemy pytest plugin from automatically provisioning a test database connection during unit testing, which was failing due to missing credentials.
This fixes a NoSectionError during pytest's initialization, which occurred after create_test_config.py was removed from the unit test session.
These missing sessions were causing CI pipeline failures. Restored them utilizing the standard monorepo document generation templates.
chalmerlowe
reviewed
Mar 12, 2026
chalmerlowe
reviewed
Mar 12, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See #10954.
This PR should be merged with a merge-commit, not a squash-commit, in order to preserve the git history.