Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

"So why don't you make like a tree, and get outta here." -- Biff in "Back to the Future"


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

SubjectAuthor
o [Python-announce] attrs 22.3.0Hynek Schlawack

1
[Python-announce] attrs 22.3.0

<F4CE9D8F-4041-4AA2-932F-B4F60EC5ADF1@ox.cx>

  copy mid

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

  copy link   Newsgroups: comp.lang.python.announce
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.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 22.3.0
Date: Wed, 21 Dec 2022 11:26:12 +0100
Lines: 108
Approved: python-announce-list@python.org
Message-ID: <F4CE9D8F-4041-4AA2-932F-B4F60EC5ADF1@ox.cx>
Reply-To: python-list@python.org
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3731.300.101.1.3\))
Content-Type: text/plain;
charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Trace: news.uni-berlin.de XZYvV2NrKsJD4RNJmuwjIQnRZfRZj/rQEtjwY23aC9bQ==
Authentication-Results: mail.python.org; dkim=pass
reason="2048-bit key; unprotected key"
header.d=ox.cx header.i=@ox.cx header.b=FvVbqCI4; dkim-adsp=pass;
dkim-atps=neutral
X-Spam-Status: OK 0.000
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'generated': 0.03; 'url-
ip:140.82/16': 0.03; 'argument': 0.04; '3.6': 0.05; 'improvement':
0.05; 'usage': 0.05; 'class.': 0.07; 'e.g.': 0.07; 'happened':
0.07; 'matching': 0.07; 'pep': 0.07; 'anymore.': 0.09; 'dan':
0.09; 'later,': 0.09; 'to:addr:python-announce-list': 0.09;
'values.': 0.09; 'url:github': 0.14; 'announce': 0.15;
'supported': 0.15; 'url-ip:140/8': 0.15; '3.10': 0.16; '681':
0.16; 'alias': 0.16; 'arbitrary': 0.16; 'boilerplate': 0.16;
'dict': 0.16; 'dicts': 0.16; 'explicit': 0.16; 'humans': 0.16;
'impressive': 0.16; 'improves': 0.16; 'instance': 0.16; 'jannis':
0.16; 'leidel': 0.16; 'magnus': 0.16; 'possible!': 0.16;
'received:10.202': 0.16; 'received:10.202.2': 0.16;
'received:internal': 0.16; 'received:messagingengine.com': 0.16;
'regression': 0.16; 'runtime': 0.16; 'speedup': 0.16; 'sponsors!':
0.16; 'sweet': 0.16; 'tuples.': 0.16; 'python': 0.16; 'values':
0.17; 'instead': 0.17; "aren't": 0.19; 'option': 0.20;
'exception': 0.22; 'behavior': 0.26; 'classes': 0.26; 'library':
0.26; 'tim': 0.26; 'creating': 0.27; 'chris': 0.28; 'expect':
0.28; 'default': 0.31; 'but': 0.32; 'release': 0.34; 'url-
ip:104.17/16': 0.35; 'received:66': 0.35; 'fix': 0.36; 'errors':
0.36; 'those': 0.36; 'missing': 0.37; 'special': 0.37; 'using':
0.37; "it's": 0.37; 'class': 0.37; 'means': 0.38; 'thanks': 0.38;
'changes': 0.39; 'added': 0.39; "we've": 0.39; 'use': 0.39;
'methods': 0.39; 'still': 0.40; 'above': 0.62; 'skip:b 20': 0.63;
'down': 0.64; 'full': 0.64; 'remains': 0.64; 'company': 0.64;
'amazing': 0.65; 'types': 0.67; 'forget': 0.67; 'maintenance':
0.67; 'accept': 0.67; 'operations': 0.68; 'safer': 0.69; 'skip:a
40': 0.70; 'them,': 0.70; 'performance': 0.71; 'addition': 0.71;
'content': 0.72; 'direct': 0.73; 'private': 0.73; 'accepting':
0.75; 'detection': 0.76; 'field': 0.78; 'more.': 0.82; 'powerful':
0.84; '(like': 0.84; 'adam': 0.84; 'attribute': 0.84; 'chose':
0.84; 'hill': 0.84; 'jesse': 0.84; 'peculiar': 0.84; 'repetitive':
0.84; 'signatures': 0.84; 'switching': 0.84
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ox.cx; h=cc
:content-transfer-encoding:content-type:date:date:from:from
:in-reply-to:message-id:mime-version:reply-to:sender:subject
:subject:to:to; s=fm1; t=1671618384; x=1671704784; bh=fMohN6wE8g
gv954hbAB4EAAeSHPFjU3ukpz78zeA4e8=; b=FvVbqCI4hUhOCBn3tVemaC91ny
OZnrlxU50IoM1I+JXGxFExyh5bsvpZEr63adyqxprBCnMCnwwkSEkS8Gi5pzP4Sp
ZZfCSa7mKL8Vxsu35GytKc2VjthaDta5AXTZyKaU/y7UmPS42tzyCEIf9eGHZaOA
tzbir9UsYNfKT4wd2K4GCiRoJhoovlEe+dTm5Br3OMvmYp+EGfs4qECPFnni+YK1
f/mXkNPOr/RAHFEziMT+GL3LjxUQXWOCeVwzrAsshKKlBD2xmypb7skbwnbZdCiG
pQIJp5H8N8xcZ2nQHV4dSf1hhUfD32RKAkdY7sxIPnmZ7svTAaM6oKkCcJzA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
messagingengine.com; h=cc:content-transfer-encoding:content-type
:date:date:feedback-id:feedback-id:from:from:in-reply-to
:message-id:mime-version:reply-to:sender:subject:subject:to:to
:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
fm2; t=1671618384; x=1671704784; bh=fMohN6wE8ggv954hbAB4EAAeSHPF
jU3ukpz78zeA4e8=; b=GJrReu7WfLNaxCqXGam7JYgI9xIzH2hS1Gne3B4kpA9C
wE788IzqfGjPPnMXS+/yDmCYi1tbaCiu0o0mQbQvc9bpOQ6rDvGSmzEUZ5M17uUG
nA/lrCnmB+gGdzLMYaEjJHIfqUV52ryQmuc06v0ta35RVgssAO9L+ZnFLNFtn6OL
Aicx2sdPecobyak9zf7pLUMty/NnfPB3vmPSdvsizS1/HsAJ88i/EPPeyUx94qgF
S8veroCA+AaSEPBJeGAiBQ1mTtFFyIJ8cDUlHZXDhu9eEY2z7u2jQG6DTcSJ/CRY
6TWbNm5LTl9zf52bHzNVukfpm4+wBXmF4em9noc7eg==
X-ME-Sender: <xms:UN-iY0ez8GQHqE5JqGS3NP4N1nZrHXakvYAXaxN-9aTatD5AFXOT6A>
<xme:UN-iY2M7-FoB61xkq9Y7TM-OyJIc4AtnkyCdU-S_Kloao5QldlCAaVNHIM1G0HTUr
KJCTbElupBNB_Y>
X-ME-Received: <xmr:UN-iY1iTsFFGWQitv44BCcunfJoA6fPOixXTMkasYKbqiMxY9tJysXjd2fg9twF28Gk0AQP8bNdNr7Eb_v5ij1XWeBFGCN4x>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvhedrgeekgdduiecutefuodetggdotefrodftvf
curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
uegrihhlohhuthemuceftddtnecunecujfgurhephfgtgfgguffkfffvofesthhqmhdthh
dtjeenucfhrhhomhepjfihnhgvkhcuufgthhhlrgifrggtkhcuoehhshesohigrdgtgieq
necuggftrfgrthhtvghrnhepjeduvdeuvedvkeeikeetgeevgeeigfdvgedtfeejtedvhf
eijedugffggfdtveeinecuffhomhgrihhnpegrthhtrhhsrdhorhhgpdhgihhthhhusgdr
tghomhenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe
hhshesohigrdgtgi
X-ME-Proxy: <xmx:UN-iY584k9a8j1ymH0NUHhRftXUw1Gfx8sT-odjxMVxMA6EGjN-vIA>
<xmx:UN-iYwu6ZfIbgs2xGM3M9sFL4ITQJM9HeIiovESiyj34WTluwTe0WA>
<xmx:UN-iYwG1gCdYgwF4bsp684f5D9P2CulUATF2RT4bFJ7_Wc5UgOhhew>
<xmx:UN-iY8JZ0LV9xgTBUhojk0JSmVAM901fI3gmzj4rFhn9DvGe04CmYw>
Feedback-ID: i64444179:Fastmail
X-Mailer: Apple Mail (2.3731.300.101.1.3)
X-MailFrom: hs@ox.cx
X-Mailman-Rule-Hits: emergency
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved
Message-ID-Hash: 3RPWEOQR4QKG636GGFEGHKOHEEP6TLSJ
X-Message-ID-Hash: 3RPWEOQR4QKG636GGFEGHKOHEEP6TLSJ
X-Mailman-Approved-At: Wed, 21 Dec 2022 05:28:47 -0500
X-Mailman-Version: 3.3.8b1
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/3RPWEOQR4QKG636GGFEGHKOHEEP6TLSJ/>
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 - Wed, 21 Dec 2022 10:26 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/>

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

