c1a34be66e- 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)
devel
Dirk Mueller2025-01-02 14:13:19 +00:00
2ec451b24fAccepting request 1221445 from devel:languages:pythonAna Guerrero2024-11-07 15:23:48 +00:00
ae5cd6f616- 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.patchMatej Cepl2024-11-05 13:09:50 +00:00
7a55b8459bAccepting request 1175271 from devel:languages:pythonAna Guerrero2024-05-21 16:34:31 +00:00
7314f0533cAccepting request 1174816 from home:mcalabkova:branches:devel:languages:python:pytestSteve Kowalik2024-05-20 01:34:47 +00:00
95121a381aAccepting request 1137517 from devel:languages:pythonAna Guerrero2024-01-09 19:48:35 +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 versionDirk Mueller2024-01-08 09:00:21 +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 toDaniel Garcia2023-05-08 09:40:54 +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
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.mdDirk Mueller2021-05-27 16:42:45 +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.rstDirk Mueller2020-09-17 14:41:28 +00:00
5adfbf9efeAccepting request 807115 from devel:languages:pythonYuchen Lin2020-05-28 07:07:40 +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
909465f612Accepting request 734855 from home:apersaud:branches:devel:languages:python
Tomáš Chvátal
2019-10-04 07:44:54 +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 immutableOndřej Súkup2019-03-04 20:22:32 +00:00