Skip to content

configure_tagged_unions: fix recursive type aliases#714

Merged
Tinche merged 1 commit intomainfrom
tin/fix-recursive-tagged-unions
Jan 11, 2026
Merged

configure_tagged_unions: fix recursive type aliases#714
Tinche merged 1 commit intomainfrom
tin/fix-recursive-tagged-unions

Conversation

@Tinche
Copy link
Member

@Tinche Tinche commented Jan 9, 2026

No description provided.

@Tinche Tinche linked an issue Jan 9, 2026 that may be closed by this pull request
@codspeed-hq
Copy link

codspeed-hq bot commented Jan 9, 2026

CodSpeed Performance Report

Merging this PR will not alter performance

Comparing tin/fix-recursive-tagged-unions (15739f6) with main (31c19ce)

Summary

✅ 54 untouched benchmarks

@Tinche Tinche force-pushed the tin/fix-recursive-tagged-unions branch from 8f481bc to 15739f6 Compare January 11, 2026 21:47
@Tinche Tinche merged commit 4c20ab7 into main Jan 11, 2026
14 checks passed
@Tinche Tinche deleted the tin/fix-recursive-tagged-unions branch January 11, 2026 21:57
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Feb 22, 2026
## 26.1.0 (2026-02-18)

- Add the {mod}`tomllib <cattrs.preconf.tomllib>` preconf converter.
  See [here](https://catt.rs/en/latest/preconf.html#tomllib) for details.
  ([#716](python-attrs/cattrs#716))
- Customizing un/structuring of _attrs_ classes, dataclasses, TypedDicts and dict NamedTuples is now possible by using `Annotated[T, override()]` on fields.
  See [here](https://catt.rs/en/stable/customizing.html#using-typing-annotated-t-override) for more details.
  ([#717](python-attrs/cattrs#717))
- Fix structuring of nested generic classes with stringified annotations.
  ([#688](python-attrs/cattrs#688))
- Python 3.9 is no longer supported, as it is end-of-life. Use previous versions on this Python version.
  ([#698](python-attrs/cattrs#698))
- Apply the attrs converter to the default value before checking if it is equal to the attribute's value, when `omit_if_default` is true and an attrs converter is specified.
  ([#696](python-attrs/cattrs#696))
- Use the optional `_value_` type hint to structure and unstructure enums if present.
  ([#699](python-attrs/cattrs#699))
- Aliases (when in use) now properly generate rename metadata in generated hooks.
  ([#706](python-attrs/cattrs#706) [#710](python-attrs/cattrs#710))
- _cattrs_ now tracks performance using [codspeed](https://codspeed.io/python-attrs/cattrs).
  ([#703](python-attrs/cattrs#703))
- The {mod}`tomlkit <cattrs.preconf.tomlkit>` preconf converter now properly handles native `date` objects when structuring.
  ([#707](python-attrs/cattrs#707) [#708](python-attrs/cattrs#708))
- The {mod}`tomlkit <cattrs.preconf.tomlkit>` preconf converter now passes date objects directly to _tomlkit_ for unstructuring.
  ([#707](python-attrs/cattrs#707) [#708](python-attrs/cattrs#708))
- Enum handling has been optimized by switching to hook factories, improving performance especially for plain enums.
  ([#705](python-attrs/cattrs#705))
- Fix {func}`cattrs.strategies.include_subclasses` when used with {func}`cattrs.strategies.configure_tagged_union` and classes using diamond inheritance.
  ([#685](python-attrs/cattrs#685) [#713](python-attrs/cattrs#713))
- Fix {func}`cattrs.strategies.configure_tagged_union` when used with recursive type aliases.
  ([#678](python-attrs/cattrs#678) [#714](python-attrs/cattrs#714))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

configure_tagged_union fails on recursive structures

1 participant