Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Profanity is the one language all programmers know best.


devel / comp.lang.python.announce / [Python-announce] attrs 23.2.0

SubjectAuthor
o [Python-announce] attrs 23.2.0Hynek Schlawack

1
[Python-announce] attrs 23.2.0

<D8CB7DFC-5502-4C25-8379-F918B1496729@ox.cx>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=10118&group=comp.lang.python.announce#10118

  copy link   Newsgroups: comp.lang.python.announce
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!fu-berlin.de!uni-berlin.de!not-for-mail
From: hs...@ox.cx (Hynek Schlawack)
Newsgroups: comp.lang.python.announce
Subject: [Python-announce] attrs 23.2.0
Date: Sun, 31 Dec 2023 07:32:48 +0100
Lines: 70
Approved: python-announce-list@python.org
Message-ID: <D8CB7DFC-5502-4C25-8379-F918B1496729@ox.cx>
Reply-To: python-list@python.org
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.300.61.1.2\))
Content-Type: text/plain;
charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Trace: news.uni-berlin.de aoRe5cgrczqfGTncO9MkHAIYfxVk0ukgfMsKecRK3AYQ==
Cancel-Lock: sha1:Q8TDfoRVPOId9/MPWPybQNh6D+k= sha256:uem7RjZqk3KqilEUwukAzel9+mZndTasAmiMcyeRLrI=
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=ox.cx header.i=@ox.cx header.b=U4g6Jw2p; dkim-adsp=pass;
dkim-atps=neutral
X-Spam-Status: OK 0.023
X-Spam-Evidence: '*H*': 0.95; '*S*': 0.00; 'url-ip:140.82/16': 0.03;
'argument': 0.04; 'dan': 0.09; 'skip:_ 20': 0.09; 'to:addr:python-
announce-list': 0.09; 'url:github': 0.14; 'announce': 0.15;
'excited': 0.15; 'supported': 0.15; 'url-ip:140/8': 0.15;
'arguments': 0.16; 'attributes': 0.16; 'boilerplate': 0.16;
'fixes': 0.16; 'hints': 0.16; 'humans': 0.16; 'magnus': 0.16;
'possible!': 0.16; 'protocol.': 0.16; 'received:10.202': 0.16;
'received:10.202.2': 0.16; 'received:10.202.2.163': 0.16;
'received:internal': 0.16; 'received:messagingengine.com': 0.16;
'sponsors!': 0.16; 'sweet': 0.16; 'typing': 0.16; 'url:releases':
0.16; 'code.': 0.17; 'instead': 0.17; 'skip:_ 10': 0.22;
'version': 0.23; 'behavior': 0.26; 'classes': 0.26; 'library':
0.26; 'stefan': 0.26; 'tim': 0.26; 'creating': 0.27; 'chris':
0.28; 'mostly': 0.28; 'example,': 0.28; 'attach': 0.32;
'transform': 0.32; 'but': 0.32; "i'm": 0.33; 'release': 0.34;
'same': 0.34; 'url-ip:104.17/16': 0.35; 'received:66': 0.35;
'also,': 0.36; 'special': 0.37; 'using': 0.37; 'thanks': 0.38;
'changes': 0.39; 'added': 0.39; 'use': 0.39; 'methods': 0.39;
'both': 0.40; 'provide': 0.60; "there's": 0.61; 'above': 0.62;
'pass': 0.64; 'skip:r 20': 0.64; 'down': 0.64; 'full': 0.64;
'remains': 0.64; 'company': 0.64; 'amazing': 0.65; 'skip:t 20':
0.66; 'forget': 0.67; 'maintenance': 0.67; 'them,': 0.70;
'content': 0.72; 'direct': 0.73; 'skip:f 20': 0.75; 'powerful':
0.84; 'adam': 0.84; 'chose': 0.84; 'highlights': 0.84; 'hill':
0.84; 'jesse': 0.84; 'repetitive': 0.84; 'gonna': 0.91;
'receives': 0.91; 'newly': 0.93
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ox.cx; h=cc
:content-transfer-encoding:content-type:content-type:date:date
:from:from:in-reply-to:message-id:mime-version:reply-to:subject
:subject:to:to; s=fm1; t=1704004381; x=1704090781; bh=iOLbiWs2jH
mkvtlBaSd2S43+iWShqVuKEgTwH6Y55Kk=; b=U4g6Jw2pugpR2HyYs8EyQglB9D
Kr6Qu6EHFh8oCC6dZFO91+zTXNAlnjA9YM/Xsf4j+Dx3Vc8/PZF9Nu/QxxpDqlmF
w9vMDdZJ4cr/JdvmQktdgGXqhOwSxKTibsqFvknJ/ATQJsFc3bOsXoLl8wB5GR3A
grnwdcIfBBGxG851Nc0l3ef89BdJXjKi10IbQYZ0iOnhi3xVuj00qHoV87aHBy27
LgIrjE03HDyxnWl4IDSNuC2fswqr6ZkprdEo5v5d/EaGzgDbVGkC+6sIDWCElD2y
avFsnJ3BEP3refXXqCijk5TpXu/vvyfc3T20d+tRcV0xi36aT+kXDZ9ScP4Q==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
messagingengine.com; h=cc:content-transfer-encoding:content-type
:content-type:date:date:feedback-id:feedback-id:from:from
:in-reply-to:message-id:mime-version:reply-to:subject:subject:to
:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
fm2; t=1704004381; x=1704090781; bh=iOLbiWs2jHmkvtlBaSd2S43+iWSh
qVuKEgTwH6Y55Kk=; b=dmJNUTI5fVn8qJmz1wW6xqu0sZ0K35ET4AZmFotIA4pq
fSFc19uveXa+bgModWCQM5dhBNzM5RLL3kMPFQinOoff1c2D+4AdbMfaECIKAAJW
DWSPEGANEnGRdHYVM3iPNqItucdiZW0gkt/ZBhYL/cOWMbLe6v8rGvf8LO3mObRA
zrRp8nDBbUnUHB2uhbd6dUjQ+kykyLmPC4MFeGoFyJeaFvoLcYQHMzwSgjo64qcE
3nRZ/f3sxYvPssAtji3k3DeTksoSh1ljzqNkvYEwXryW7fWXcDBSUnXuCYGjrw38
OoOg9zLJULg6jFB4RCIvro/Quik9aIiF9M7TzDe3tQ==
X-ME-Sender: <xms:HQuRZc3z1nWqdQP29mTARJifv9MwJ7aFQiYWiUxKgCnRYUsqCxgw5w>
<xme:HQuRZXEYghqNimSaVbxLSk9CDi-NyWclOYNeVR9INdGAotBs57aNJUPcWVz09h7jg
lvpmFQmHosoe7U>
X-ME-Received: <xmr:HQuRZU5G5qhKtrislFF4QL0d-mLcjZzLCW9rqkGtXspz4DGSZG6B6ii_M3WbKYuRK9Qo309-Qaw3VtNQ1nG67FKfnK-EpZf_Rg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdefiedgleehucetufdoteggodetrfdotf
fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
uceurghilhhouhhtmecufedttdenucenucfjughrpefhtgfgggfukfffvffosehtqhhmtd
hhtdejnecuhfhrohhmpefjhihnvghkucfutghhlhgrfigrtghkuceohhhssehogidrtgig
qeenucggtffrrghtthgvrhhnpeejuddvueevvdekieekteegveegiefgvdegtdefjeetvd
fhieejudfggffgtdevieenucffohhmrghinheprghtthhrshdrohhrghdpghhithhhuhgs
rdgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh
ephhhssehogidrtgig
X-ME-Proxy: <xmx:HQuRZV1vAYbZE-uxSpBvee_mmtz1uGh_RRijFgijBiwGP1HsUkgDEA>
<xmx:HQuRZfG8qeT2CRJW4oj1e1YfUWmD_BZjXVbu9-wd1l9zwJCv1p-pNQ>
<xmx:HQuRZe-UGIkUxJ0-tGPJOe9xbtdGlGQY2WVp2qNnc67PBTguc3LmNw>
<xmx:HQuRZXAJ383qzWz-yJuthQE4Jz1O9rgdeGn9m5cdhya_Tr8g-f7esg>
Feedback-ID: i64444179:Fastmail
X-Mailer: Apple Mail (2.3774.300.61.1.2)
X-MailFrom: hs@ox.cx
X-Mailman-Rule-Hits: emergency
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved
Message-ID-Hash: FXOPQT2WHBCXNS5CABNVHLP5PL6GNXRY
X-Message-ID-Hash: FXOPQT2WHBCXNS5CABNVHLP5PL6GNXRY
X-Mailman-Approved-At: Sun, 31 Dec 2023 02:56:40 -0500
X-Mailman-Version: 3.3.10b1
Precedence: list
List-Id: Announcement-only list for the Python programming language <python-announce-list.python.org>
Archived-At: <https://mail.python.org/archives/list/python-announce-list@python.org/message/FXOPQT2WHBCXNS5CABNVHLP5PL6GNXRY/>
List-Archive: <https://mail.python.org/archives/list/python-announce-list@python.org/>
List-Help: <mailto:python-announce-list-request@python.org?subject=help>
List-Owner: <mailto:python-announce-list-owner@python.org>
List-Post: <mailto:python-announce-list@python.org>
List-Subscribe: <mailto:python-announce-list-join@python.org>
List-Unsubscribe: <mailto:python-announce-list-leave@python.org>
 by: Hynek Schlawack - Sun, 31 Dec 2023 06:32 UTC

