Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Hynek Schlawack Newsgroups: comp.lang.python.announce Subject: attrs 16.1.0 Date: Thu, 1 Sep 2016 12:31:34 +0200 Lines: 25 Approved: python-announce-list@python.org Message-ID: References: <35F9A4C7-2578-4E7F-8E64-EC9797974219@ox.cx> Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de dtQd+YJ8URzW18apSZrRpQ+Qi2zNamIAQPVqK1TmsOBA== Return-Path: X-Original-To: python-announce-list@python.org Delivered-To: python-announce-list@mail.python.org X-Spam-Status: OK 0.013 X-Spam-Evidence: '*H*': 0.97; '*S*': 0.00; 'url:pypi': 0.03; '(aka': 0.09; '__init__': 0.09; 'i\xe2\x80\x99m': 0.09; 'received:internal': 0.09; 'python': 0.10; 'python.': 0.11; 'attrs': 0.16; 'received:10.202': 0.16; 'received:10.202.2': 0.16; 'received:66.111': 0.16; 'received:66.111.4': 0.16; 'received:messagingengine.com': 0.16; 'url:project': 0.16; 'implementing': 0.18; 'library': 0.20; 'changes': 0.21; 'cheers,': 0.21; 'code.': 0.25; 'url:io': 0.28; 'concise': 0.29; 'protocols': 0.29; 'classes': 0.30; 'allows': 0.31; 'option': 0.31; 'everyone': 0.32; 'correct': 0.32; 'announce': 0.33; 'received:84': 0.33; 'url:org': 0.36; '(i.e.': 0.36; 'url:en': 0.37; 'received:10': 0.38; 'received:66': 0.38; 'received:io': 0.38; 'received:psf.io': 0.38; 'received:ams1.psf.io': 0.39; 'received:mail1.ams1.psf.io': 0.39; 'to:addr:python.org': 0.39; 'software': 0.40; 'proto:https': 0.40; 'your': 0.61; 'leading': 0.61; 'back': 0.61; 'header :Message-Id:1': 0.61; '8bit%:20': 0.63; 'goal': 0.64; 'to:addr :python-announce-list': 0.66; 'url:2016': 0.84; 'url:readthedocs': 0.84; '\xe2\x80\x9cthe': 0.93 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-sasl-enc :x-sasl-enc; s=smtpout; bh=4GEvVbI+oPiIgqeT9w2Dg/o/sxk=; b=D4rg9 TNpzi2oyLtpQCcBYRfYaRAkK3litTw6ri/ED8O1I+++0lARdEX1K1k41GNKxGPHd nJnAHLXO2Zd7FR3+xrj6zmSAgKpeuaqosmQ4pkad1ggsiCM/SfJVYUFvwV71a/ym KyTc3MRTzbGBXxb+Kv5k4XRaKKZR5KnsjI2rzo= X-Sasl-enc: ANTulEmxO/4mie3kxuuF5Hy1Qf7VWrtkxLHznDxAUAmA 1472725896 X-Mailer: Apple Mail (2.3124) X-Mailman-Approved-At: Thu, 01 Sep 2016 08:07:59 -0400 X-BeenThere: python-announce-list@python.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Announcement-only list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <35F9A4C7-2578-4E7F-8E64-EC9797974219@ox.cx> Xref: csiph.com comp.lang.python.announce:2246 I=E2=80=99m happy to announce that attrs 16.1.0 hit PyPI: = https://pypi.org/project/attrs/ attrs is the Python package that will bring back the joy of writing = classes by relieving you from the drudgery of implementing object = protocols (aka dunder methods). Its main goal is to help you to write concise and correct software = without slowing down your code. Leading Python Though Lords=E2=84=A2 have called it =E2=80=9CThe One = Python Library Everyone Needs=E2=80=9D: = https://glyph.twistedmatrix.com/2016/08/attrs.html (subtitle: =E2=80=9CUse= attrs. Use it. Use it for everything.=E2=80=9D) The main change is the option of having frozen (i.e. immutable) classes = which allows for value types in Python. See the full changes at = https://attrs.readthedocs.io/en/stable/changelog.html and never again = violate the single responsibility principle just because implementing = __init__ et al is a painful drag! Cheers, Hynek Schlawack=