python-attrs
Port variant v12
Summary Classes Without Boilerplate (3.12)
BROKEN
Package version 24.2.0
Homepage No known homepage
Keywords python
Maintainer Python Automaton
License Not yet specified
Other variants v13
Ravenports Buildsheet | History
Ravensource Port Directory | History
Last modified 11 NOV 2024, 23:28:05 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.
Configuration Switches (platform-specific settings discarded)
PY312 ON Build using Python 3.12 PY313 OFF Build using Python 3.13
Package Dependencies by Type
Build (only) python312:dev:std
python-pip:single:v12
autoselect-python:single:std
Build and Runtime python312:primary:std
Download groups
main mirror://PYPIWHL/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a
Distribution File Information
81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2 63001 attrs-24.2.0-py3-none-any.whl
Ports that require python-attrs:v12
python-Twisted:v12 Asynchronous networking framework (3.12)
python-aiohttp:v12 Async http client/server framework (3.12)
python-cattrs:v12 Composable complex class support for attrs (3.12)
python-jsonschema:v12 Alternate implementation of JSON Schema (3.12)
python-referencing:v12 JSON Referencing + Python (3.12)
python-requests-cache:v12 Persistent cache for python requests (3.12)
python-statmake:v12 Applies STAT Stylespace to a variable font (3.12)
python-ufoLib2:v12 UfoLib2 is a UFO font processing library (3.12)