File python-cattrs.changes of Package python-cattrs

-------------------------------------------------------------------
Mon Nov 17 02:10:39 UTC 2025 - Steve Kowalik <steven.kowalik@suse.com>

- Update to 25.3.0:
  * Potentially breaking: Abstract sets are now structured into frozensets.
  * Python 3.14 is now supported and part of the test matrix.
  * Fix unstructuring NewTypes with the {class}BaseConverter.
  * Make some Hypothesis tests more robust.
  * {func}cattrs.strategies.include_subclasses now works with generic parent
    classes and the tagged union strategy.
  * Potentially breaking: Sequences are now structured into tuples.
  * Add a use_alias parameter to cattrs.Converter.
  * The union passthrough strategy now by default accepts ints for unions
    that contain floats but not ints, when configured to be able to handle
    both ints and floats. This more closely matches the current typing
    behavior.
  * Fix unstructuring of generic classes with stringified annotations.
  * The default disambiguation hook factory is now only enabled for
    converters with unstructure_strat=AS_DICT (the default).
  * Switch to uv and just in lieu of PDM, tox and Make.
  * Fixed AttributeError: no attribute '__parameters__' while structuring
    attrs classes that inherit from parametrized generic aliases from
    collections.abc.
  * Potentially breaking: The converters raise StructureHandlerNotFoundError
    more eagerly (on hook creation, instead of on hook use). This helps
    surfacing problems with missing hooks sooner.
  * typing.Self is now supported in attrs classes, dataclasses, TypedDicts
    and the dict NamedTuple factories. See typing.Self for details.
  * PEP 695 type aliases can now be used with
    BaseConverter.register_structure_hook and
    BaseConverter.register_unstructure_hook. Previously, they required the
    use of BaseConverter.register_structure_hook_func.
  * Some defaultdicts are now supported by default, and
    cattrs.cols.is_defaultdict and cattrs.cols.defaultdict_structure_factory
    are exposed through cattrs.cols.
  * Generic PEP 695 type aliases are now supported.
  * The tagged union strategy now also supports type aliases of unions.
  * Converter.copy and BaseConverter.copy are correctly annotated as
    returning Self.
  * Many preconf converters (bson, stdlib JSON, cbor2, msgpack, msgspec,
    orjson, ujson) skip unstructuring int and str enums, leaving them to the
    underlying libraries to handle with greater efficiency.
  * The msgspec JSON preconf converter now handles dataclasses with private
    attributes more efficiently.
  * Preconf converters now handle dictionaries with literal keys properly.
  * Structuring TypedDicts from invalid inputs now properly raises a
    ClassValidationError.
  * cattrs.strategies.include_subclasses now properly works with generic
    parent classes.
  * Python 3.13 is now supported.
  * Python 3.8 is no longer supported, as it is end-of-life.
- Dropped patches, no longer required:
  * fix-test-no-nans.patch
  * support-python-3.13.patch

-------------------------------------------------------------------
Wed May  7 11:21:09 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>