I’m happy to announce a new release of attrs!

attrs is the direct ancestor of – and the inspiration for – dataclasses in the standard library and remains the more powerful toolkit for creating regular classes without getting bogged down with writing repetitive boilerplate code: <https://www.attrs.org/>

------------------------------------------------------------------------

(alternatively, see <https://github.com/python-attrs/attrs/releases/> for a richer-formatted version of the following)

Highlights

Mostly typing fixes in this release, but I'm excited that we found a workaround to make functools.cached_property work with slotted classes! Also, I'm sure there's gonna be fans of the new behavior of __attrs_pre_init__ where it receives all arguments passed to __init__ if it accepts more than self.

Special Thanks

This release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If you would like to join them, go to https://github.com/sponsors/hynek and check out the sweet perks!

Above and Beyond

Variomedia AG (@variomedia), Tidelift (@tidelift), FilePreviews (@filepreviews), Daniel Fortunov (@asqui), and Kevin P. Fleming (@kpfleming).

Maintenance Sustainers

Adam Hill (@adamghill), Dan Groshev (@si14), Magnus Watn (@magnuswatn), David Cramer (@dcramer), Moving Content AG (@moving-content), ProteinQure (@ProteinQure), Jesse Snyder (@jessesnyder), Rivo Laks (@rivol), Ionel Cristian Mărieș (@ionelmc), The Westervelt Company (@westerveltco), Philippe Galvan (@PhilippeGalvan), Birk Jernström (@birkjernstrom), Tim Schilling (@tim-schilling), Chris Withers (@cjw296), Christopher Dignam (@chdsbd), Stefan Hagen (@sthagen), Sławomir Ehlert (@slafs), Mostafa Khalil (@khadrawy), Filip Mularczyk (@mukiblejlok), and Mike Fiedler (@miketheman).

Not to forget 6 more amazing humans who chose to be generous but anonymous!

Full Changelog

Changes

- The type annotation for attrs.resolve_types() is now correct. #1141
- 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. #1158
- Fixed serialization of namedtuple fields using attrs.asdict/astuple() with retain_collection_types=True. #1165
- attrs.AttrsInstance is now a typing.Protocol in both type hints and code. This allows you to subclass it along with another Protocol. #1172
- 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__(). #1187
- Slotted classes now transform functools.cached_property decorated methods to support equivalent semantics. #1200
- 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. #1203


devel / comp.lang.python.announce / [Python-announce] attrs 23.2.0

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor