Subject: CVS commit: pkgsrc/devel/py-attrs
From: Thomas Klausner
Date: 2023-04-30 15:14:49
Message id: 20230430131449.8064FFA87@cvs.NetBSD.org

Log Message:
py-attrs: update to 23.1.0.

##  - 2023-04-16

### Backwards-incompatible Changes

- Python 3.6 has been dropped and packaging switched to static package data using .

### Deprecations

- The support for *zope-interface* via the `attrs.validators.provides` validator \ 
is now deprecated and will be removed in, or after, April 2024.

  The presence of a C-based package in our developement dependencies has caused \ 
headaches and we're not under the impression it's used a lot.

  Let us know if you're using it and we might publish it as a separate package.

### Changes

- `attrs.filters.exclude()` and `attrs.filters.include()` now support the \ 
passing of attribute names as strings.

- `attrs.has()` and `attrs.fields()` now handle generic classes correctly.

- Fix frozen exception classes when raised within e.g. \ 
`contextlib.contextmanager`, which mutates their `__traceback__` attributes.

- `@frozen` now works with type checkers that implement .

- Restored ability to unpickle instances pickled before 22.2.0.

- `attrs.asdict()`'s and `attrs.astuple()`'s type stubs now accept the \ 
`attrs.AttrsInstance` protocol.

- Fix slots class cellvar updating closure in CPython 3.8+ even when `__code__` \ 
introspection is unavailable.

- `attrs.resolve_types()` can now pass `include_extras` to \ 
`typing.get_type_hints()` on Python 3.9+, and does so by default.

- Added instructions for pull request workflow to `CONTRIBUTING.md`.

- Added *type* parameter to `attrs.field()` function for use with \ 
`attrs.make_class()`.

  Please note that type checkers ignore type metadata passed into \ 
`make_class()`, but it can be useful if you're wrapping _attrs_.

- It is now possible for `attrs.evolve()` (and `attr.evolve()`) to change fields \ 
named `inst` if the instance is passed as a positional argument.

  Passing the instance using the `inst` keyword argument is now deprecated and \ 
will be removed in, or after, April 2024.

- `attrs.validators.optional()` now also accepts a tuple of validators (in \ 
addition to lists of validators).

##  - 2022-12-21

### Backwards-incompatible Changes

- Python 3.5 is not supported anymore.

### Deprecations

- Python 3.6 is now deprecated and support will be removed in the next release.

### Changes

- `attrs.field()` now supports an *alias* option for explicit `__init__` \ 
argument names.

  Get `__init__` signatures matching any taste, peculiar or plain!
  The  *alias* option can be use to override private attribute name mangling, or \ 
add other arbitrary field argument name overrides.

- `attrs.NOTHING` is now an enum value, making it possible to use with e.g. .

- Added missing re-import of `attr.AttrsInstance` to the `attrs` namespace.

- Fix slight performance regression in classes with custom `__setattr__` and \ 
speedup even more.

- Class-creation performance improvements by switching performance-sensitive \ 
templating operations to f-strings.

  You can expect an improvement of about 5% -- even for very simple classes.

- `attrs.has()` is now a  for `AttrsInstance`.
  That means that type checkers know a class is an instance of an `attrs` class \ 
if you check it using `attrs.has()` (or `attr.has()`) first.

- Made `attrs.AttrsInstance` stub available at runtime and fixed type errors \ 
related to the usage of `attrs.AttrsInstance` in *Pyright*.

- On Python 3.10 and later, call  on dict classes after creation.
  This improves the detection of abstractness.

- *attrs*'s pickling methods now use dicts instead of tuples.
  That is safer and more robust across different versions of a class.

- Added `attrs.validators.not_(wrapped_validator)` to logically invert \ 
*wrapped_validator* by accepting only values where *wrapped_validator* rejects \ 
the value with a `ValueError` or `TypeError` (by default, exception types \ 
configurable).

- The type stubs for `attrs.cmp_using()` now have default values.

- To conform with ` now accept *unsafe_hash* in addition to *hash*.

##  - 2022-07-28

### Backwards-incompatible Changes

- Python 2.7 is not supported anymore.

  Dealing with Python 2.7 tooling has become too difficult for a volunteer-run \ 
project.

  We have supported Python 2 more than 2 years after it was officially \ 
discontinued and feel that we have paid our dues.
  All version up to 21.4.0 from December 2021 remain fully functional, of course.

- The deprecated `cmp` attribute of `attrs.Attribute` has been removed.
  This does not affect the *cmp* argument to `attr.s` that can be used as a \ 
shortcut to set *eq* and *order* at the same time.

### Changes

- Instantiation of frozen slotted classes is now faster.

- If an `eq` key is defined, it is also used before hashing the attribute.

- Added `attrs.validators.min_len()`.

- `attrs.validators.deep_iterable()`'s *member_validator* argument now also \ 
accepts a list of validators and wraps them in an `attrs.validators.and_()`.

- Added missing type stub re-imports for `attrs.converters` and `attrs.filters`.

- Added missing stub for `attr(s).cmp_using()`.

- `attrs.validators._in()`'s `ValueError` is not missing the attribute, expected \ 
options, and the value it got anymore.

- Python 3.11 is now officially supported.

Files:
RevisionActionfile
1.22modifypkgsrc/devel/py-attrs/Makefile
1.10modifypkgsrc/devel/py-attrs/PLIST
1.15modifypkgsrc/devel/py-attrs/distinfo