efae94f5e8
- update to 25.3.0: * Restore support for generator-based field_transformers. * Checking mandatory vs non-mandatory attribute order is now performed after the field transformer, since the field transformer may change attributes and/or their order. * attrs.make_class() now allows for Unicode class names. * Speed up class creation by 30%-50% by compiling methods only once and using a variety of other techniques. * The error message if an attribute has both an annotation and a type argument will now disclose _what_ attribute seems to be the problem.
main
Dirk Mueller2025-07-12 11:37:36 +00:00
f95269ecde
- update to 24.3.0: * Python 3.7 has been dropped. * Introduce attrs.NothingType, for annotating types consistent with attrs.NOTHING. * Allow mutating __suppress_context__ and __notes__ on frozen exceptions. * attrs.converters.optional() works again when taking attrs.converters.pipe() or another Converter as its argument. * *attrs* instances now support copy.replace(). * attrs.validators.instance_of()'s type hints now allow for union types. * For example: instance_of(str | int)Dirk Mueller2025-01-02 14:13:19 +00:00
e429b0427a
- Upgrade to 24.2.0: - Big releases always carry the risk of regressions, but never did I expect to break Python 3.14’s CI! On the plus side, attrs runs on 3.14 now. - Upgrade to 24.1.0: - The most notable is probably the possibility to receive self and field definitions in your converters by wrapping them into a attrs.Converter. - The other big thing is our own replacement for __init_subclass__ called (you guessed it) __attrs_init_subclass__. Check out the docs, if you're not sure what this is good for. - Finally, we've made more important steps to promote our "new" APIs (can you believe they're 4 years old!?) in the docs. If we missed anything, please let us know. - Remove upstreamed patch: - pytest8.patch
Matej Cepl2024-11-05 13:09:50 +00:00
7314f0533c
Accepting request 1174816 from home:mcalabkova:branches:devel:languages:python:pytest
Steve Kowalik2024-05-20 01:34:47 +00:00
223b7c0d84
- update to 23.2.0: * The type annotation for attrs.resolve_types() is now correct. * Type stubs now use typing.dataclass_transform to decorate dataclass-like decorators, instead of the non-standard __dataclass_transform__ special form, which is only supported by Pyright. * Fixed serialization of namedtuple fields using attrs.asdict/astuple() with retain_collection_types=True. * attrs.AttrsInstance is now a typing.Protocol in both type hints and code. * This allows you to subclass it along with another Protocol. * If *attrs* detects that __attrs_pre_init__ accepts more than just self, it will call it with the same arguments as __init__ was called. * This allows you to, for example, pass arguments to super().__init__(). * Slotted classes now transform functools.cached_property decorated methods to support equivalent semantics. * Added *class_body* argument to attrs.make_class() to provide additional attributes for newly created classes. * It is, for example, now possible to attach methods. be deeply immutable - Initial version
Dirk Mueller2024-01-08 09:00:21 +00:00
9c4faee9c5
- remove outdated constructs, we no longer support < 3.8
Dirk Mueller2023-06-22 07:05:04 +00:00
2d1eceef6a
- Update to 23.1.0: # Backwards-incompatible Changes * Python 3.6 has been dropped and packaging switched to static package data using Hatch. #993 # 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. #1120 # Changes * attrs.filters.exclude() and attrs.filters.include() now support the passing of attribute names as strings. #1068 * attrs.has() and attrs.fields() now handle generic classes correctly. #1079 * Fix frozen exception classes when raised within e.g. contextlib.contextmanager, which mutates their __traceback__ attributes. #1081 * @frozen now works with type checkers that implement PEP-681 (ex. pyright). #1084 * Restored ability to unpickle instances pickled before 22.2.0. #1085 * attrs.asdict()'s and attrs.astuple()'s type stubs now accept the attrs.AttrsInstance protocol. #1090 * Fix slots class cellvar updating closure in CPython 3.8+ even when __code__ introspection is unavailable. #1092 * attrs.resolve_types() can now pass include_extras to
Daniel Garcia2023-05-08 09:40:54 +00:00
9a928ed3a6
Accepting request 1081338 from home:dirkmueller:acdc:as_python3_module
Dirk Mueller2023-04-21 14:53:49 +00:00
07655b9764
- update to 22.2.0: * Python 3.5 is not supported anymore. * Python 3.6 is now deprecated and support will be removed in the next release. * attrs.field() now supports an *alias* option for explicit __init__ argument names. * attrs.NOTHING is now an enum value, making it possible to use with e.g. typing.Literal. * 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.
Dirk Mueller2023-01-02 19:24:09 +00:00
3d12fae104
Accepting request 1004937 from home:pgajdos:python
Dirk Mueller2022-09-20 11:28:55 +00:00
140ca96187
Accepting request 992744 from home:ohollmann:branches:devel:languages:python
Matej Cepl2022-08-05 07:21:26 +00:00
77f18d80ce
- update to 21.4.0: * Fixed the test suite on PyPy3.8 where `cloudpickle does not work. * Fixed coverage report for projects that use attrs and don't set a --source. * When using @define, converters are now run by default when setting an attribute on an instance -- additionally to validators. * import attrs has finally landed! * attr.asdict(retain_collection_types=False) (default) dumps collection-esque keys as tuples. * __match_args__ are now generated to support Python 3.10's * If the class-level *on_setattr* is set to attrs.setters.validate (default in @define and @mutable) but no field defines a validator, pretend that it's not set. * The generated __repr__ is significantly faster on Pythons with f-strings. * Attributes transformed via field_transformer are wrapped with AttrsClass again. * Generated source code is now cached more efficiently for identical classes. * Added attrs.converters.to_bool(). * attrs.resolve_types() now resolves types of subclasses after the parents are resolved. * Added new validators: lt(val) (< val), le(va) (≤ val), ge(val) (≥ val), gt(val) (> val), and maxlen(n). * attrs classes are now fully compatible with cloudpickle * Added new context manager attrs.validators.disabled() and functions attrs.validators.(set|get)_disabled(). They deprecate attrs.(set|get)_run_validators()`. All functions are interoperable and modify the same internal state. They are not – and never were – thread-safe, though.
Dirk Mueller2022-01-10 22:44:28 +00:00
aabff92aa5
- update to 21.2.0: * We had to revert the recursive feature for `attr.evolve() because it broke some use-cases -- sorry! * Python 3.4 is now blocked using packaging metadata because attrs can't be imported on it anymore. * The long-awaited, much-talked-about, little-delivered import attrs is finally upon us! * The *cmp* argument to attr.s() and attr.ib()` has been **undeprecated** It will continue to be supported as syntactic sugar to set *eq* and *order* in one go. * Further smaller changes, see included Changelog.md
Dirk Mueller2021-05-27 16:42:45 +00:00
0253d15125
- update to 20.3.0: - `attr.define(), attr.frozen(), attr.mutable(), and attr.field()` remain **provisional**.
Dirk Mueller2020-11-26 09:20:07 +00:00
e0373e14f7
- update to 20.2.0: - Python 3.4 is not supported anymore. - `attr.define(), attr.frozen(), attr.mutable(), and attr.field()` remain **provisional**. This release fixes a bunch of bugs and ergonomics but they remain mostly unchanged. Further changes see included CHANGELOG.rst
Dirk Mueller2020-09-17 14:41:28 +00:00
b01d5e1e21
- Do not restrict us to new setuptools, we generate stuff even with the older variants
Tomáš Chvátal
2020-05-14 06:45:36 +00:00
eb7296ebbf
- update to 19.3.0 * Fixed auto_attribs usage when default values cannot be compared directly with ==, such as numpy arrays.
Ondřej Súkup2019-10-21 08:44:42 +00:00
909465f612
Accepting request 734855 from home:apersaud:branches:devel:languages:python
Tomáš Chvátal
2019-10-04 07:44:54 +00:00
f0e1229983
- Switch to multibuild to enable tests
Tomáš Chvátal
2019-08-12 13:47:18 +00:00
7fb526ce71
- update to 19.1.0 * Fixed a bug where deserialized objects with cache_hash=True could have incorrect hash code values * Add is_callable, deep_iterable, and deep_mapping validators. * Fixed stub files to prevent errors raised by mypy's disallow_any_generics = True option. * Attributes with init=False now can follow after kw_only=True attributes. * attrs now has first class support for defining exception classes. * Clarified documentation for hashing to warn that hashable objects should be deeply immutable
Ondřej Súkup2019-03-04 20:22:32 +00:00
4148ec869f
- Fix fdupes call
Tomáš Chvátal
2018-12-06 10:06:33 +00:00
6d25eaa61a
Accepting request 632658 from home:apersaud:branches:devel:languages:python
Tomáš Chvátal
2018-09-01 19:42:51 +00:00
513458fdfa
Accepting request 604542 from home:apersaud:branches:devel:languages:python
Tomáš Chvátal
2018-05-07 13:45:33 +00:00
ec05bac306
Accepting request 561486 from home:apersaud:branches:devel:languages:python
Thomas Bechtold2018-01-04 05:59:20 +00:00
edd7db6fd9
- add test requirements, run tests conditionally (not BuildRequiring pytest fixes bsc#1073845)
Jan Matejek
2017-12-21 16:11:35 +00:00
344f664198
Accepting request 540298 from home:apersaud:branches:devel:languages:python
Ondřej Súkup2017-11-10 11:33:36 +00:00
8828b357c3
Accepting request 507963 from home:tbechtold:branches:devel:languages:python
Dirk Mueller2017-07-04 05:29:27 +00:00
d308681a38
Accepting request 507531 from home:okurz:branches:devel:languages:python
Thomas Bechtold2017-07-03 11:17:31 +00:00