- Update to 24.1.3
  * Fix structuring of keyword-only dataclass fields when not
    using detailed validation. (#637)
- Refresh support-python-3.13.patch

-------------------------------------------------------------------
Fri Nov 15 14:19:05 UTC 2024 - Yunus Acar <yunus.acar@suse.com>

- add fix-test-no-nans.patch to get the tests to work with the
  latest attrs
- add support-python-3.13.patch to add python-3.13 support

-------------------------------------------------------------------
Mon Oct 28 22:38:02 UTC 2024 - Dirk Müller <dmueller@suse.com>

- update to 24.1.2:
  * Fix {meth}`BaseConverter.register_structure_hook` and
    {meth}`BaseConverter.register_unstructure_hook` type hints.
  * Fix {meth}`BaseConverter.register_structure_hook_factory` and
    {meth}`BaseConverter.register_unstructure_hook_factory` type
    hints.
  * **Potentially breaking**: Unstructuring hooks for
    `typing.Any` are consistent now: values are unstructured
    using their runtime type.
  * Introduce {meth}`BaseConverter.get_structure_hook` and
    {meth}`BaseConverter.get_unstructure_hook` methods.
  * Enhance the {func}`cattrs.cols.is_mapping` predicate function
    to also cover virtual subclasses of `abc.Mapping`.
  * Introduce the _msgspec_ {mod}`preconf converter
    <cattrs.preconf.msgspec>`.
  * Add support for PEP 695 type aliases.
  * Add support for PEP 696 `TypeVar`s with defaults.
  * Add support for named tuples with type metadata
    (`typing.NamedTuple`).
  * Add support for optionally un/unstructuring named tuples
    using dictionaries.
  * PEP 695 generics are now tested.
  * Imports are now sorted using Ruff.
  * Tests are run with the pytest-xdist plugin by default.
  * Rework the introductory parts of the documentation,
    introducing the Basics section.
  * The documentation has been significantly reworked.
  * The docs now use the Inter font.
  * Make type annotations for `include_subclasses` and
    `tagged_union` strategies more lenient.

-------------------------------------------------------------------
Mon Apr  8 10:41:21 UTC 2024 - Dirk Müller <dmueller@suse.com>

- add sle15_python_module_pythons

-------------------------------------------------------------------
Thu Dec 14 09:18:25 UTC 2023 - Petr Gajdos <pgajdos@suse.com>

- update to 23.2.3:
  * Fix a regression when unstructuring dictionary values typed
    as `Any`.
  * (#453 #462)
  * Fix a regression when unstructuring unspecialized generic
    classes.
  * (#465 #466)
  * Optimize function source code caching.
  * (#445 #464)
  * Generate unique files only in case of linecache enabled.
  * (#445 #441)
  * ## 23.2.2 (2023-11-21)
  * Fix a regression when unstructuring `Any | None`.
  * (#453 #454)
  * ## 23.2.1 (2023-11-18)
  * Fix unnecessary `typing_extensions` import on Python 3.11.
  * (#446 #447)
  * ## 23.2.0 (2023-11-17)
  * **Potentially breaking**: skip _attrs_ fields marked as
    `init=False` by default. This change is potentially breaking
    for unstructuring.
  * See here for instructions on how to restore the old behavior.
  * (#40 #395)
  * **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.
  * (#410 #411)
  * **Potentially breaking**: The default union structuring
    strategy will also use fields annotated as `typing.Literal`
    to help guide structuring.
  * See here for instructions on how to restore the old behavior.
  * (#391)
  * Python 3.12 is now supported. Python 3.7 is no longer
    supported; use older releases there.
  * (#424)
  * Implement the `union passthrough` strategy, enabling much
    richer union handling for preconfigured converters. Learn
    more here.
  * Introduce the `use_class_methods` strategy. Learn more here.
  * (#405)
  * 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.
  * (#331 #441)
  * Add support for `date` to preconfigured converters.
  * (#420)
  * Add support for `datetime.date`s to the PyYAML preconfigured
    converter.
  * (#393)
  * Fix {py:func}`format_exception() <cattrs.v.format_exception>`
    parameter working for recursive calls to
    {py:func}`transform_error <cattrs.transform_error>`.
  * (#389)
  * _attrs_ aliases are now supported, although aliased fields
    still map to their attribute name instead of their alias by
    default when un/structuring.
  * (#322 #391)
  * Fix TypedDicts with periods in their field names.
  * (#376 #377)
  * Optimize and improve unstructuring of `Optional` (unions of
    one type and `None`).
  * (#380 #381)
  * 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.
  * (#384)
  * Improve handling of TypedDicts with forward references.
  * Speed up generated _attrs_ and TypedDict structuring
    functions by changing their signature slightly.
  * (#388)
  * Fix copying of converters with function hooks.
  * (#398 #399)
  * Broaden {py:func}`loads'
    <cattrs.preconf.orjson.OrjsonConverter.loads>` type
    definition for the preconf orjson converter.
  * (#400)
  * {py:class}`AttributeValidationNote
    <cattrs.AttributeValidationNote>` and
    {py:class}`IterableValidationNote
    <cattrs.IterableValidationNote>` are now picklable.
  * (#408)
  * Fix structuring `Final` lists.
  * (#412)
  * Fix certain cases of structuring `Annotated` types.
  * (#418)
  * Fix the tagged union strategy to work with
    `forbid_extra_keys`.
  * (#402 #443)
  * Use PDM instead of Poetry.
  * _cattrs_ is now linted with Ruff.
  * Remove some unused lines in the unstructuring code.
  * (#416)
  * Fix handling classes inheriting from non-generic protocols.
  * (#374 #436)
  * The documentation Makefile now supports the `htmlview` and
    `htmllive` targets. (#442)
  * _cattrs_ is now published using PyPI Trusted Publishers, and
    `main` branch commits are automatically deployed to Test
    PyPI.
  * ## 23.1.2 (2023-06-02)
  * Improve `typing_extensions` version bound. (#372)
  * ## 23.1.1 (2023-05-30)
  * Add `typing_extensions` as a direct dependency on 3.10.
  * (#369 #370)
  * ## 23.1.0 (2023-05-30)
  * Introduce the `tagged_union` strategy.
  * (#318 #317)
  * Introduce the `cattrs.transform_error` helper function for
    formatting validation exceptions. (258 342)
  * Add support for `typing.TypedDict` and
    `typing_extensions.TypedDict`.
  * (#296 #364)
  * Add support for `typing.Final`.
  * (#340 #349)
  * Introduce `override.struct_hook` and
    `override.unstruct_hook`. Learn more here.
  * (#326)
  * Fix generating structuring functions for types with angle
    brackets (`<>`) and pipe symbols (`|`) in the name.
  * (#319 #327)
  * `pathlib.Path` is now supported by default.
  * (#81)
  * Add `cbor2` serialization library to the `cattrs.preconf`
    package.
  * Add optional dependencies for `cattrs.preconf` third-party
    libraries. (#337)
  * All preconf converters now allow overriding the default
    `unstruct_collection_overrides` in `make_converter`.
  * (#350 #353)
  * Subclasses structuring and unstructuring is now supported via
    a custom `include_subclasses` strategy.
  * (#312)
  * Add support for `typing_extensions.Annotated` when the python
    version is less than `3.9`. (#366)
  * Add unstructuring and structuring support for the standard
    library `deque`.
  * (#355)

-------------------------------------------------------------------
Mon May  8 21:15:51 UTC 2023 - Ben Greiner <code@bnavigator.de>

- Slim down build requirement to poetry-core
- Explicitily require a bunch of test dependencies instead

-------------------------------------------------------------------
Mon Jan 23 04:22:53 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>

- Initial release of 22.2.0.

openSUSE Build Service is sponsored by