Path to this page:
Subject: CVS commit: pkgsrc/devel/py-cattrs
From: Thomas Klausner
Date: 2023-11-19 15:09:31
Message id: 20231119140931.6D04BFA3D@cvs.NetBSD.org
Log Message:
py-cattrs: update to 23.2.1.
## 23.2.1 (2023-11-18)
- Fix unnecessary `typing_extensions` import on Python 3.11.
## 23.2.0 (2023-11-17)
- **Potentially breaking**: skip _attrs_ fields marked as `init=False` by \
default. This change is potentially breaking for unstructuring.
- **Potentially breaking**: {py:func}`cattrs.gen.make_dict_structure_fn` and \
{py:func}`cattrs.gen.typeddicts.make_dict_structure_fn` will use the values for \
the `detailed_validation` and `forbid_extra_keys` parameters from the given \
converter by default now.
If you're using these functions directly, the old behavior can be restored by \
passing in the desired values directly.
- **Potentially breaking**: The default union structuring strategy will also use \
fields annotated as `typing.Literal` to help guide structuring.
- Python 3.12 is now supported. Python 3.7 is no longer supported; use older \
releases there.
- Implement the `union passthrough` strategy, enabling much richer union \
handling for preconfigured converters.
- Introduce the `use_class_methods` strategy.
- The `omit` parameter of {py:func}`cattrs.override` is now of type `bool | \
None` (from `bool`).
`None` is the new default and means to apply default _cattrs_ handling to the \
attribute, which is to omit the attribute if it's marked as `init=False`, and \
keep it otherwise.
- Converters can now be initialized with custom fallback hook factories for \
un/structuring.
- Add support for `date` to preconfigured converters.
- Add support for `datetime.date`s to the PyYAML preconfigured converter.
- Fix {py:func}`format_exception() <cattrs.v.format_exception>` parameter \
working for recursive calls to {py:func}`transform_error \
<cattrs.transform_error>`.
- _attrs_ aliases are now supported, although aliased fields still map to their \
attribute name instead of their alias by default when un/structuring.
- Fix TypedDicts with periods in their field names.
- Optimize and improve unstructuring of `Optional` (unions of one type and `None`).
- Fix {py:func}`format_exception <cattrs.v.format_exception>` and \
{py:func}`transform_error <cattrs.transform_error>` type annotations.
- Improve the implementation of `cattrs._compat.is_typeddict`. The \
implementation is now simpler, and relies on fewer private implementation \
details from `typing` and typing_extensions.
- Improve handling of TypedDicts with forward references.
- Speed up generated _attrs_ and TypedDict structuring functions by changing \
their signature slightly.
- Fix copying of converters with function hooks.
- Broaden {py:func}`loads' <cattrs.preconf.orjson.OrjsonConverter.loads>` \
type definition for the preconf orjson converter.
- {py:class}`AttributeValidationNote <cattrs.AttributeValidationNote>` and \
{py:class}`IterableValidationNote <cattrs.IterableValidationNote>` are now \
picklable.
- Fix structuring `Final` lists.
- Fix certain cases of structuring `Annotated` types.
- Fix the tagged union strategy to work with `forbid_extra_keys`.
- Use PDM instead of Poetry.
- _cattrs_ is now linted with Ruff.
- Remove some unused lines in the unstructuring code.
- Fix handling classes inheriting from non-generic protocols.
- The documentation Makefile now supports the `htmlview` and `htmllive` targets.
- _cattrs_ is now published using PyPI Trusted Publishers, and `main` branch \
commits are automatically deployed to Test PyPI.
Files: