Bump the uv-dependencies group across 1 directory with 15 updates
Bumps the uv-dependencies group with 15 updates in the / directory:
| Package | From | To |
|---|---|---|
| biopython | 1.85 |
1.86 |
| django-anymail | 10.0 |
13.1 |
| django-crispy-forms | 1.13.0 |
2.4 |
| django-reversion-compare | 0.19.0 |
0.19.1 |
| django | 5.2.7 |
5.2.8 |
| drf-spectacular | 0.28.0 |
0.29.0 |
| google-auth | 2.41.1 |
2.42.1 |
| numpy | 2.2.6 |
2.3.4 |
| django-structlog | 9.1.1 |
10.0.0 |
| scout-apm | 3.4.0 |
3.5.0 |
| structlog | 25.4.0 |
25.5.0 |
| djangorestframework-stubs | 3.16.4 |
3.16.5 |
| ipython | 9.6.0 |
9.7.0 |
| prek | 0.2.11 |
0.2.13 |
| ruff | 0.14.1 |
0.14.3 |
Updates biopython from 1.85 to 1.86
Changelog
Sourced from biopython's changelog.
28 October 2025: Biopython 1.86
This release of Biopython supports Python 3.10, 3.11, 3.12, 3.13 and 3.14. It has also been tested on PyPy3.10 v7.3.19.
Bio.SearchIOnow supports parsing the tabular and plain text output ofInfernal <http://eddylab.org/infernal/>(v1.0.0+) RNA search tool. The format names areinfernal-tabandinfernal-text.The default value of the gap score of a
PairwiseAlignerobject was changed in this release. Previously, for consistency withBio.pairwise2, the default value for gap score was 0. However, this means that a mismatch, an insertion followed by a deletion, and a deletion followed by an insertion all get assigned a score of 0. The aligner then finds a large number of alignments that are logically the same, but have trivial differences between them. For example, aligning AAACAAA to AAAGAAA previously yielded the following three alignments, all with score 6::AAACAAA AAAC-AAA AAA-CAAA AAAGAAA AAA-GAAA AAAG-AAAWith the new default parameter for the gap score, only the first alignment is returned.
Bio.PDB.PDBIOnow ensures that b-factor values are always at most 6 characters to ensure that we do not violate the wwPDB specification. This should not have an impact on the majority of uses, as b-factor values are generally small (less than 100). When 1000 <= b-factor < 10_000, the value is rounded to a single decimal place. When, 10_000 <= b-factor < 999_999, the value is rounded to zero decimal places. Values above 999_999 are now clamped. The justification for this is the rise in the b-factor field being used for additional metadata, typically from computational tools.
Bio.Alignnow provides a methodAlignment.from_alignments_with_same_referenceto construct a multiple sequence alignment from a collection of alignments that share the same reference sequence.
Bio.PDB.PDBIOwill now raise module specific warnings:Bio.PDB.PDBExceptions.PDBIOWarning.
Bio.PDB.SCADIOnow supports object selection by color in the OpenSCAD output file. This enables generation of separate STL files for each color for printing protein structures on multi-material 3D printers.The
iplotxlibrary is mentioned in the Tutorial as an option to visualise trees using complex style options.Many thanks to the Biopython developers and community for making this release possible, especially the following contributors:
... (truncated)
Commits
- See full diff in compare view
Updates django-anymail from 10.0 to 13.1
Release notes
Sourced from django-anymail's releases.
v13.1
v13.0.1
v13.0
v12.0
v11.1
v11.0.1
(This release is solely to update documentation and metadata. Code is identical to v11.0.)
v11.0
- Breaking changes for Amazon SES; SparkPost (with
template_id)- New
merge_headersfeature- And more…
Please check the changelog
v10.3
v10.2
v10.1
Changelog
Sourced from django-anymail's changelog.
v13.1
2025-09-03
Features
* **Scaleway:** Add support for this ESP. (See `docs <https://anymail.dev/en/stable/esps/scaleway/>`__. Thanks to `@hleroy`_ for the contribution.)
- SendGrid: Add optional signature verification for tracking webhooks. To support this, Anymail now includes the :pypi:
cryptographypackage when installed with thedjango-anymail[sendgrid]extra. (Thanks to@blag_ for contributing this improvement. Note this was tested against SendGrid's live API by its contributor at the time it was added, but cannot be independently verified by Anymail's maintainers as weno longer have access <https://github.com/anymail/django-anymail/issues/432>__ to a SendGrid test account.)v13.0.1
2025-07-25
Breaking changes (external)
- SendGrid: Anymail no longer officially supports SendGrid, because we are unable to test it. Although it will probably keep working, you'll get warnings about this change in status. See
Dropping support for SendGrid <https://github.com/anymail/django-anymail/issues/432>__ for details and actions SendGrid customers can take. (Since this breaking change is due to external causes and impacts SendGrid users on all versions of Anymail, it is being handled as a minor patch release rather than a semver major version change.)Fixes
* **Amazon SES:** Require boto3 1.24.6 or later to ensure support for the SESv2 close method. (Thanks to `@mgibeau`_ for identifying the issue.)v13.0
2025-04-03 </tr></table>
... (truncated)
Commits
74b5e25Release 13.112f2032Scaleway: cleanup and enable integration tests8be0aaaReadme: fix test status badges90367b3Scaleway: new ESP4b2d6f8SendGrid: Add optional webhook signature verificationb8a5ee8CI: fix typo in release.yml30c6130Release 13.0.16b27bd9CI: fix outdated Django 5.2 alpha referencedfa4ce0SendGrid: change to "unsupported" statusc29c993Fix lint- Additional commits viewable in compare view
Updates django-crispy-forms from 1.13.0 to 2.4
Release notes
Sourced from django-crispy-forms's releases.
2.4
- Added support for Python 3.13.
- Confirmed support for Django 5.2.
2.3
What's Changed
- Fixed unexpected addition the 'active' css_class to AccordionGroup
2.2
- Added support for Django 5.1.
- Allowed pass through of context when rendering a Fieldset layout object.
Full Changelog: https://github.com/django-crispy-forms/django-crispy-forms/compare/2.1...2.2
2.1
What's Changed
- Added support for Django 5.0.
- Dropped support for Django 3.2, 4.0 and 4.1.
- Added support for Python 3.12.
- Dropped support for Python 3.7.
New Contributors
@DanielSwainmade their first contribution in django-crispy-forms/django-crispy-forms#1340@sankarebarrimade their first contribution in django-crispy-forms/django-crispy-forms#1342@foarsittermade their first contribution in django-crispy-forms/django-crispy-forms#1353Full Changelog: https://github.com/django-crispy-forms/django-crispy-forms/compare/2.0...2.1
2.0 (2023-02-13)
Major Changes and Migration Guide
Removed all Bootstrap template packs. These template packs are now available as standalone packages. To upgrade, install the required template pack and add it to your
INSTALLED_APPSsetting.Also, support for Bootstrap 5 is provided by a 3rd party package under the
django-crispy-formsorganisation at crispy-bootstrap5.Removed uni-form template pack. Uni-Form specific classes previously added to every template pack e.g.
textInputare now removed. If you require these classes, the previous behaviour can be restored by adding the following to CRISPY_CLASS_CONVERTERS in your settings file.converters = {
... (truncated)
Changelog
Sourced from django-crispy-forms's changelog.
2.4 (2025-04-13)
- Added support for Python 3.13.
- Confirmed support for Django 5.2.
2.3 (2024-07-19)
- Fixed a bug in
AccordionGrouprendering then it gets an unexpected css classactive.2.2 (2024-06-15)
- Added support for Django 5.1.
- Allowed pass through of context when rendering a
Fieldsetlayout object.2.1 (2023-10-15)
- Added support for Django 5.0.
- Dropped support for Django 3.2, 4.0 and 4.1.
- Added support for Python 3.12.
- Dropped support for Python 3.7.
See the 2.1 Milestone for the full change list.
2.0 (2023-02-13)
Release of django-crispy-forms 2.0. No changes introduced since 2.0a1.
2.0a1 (2023-01-18)
Major Changes and Migration Guide
Removed all Bootstrap template packs. These template packs are now available as standalone packages. To upgrade, install the required template pack and add it to your
INSTALLED_APPSsetting.Also, support for Bootstrap 5 is provided by a 3rd party package under the
django-crispy-formsorganisation at crispy-bootstrap5.Removed uni-form template pack. Uni-Form specific classes previously added to every template pack e.g.
textInputare now removed. If you require these classes, the previous behaviour can be restored by adding the following to CRISPY_CLASS_CONVERTERS in your settings file.converters = { "textinput": "textinput textInput", "fileinput": "fileinput fileUpload", "passwordinput": "textinput textInput", }The
uni-formtemplate pack allowed for rendering of templates using adefaultorinlinelayout. As theuni-formtemplate pack has been removed support for this has also been removed. This has resulted in the following BREAKING changes.
... (truncated)
Commits
b3f1d222.4 Release. (#1412)ac2479eUpdate GitHub action versions in workflows. (#1411)bb7030aConfirmed Django 5.2 support. (#1407)a4fb3c7Pre-commit autoupdate. (#1404)e7cc89aAdded Python 3.13 support. (#1403)e07622dVersion 2.3. (#1396)64f4b21Fixed unexpected addition the 'active' css_class to AccordionGroup (#1394)4f454cdVersion 2.2. (#1392)086afbbFix documentation ofField's constructor (#1375)f9d67d3Allowed pass through of context when rendering aFieldsetlayout object. ...- Additional commits viewable in compare view
Updates django-reversion-compare from 0.19.0 to 0.19.1
Commits
0ca5544Merge pull request #265 from jedie/update677a7b4Apply manageprojects updates + update requirements- See full diff in compare view
Updates django from 5.2.7 to 5.2.8
Commits
47fe39a[5.2.x] Bumped version for 5.2.8 release.ac9fcf6[5.2.x] Refs CVE-2025-64459 -- Avoided propagating invalid arguments to Q on ...6703f36[5.2.x] Fixed CVE-2025-64459 -- Prevented SQL injections in Q/QuerySet via th...4f5d904[5.2.x] Fixed CVE-2025-64458 -- Mitigated potential DoS in HttpResponseRedire...cbdf128[5.2.x] Fixed #36704 -- Fixed system check error for proxy model with a compo...6775888[5.2.x] Fixed #36696 -- Fixed NameError when inspecting functions with deferr...d5dfffa[5.2.x] Added stub release notes and release date for 5.2.8, 5.1.14, and 4.2.26.368f955[5.2.x] Fixed #36681 -- Removed English pluralization bias from example in do...71267c9[5.2.x] Fixed #35095 -- Clarified Swiss number formatting in docs/topics/i18n...9b37bd5[5.2.x] Made RemoteTestResultTest.test_pickle_errors_detection() compatible w...- Additional commits viewable in compare view
Updates drf-spectacular from 0.28.0 to 0.29.0
Release notes
Sourced from drf-spectacular's releases.
0.29.0
Thank you for all the patience with the release!
Important notes
- Finally fixed the memory leak thanks to
@artKucher.- Another performance improvement is the usage of the C versions of yaml, if available.
- Apart from that, there are a lot of small improvements and bugfixes.
PRs
- Link to
SerializerMethoddocs by@johnthagenin tfranzel/drf-spectacular#1377- Document Django 5.1 support in README by
@johnthagenin tfranzel/drf-spectacular#1376- Bump django from 4.2.11 to 4.2.18 in /requirements by
@dependabot[bot] in tfranzel/drf-spectacular#1366- Document how to lazily annotate a recursive SerializerMethod by
@johnthagenin tfranzel/drf-spectacular#1384- Fix docs compile issue and update some old code by
@mikemangerin tfranzel/drf-spectacular#1389- Add allauth's DRF token auth #1401 by
@tfranzelin tfranzel/drf-spectacular#1404- Bump django from 4.2.18 to 4.2.20 in /requirements by
@dependabot[bot] in tfranzel/drf-spectacular#1403- Allow setting callable for ENUM_NAME_OVERRIDES by
@q0win tfranzel/drf-spectacular#1406- fix: correct port mapping for the container in README by
@mbienkowskin tfranzel/drf-spectacular#1408- Fix python 3.11 slice index by
@yegorLitvinovin tfranzel/drf-spectacular#1411- Add Django REST framework 3.16 support by
@pauloxnetin tfranzel/drf-spectacular#1420- fixes prefix estimation on windows by
@originellin tfranzel/drf-spectacular#1440- Bump django from 4.2.20 to 4.2.24 in /requirements by
@dependabot[bot] in tfranzel/drf-spectacular#1451- fix: sort list to produce same hash by
@florianvazellein tfranzel/drf-spectacular#1433- Add typing.Generic to default lib_doc_excludes by
@maxhowaldin tfranzel/drf-spectacular#1429- Fix DecimalField with decimal_places and max_digits equal. by
@keter2002in tfranzel/drf-spectacular#1457- Fix default for array types by
@TheSuperiorStanislavin tfranzel/drf-spectacular#1437- Bump django from 4.2.24 to 4.2.25 in /requirements by
@dependabot[bot] in tfranzel/drf-spectacular#1458- Fix
OpenApiViewExtensionnot providing view instance underself.targetby@astro-stanin tfranzel/drf-spectacular#1405- Enhance bug report template with instructions for better clarity. by
@Antoliny0919in tfranzel/drf-spectacular#1357- Add option to overwrite serializer description #1463 by
@tfranzelin tfranzel/drf-spectacular#1464- Improve to_filter_name support for django_filter by
@matweyin tfranzel/drf-spectacular#1446- fix: camelize tuples/fixed length array by
@CharStringin tfranzel/drf-spectacular#1432- Fix memory leak by
@artKucherin tfranzel/drf-spectacular#1416- fix: add check condition, that serializer meta has model attribute by
@kritohanzoin tfranzel/drf-spectacular#1397- [django-filter] Add null_label if set in ChoiceFilter by
@epouin tfranzel/drf-spectacular#1450- Add l18n handling for Decimal field #1466 by
@tfranzelin tfranzel/drf-spectacular#1467New Contributors
@mikemangermade their first contribution in tfranzel/drf-spectacular#1389@mbienkowskmade their first contribution in tfranzel/drf-spectacular#1408@yegorLitvinovmade their first contribution in tfranzel/drf-spectacular#1411@pauloxnetmade their first contribution in tfranzel/drf-spectacular#1420@originellmade their first contribution in tfranzel/drf-spectacular#1440@florianvazellemade their first contribution in tfranzel/drf-spectacular#1433@maxhowaldmade their first contribution in tfranzel/drf-spectacular#1429@keter2002made their first contribution in tfranzel/drf-spectacular#1457@TheSuperiorStanislavmade their first contribution in tfranzel/drf-spectacular#1437@astro-stanmade their first contribution in tfranzel/drf-spectacular#1405
... (truncated)
Changelog
Sourced from drf-spectacular's changelog.
0.29.0 (2025-11-01)
- Add l18n handling for Decimal field
[#1466](https://github.com/tfranzel/drf-spectacular/issues/1466) <https://github.com/tfranzel/drf-spectacular/issues/1466>_- Fix LogoutSerializer for JWT/dj_rest_auth
[#1392](https://github.com/tfranzel/drf-spectacular/issues/1392) <https://github.com/tfranzel/drf-spectacular/issues/1392>_- fix: support token blacklist feature in rest_auth [Bart van Andel]
- [django-filter] Add null_label if set in ChoiceFilter (
[#1450](https://github.com/tfranzel/drf-spectacular/issues/1450) <https://github.com/tfranzel/drf-spectacular/issues/1450>_) [Enric Pou]- fix: camelize tuples/fixed length array (
[#1432](https://github.com/tfranzel/drf-spectacular/issues/1432) <https://github.com/tfranzel/drf-spectacular/issues/1432>_) [Chris Wesseling]- Fix items:False case in enum hook
[#1432](https://github.com/tfranzel/drf-spectacular/issues/1432) <https://github.com/tfranzel/drf-spectacular/issues/1432>_- Add option to overwrite serializer description
[#1463](https://github.com/tfranzel/drf-spectacular/issues/1463) <https://github.com/tfranzel/drf-spectacular/issues/1463>_- Fix
OpenApiViewExtensionnot providing view instance underself.target([#1405](https://github.com/tfranzel/drf-spectacular/issues/1405) <https://github.com/tfranzel/drf-spectacular/issues/1405>_) [astro-stan]- Move list default fix to source of the problem
[#1436](https://github.com/tfranzel/drf-spectacular/issues/1436) <https://github.com/tfranzel/drf-spectacular/issues/1436>_- Improve confusing doc
[#1461](https://github.com/tfranzel/drf-spectacular/issues/1461) <https://github.com/tfranzel/drf-spectacular/issues/1461>_- Add assert to pagination test
[#1459](https://github.com/tfranzel/drf-spectacular/issues/1459) <https://github.com/tfranzel/drf-spectacular/issues/1459>_- fix SafeString handling for picky CDumper (
[#1435](https://github.com/tfranzel/drf-spectacular/issues/1435) <https://github.com/tfranzel/drf-spectacular/issues/1435>_)- Remove EOL 3.7 from suite; pydantic not updated for <=3.8
- Fix DecimalField with decimal_places and max_digits equal. [keter2002]
- fix test for i18n changes on DRF (
[#1444](https://github.com/tfranzel/drf-spectacular/issues/1444) <https://github.com/tfranzel/drf-spectacular/issues/1444>_)- Improve to_filter_name support for django_filter [Matwey V. Kornilov]
- fixes prefix estimation on windows [Luis Nell]
- Fix default for array types [Stanislav Khlud]
- fix: use CSafeDumper for render yaml if available [florian]
- fix: sort list to produce same hash [florian]
- Add typing.Generic to default lib_doc_excludes [Max Howald]
- Add get_doc test for class that inherits from Generic [Max Howald]
- Add Django REST framework 3.16 support [Paolo Melchiorre]
- Fix memory leak [artemkucher]
- Fix python 3.11 slice index [Egor Litvinov]
- fix: correct port mapping for the container in README [Maksym Bieńkowski]
- Update docs [q0w]
- Allow setting callable for ENUM_NAME_OVERRIDES [q0w]
- Add allauth's DRF token auth
[#1401](https://github.com/tfranzel/drf-spectacular/issues/1401) <https://github.com/tfranzel/drf-spectacular/issues/1401>_- update away from retired GH worker image
- add condition to check, that serializer Meta has model attribute [aliev_vt]
- Fix docs compile issue and update some old code (
[#1389](https://github.com/tfranzel/drf-spectacular/issues/1389) <https://github.com/tfranzel/drf-spectacular/issues/1389>_) [Mike Manger]- Fix location of
@extend_schema_field [johnthagen]- Remove reference to non-exposed lazy_serializer [johnthagen]
- Document how to lazily define a recursive SerializerMethod [johnthagen]
- Link to SerializerMethod docs [johnthagen]
- Document Django 5.1 support in README [johnthagen]
- Bump django from 4.2.11 to 4.2.18 in /requirements [dependabot[bot]]
- Enhance bug report template with instructions for better clarity [antoliny0919]
- add pydantic computed field to tests
[#1354](https://github.com/tfranzel/drf-spectacular/issues/1354) <https://github.com/tfranzel/drf-spectacular/issues/1354>_Breaking changes / important additions:
- Finally fixed the memory leak thanks to
@artKucher.- Another performance improvement is the usage of the C versions of yaml, if available.
- Apart from that, there are a lot of small improvements and bugfixes.
Commits
7a7a1f2disable py3.8 target due to pyproject.toml issuesff7a62bfix docse58143bversion bumpe40b287Renovate project setup #116262fc98bMerge pull request #1467 from tfranzel/decimal_l18nd7247a5Add l18n handling for Decimal field #14665221afdMerge branch '#1392'88302faFix LogoutSerializer for JWT/dj_rest_auth #1392f7138e3fix: support token blacklist feature in rest_auth2c71a35[django-filter] Add null_label if set in ChoiceFilter (#1450)- Additional commits viewable in compare view
Updates google-auth from 2.41.1 to 2.42.1
Release notes
Sourced from google-auth's releases.
v2.42.1
2.42.1 (2025-10-30)
Bug Fixes
v2.42.0
2.42.0 (2025-10-24)
Features
Bug Fixes
Changelog
Sourced from google-auth's changelog.
2.42.1 (2025-10-30)
Bug Fixes
2.42.0 (2025-10-24)
Features
Bug Fixes
Commits
5d1b862chore(main): release 2.42.1 (#1853)b074cadfix: catch ValueError for json.loads() (#1842)cb62f57chore: secret update (#1851)2f8826dchore(main): release 2.42.0 (#1819)aca34b5chore: secret update (#1847)62c0fc8fix: Read scopes from ADC json for impersoanted cred (#1820)36ecb1dfeat: Add trust boundary support for external accounts. (#1809)10823c2chore: secret update (#1818)e16d70btest: Add tests to cover deprecation and suppression (#1817)- See full diff in compare view
Updates numpy from 2.2.6 to 2.3.4
Release notes
Sourced from numpy's releases.
v2.3.4 (Oct 15, 2025)
NumPy 2.3.4 Release Notes
The NumPy 2.3.4 release is a patch release split between a number of maintenance updates and bug fixes. This release supports Python versions 3.11-3.14. This release is based on Python 3.14.0 final.
Changes
The
npymathandnpyrandomlibraries now have a.librather than a.afile extension on win-arm64, for compatibility for building with MSVC andsetuptools. Please note that using these static libraries is discouraged and for existing projects using it, it's best to use it with a matching compiler toolchain, which isclang-clon Windows on Arm.(gh-29750)
Contributors
A total of 17 people contributed to this release. People with a "+" by their names contributed a patch for the first time.
- !DWesl
- Charles Harris
- Christian Barbia +
- Evgeni Burovski
- Joren Hammudoglu
- Maaz +
- Mateusz Sokół
- Matti Picus
- Nathan Goldbaum
- Ralf Gommers
- Riku Sakamoto +
- Sandeep Gupta +
- Sayed Awad
- Sebastian Berg
- Sergey Fedorov +
- Warren Weckesser
- dependabot[bot]
Pull requests merged
A total of 30 pull requests were merged for this release.
- #29725: MAINT: Prepare 2.3.x for further development
- #29781: MAINT: Pin some upstream dependences
- #29782: BLD: enable x86-simd-sort to build on KNL with -mavx512f
- #29783: BUG: Include python-including headers first (#29281)
- #29784: TYP: fix np.number and np.*integer method declaration
- #29785: TYP: mypy 1.18.1
... (truncated)
Commits
1458b9eREL: Prepare for the NumPy 2.3.4 release (#29955)7583bedMerge pull request #29950 from charris/backport-298853186751Merge pull request #29949 from charris/backport-299487fd2ad9STY: rename@classmethodarg toclsfe8447dMAINT: Simplify string arena growth strategy (#29885)a90f073Merge pull request #29940 from charris/backport-2993755d91abMAINT: Bump pypa/cibuildwheel from 3.1.4 to 3.2.1e2f0383Merge pull request #29926 from charris/backport-29609b427e83BUG: fix negative samples generated by Wald distribution (#29609)36363d6Merge pull request #29922 from charris/backport-29914- Additional commits viewable in compare view
Updates django-structlog from 9.1.1 to 10.0.0
Changelog
Sourced from django-structlog's changelog.
10.0.0 (October 22, 2025)
New: - Add 5xx and cancelled request log level config. See
[#935](https://github.com/jrobichaud/django-structlog/issues/935) <https://github.com/jrobichaud/django-structlog/pull/935>. Special thanks to@fcortes <https://github.com/fcortes>. - Add python 3.14 support. See[#937](https://github.com/jrobichaud/django-structlog/issues/937) <https://github.com/jrobichaud/django-structlog/pull/937>_.Changes: - Drop python 3.9 support.
Commits
6c2feb5Merge pull request #938 from jrobichaud/fix-readmeefcd704fix error in readme (gotta add a checker)fa277f6Merge pull request #937 from jrobichaud/python-3.14238d813Fix mypy regression when dropping 3.9ee56156Add python 3.14 supportf46461eMerge pull request #936 from jrobichaud/update-changelogc76d11fupdate changelogfbc9deaMerge pull request #935 from fcortes/add-access-log-level-configa86d073feat(env): add REQUEST_CANCELLED_LOG_LEVEL config9268401feat(env): add STATUX_5XX_LOG_LEVEL config- Additional commits viewable in compare view
Updates scout-apm from 3.4.0 to 3.5.0
Changelog
Sourced from scout-apm's changelog.
[3.5.0] 2025-10-31
Added
- Instrumentation for FastMCP via
fastmcp.ScoutMiddleware(#818)- Formal support for Python 3.13 and 3.14 (#819)
- Formal support for Django 5.1 and 5.2
- Use strict data filter for tar extraction (#820)
Removed
- Formal Python 3.9 support.
Commits
Updates structlog from 25.4.0 to 25.5.0
Release notes
Sourced from structlog's releases.
25.5.0
Highlights
Huge release! There's plenty of important little bug fixes and new features, but the headliner is definitely the improved ergonomics of
structlog.dev.ConsoleRenderer. We have finally accepted that local development has different priorities than production and made it both mutable (with automatic re-configuration) and also easily retrievable (cr = ConsoleRenderer.get_active()). This allows you, for example, to disable Rich exception formatting as easily asstructlog.dev.ConsoleRenderer.get_active().exception_formatter = structlog.dev.plain_traceback. Please check out the updated docs!Full changelog below!
Special Thanks
This release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If you would like to join them, go to https://github.com/sponsors/hynek and check out the sweet perks!
Above and Beyond
Variomedia AG (@variomedia), Tidelift (@tidelift), thanks.dev (@thnxdev), Privacy Solutions GmbH (@privacy-solutions), Quesma (
@QuesmaOrg), FilePreviews (@filepreviews), LambdaTest (@LambdaTest-Inc), Doist (@Doist), Daniel Fortunov (@asqui), and Kevin P. Fleming (@kpfleming).Maintenance Sustainers
Buttondown (@buttondown), Jeff McCarrell (@jmccarrell), Christopher Dignam (@chdsbd), Magnus Watn (@magnuswatn), David Cramer (@dcramer), Jesse Snyder (@jessesnyder), Rivo Laks (@rivol), Polar (@polarsource), Mike Fiedler (@miketheman), Duncan Hill (@cricalix), Colin Marquardt (@cmarqu), Pieter Swinkels (@swinkels), Nick Libertini (@libertininick), Brian M. Dennis (@crossjam), Celebrity News AG (@celebritynewsag), The Westervelt Company (@westerveltco), Sławomir Ehlert (@slafs), Mostafa Khalil (@khadrawy), Filip Mularczyk (@mukiblejlok), Thomas Klinger (@thmsklngr), Andreas Poehlmann (@ap--), August Trapper Bigelow (@atbigelow), Carlton Gibson (@carltongibson), Roboflow (@roboflow), and Jeff McCarrell (@jmccarrell).
Full Changelog
Deprecated
structlog.dev.ConsoleRenderer()'s pad_event argument has been renamed to pad_event_to to differentiate it from the boolean pad_level argument. pad_event is now deprecated.Added
Added
structlog.dev.ConsoleRenderer.get_active()that returns the currently activestructlog.dev.ConsoleRenderer(). #749
structlog.dev.ConsoleRenderer()now supports setting theexception_formatterattribute.You can now disable the pretty-printing of exceptions by setting it to
structlog.dev.plain_traceback:cr = structlog.dev.ConsoleRenderer.get_active() cr.exception_formatter = structlog.dev.plain_tracebackSame goes for sort_keys, columns, colors, force_colors, level_styles, pad_event_to, event_key, timestamp_key, and repr_native_str.
Added
structlog.dev.ConsoleRenderer.get_default_column_styles()for reuse the default column styles. #741
structlog.testing.capture_logs()now optionally accepts processors to apply before capture. #728
... (truncated)
Changelog
Sourced from structlog's changelog.
25.5.0 - 2025-10-27
Deprecated
structlog.dev.ConsoleRenderer()'s pad_event argument has been renamed to pad_event_to to differentiate it from the boolean pad_level argument. pad_event is now deprecated.Added
Added
structlog.dev.ConsoleRenderer.get_active()that returns the currently activestructlog.dev.ConsoleRenderer(). #749
structlog.dev.ConsoleRenderer()now supports setting theexception_formatterattribute.You can now disable the pretty-printing of exceptions by setting it to
structlog.dev.plain_traceback:cr = structlog.dev.ConsoleRenderer.get_active() cr.exception_formatter = structlog.dev.plain_tracebackSame goes for sort_keys, columns, colors, force_colors, level_styles, pad_event_to, event_key, timestamp_key, and repr_native_str.
Added
structlog.dev.ConsoleRenderer.get_default_column_styles()for reuse the default column styles. #741
structlog.testing.capture_logs()now optionally accepts processors to apply before capture. #728
structlog.dev.RichTracebackFormatternow exposes the upstream code_width parameter. Default width is nowNonefor full terminal width. Full terminal width is now handled by Rich itself, bringing support for reflow andCOLUMNenvironment variable. Passing-1for width is now deprecated and automatically replaced by...Description has been truncated