It's been a lot busier than the changelog indicates, but a lot of the work happened under the hood (like some impressive performance improvements). But we've got still one big new feature that's are worthy the holidays:

Fields now have an alias argument that allows you to set the field's name in the generated __init__ method. This is especially useful for those who aren't fans of attrs's behavior of stripping underscores from private attribute names.

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), Sentry (@getsentry), HiredScore (@HiredScore), FilePreviews (@filepreviews), and Daniel Fortunov (@asqui).

Maintenance Sustainers

@rzijp, Adam Hill (@adamghill), Dan Groshev (@si14), Tamir Bahar (@tmr232), Adi Roiban (@adiroiban), Magnus Watn (@magnuswatn), David Cramer (@dcramer), Moving Content AG (@moving-content), Stein Magnus Jodal (@jodal), Iwan Aucamp (@aucampia), ProteinQure (@ProteinQure), Jesse Snyder (@jessesnyder), Rivo Laks (@rivol), Thomas Ballinger (@thomasballinger), @medecau, Ionel Cristian Mărieș (@ionelmc), The Westervelt Company (@westerveltco), Philippe Galvan (@PhilippeGalvan), Birk Jernström (@birkjernstrom), Jannis Leidel (@jezdez), Tim Schilling (@tim-schilling), Chris Withers (@cjw296), and Christopher Dignam (@chdsbd).

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

Full Changelog

Backwards-incompatible Changes

- Python 3.5 is not supported anymore. #988

Deprecations

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

Changes

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

Get __init__ signatures matching any taste, peculiar or plain! The PEP 681 compatible alias option can be use to override private attribute name mangling, or add other arbitrary field argument name overrides. #950

- attrs.NOTHING is now an enum value, making it possible to use with e.g. typing.Literal. #983

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

- Fix slight performance regression in classes with custom __setattr__ and speedup even more. #991

- 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. #995

- attrs.has() is now a TypeGuard 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. #997

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

- On Python 3.10 and later, call abc.update_abstractmethods() on dict classes after creation. This improves the detection of abstractness. #1001

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

- 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). #1010

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

- To conform with PEP 681, attr.s() and attrs.define() now accept unsafe_hash in addition to hash. #1065


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

1
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor