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:
RevisionActionfile
1.5modifypkgsrc/devel/py-cattrs/Makefile
1.4modifypkgsrc/devel/py-cattrs/PLIST
1.3modifypkgsrc/devel/py-cattrs/distinfo