python-attrs
Port variant py310
Summary Classes Without Boilerplate (3.10)
Package version 23.1.0
Homepage No known homepage
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v11
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 17 APR 2023, 18:32:07 UTC
Port created 06 AUG 2019, 14:27:27 UTC
Subpackage Descriptions
single

[image]

*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]). [Trusted by NASA] for Mars missions since 2020! Its main goal is to help you to write **concise** and **correct** software without slowing down your code. ## Sponsors *attrs* would not be possible without our [amazing sponsors]. Especially those generously supporting us at the *The Organization* tier and higher:

[image] [image] [image] [image]

Please consider joining them to help make attrs’s maintenance more sustainable!

## Example *attrs* gives you a class decorator and a way to declaratively define the attributes on that class: ```pycon >>> from attrs import asdict, define, make_class, Factory >>> @define ... class SomeClass: ... a_number: int = 42 ... list_of_numbers: list[int] = Factory(list) ... ... def hard_math(self, another_number): ... return self.a_number + sum(self.list_of_numbers) * another_number >>> sc = SomeClass(1, [1, 2, 3]) >>> sc SomeClass(a_number=1, list_of_numbers=[1, 2, 3]) >>> sc.hard_math(3) 19 >>> sc == SomeClass(1, [1, 2, 3]) True >>> sc != SomeClass(2, [3, 2, 1]) True >>> asdict(sc) {'a_number': 1, 'list_of_numbers': [1, 2, 3]} >>> SomeClass() SomeClass(a_number=42, list_of_numbers=[]) >>> C = make_class("C", ["a", "b"]) >>> C("foo", "bar") C(a='foo', b='bar') ``` After *declaring* your attributes, *attrs* gives you: - a concise and explicit overview of the class's attributes, - a nice human-readable `__repr__`, - equality-checking methods, - an initializer, - and much more, *without* writing dull boilerplate code again and again and *without* runtime performance penalties. **Hate type annotations**!? No problem! Types are entirely **optional** with *attrs*.
Configuration Switches (platform-specific settings discarded)
PY310 ON Build using Python 3.10 PY311 OFF Build using Python 3.11
Package Dependencies by Type
Build (only) python-pip:single:py310
autoselect-python:single:standard
Build and Runtime python310:single:standard
Download groups
main mirror://PYPIWHL/f0/eb/fcb708c7bf5056045e9e98f62b93bd7467eb718b0202e7698eb11d66416c
Distribution File Information
1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04 61160 attrs-23.1.0-py3-none-any.whl
Ports that require python-attrs:py310
python-Automat:py310 Self-service finite-state machines (3.10)
python-Twisted:py310 Asynchronous networking framework (3.10)
python-aiohttp:py310 Async http client/server framework (3.10)
python-cattrs:py310 Composable complex class support for attrs (3.10)
python-jsonschema:py310 Alternate implementation of JSON Schema (3.10)
python-referencing:py310 JSON Referencing + Python (3.10)
python-statmake:py310 Applies STAT Stylespace to a variable font (3.10)
python-ufoLib2:py310 UfoLib2 is a UFO font processing library (3.10)