Skip to content

docs: add converter-wide init=False migration recipe - #789

Open
guhou-hvi wants to merge 1 commit into
python-attrs:mainfrom
guhou-hvi:docs/include-init-false-recipe
Open

guhou-hvi wants to merge 1 commit into
python-attrs:mainfrom
guhou-hvi:docs/include-init-false-recipe

Conversation

@guhou-hvi

Copy link
Copy Markdown
Contributor

Summary

Addresses #482.

Since 23.2.0, cattrs skips attrs fields declared with init=False by default. The customization guide explains how to include them for an individual class, but users migrating many classes need a converter-wide recipe.

Add a migration example that registers both dict hook factories with _cattrs_include_init_false=True before the converter is used. It shows a nested pair of mutable attrs classes: the default converter omits the fields, the configured converter preserves their assigned values in both directions, and a separate converter remains unchanged. Link the recipe from the customization guide and the original changelog entry.

This documents existing behavior and introduces no converter option or runtime change. Both factories are needed for a round trip; the example is limited to mutable classes because structuring assigns these fields after construction.

Validation on Windows with Python 3.12.2: the 17 new doctest examples and 74 existing related tests pass; the full HTML build passes with warnings treated as errors. The full doctest build has the same two Windows Path output failures as the unmodified main branch. Ruff lint, formatting, and the environment dependency check pass.

Codex drafted the documentation and ran the local checks; a separate Codex agent reviewed the change and independently exercised the recipe. I have reviewed and understand the changes.

This branch has not been deployed

No deployments
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.

1 participant