.. module:: attr
.. module:: attrs
Release v|release| (What's new? <changelog>).
attrs
is a Python-only package hosted on PyPI.
The recommended installation method is pip-installing into a virtualenv:
$ python -m pip install attrs
The next three steps should bring you up and running in no time:
- overview will show you a simple example of
attrs
in action and introduce you to its philosophy. Afterwards, you can start writing your own classes and understand what drivesattrs
's design. - examples will give you a comprehensive tour of
attrs
's features. After reading, you will know about our advanced features and how to use them. - If you're confused by all the
attr.s
,attr.ib
,attrs
,attrib
,define
,frozen
, andfield
, head over to names for a very short explanation, and optionally a quick history lesson. - Finally why gives you a rundown of potential alternatives and why we think
attrs
is superior. Yes, we've heard aboutnamedtuple
s and Data Classes! - If at any point you get confused by some terminology, please check out our glossary.
If you need any help while getting started, feel free to use the python-attrs
tag on Stack Overflow and someone will surely help you out!
- types help you to write correct and self-documenting code.
attrs
has first class support for them and even allows you to drop the calls to attr.ib on modern Python versions! - Instance initialization is one of
attrs
key feature areas. Our goal is to relieve you from writing as much code as possible. init gives you an overview whatattrs
has to offer and explains some related philosophies we believe in. - Comparing and ordering objects is a common task.
comparison shows you how
attrs
helps you with that and how you can customize it. - If you want to put objects into sets or use them as keys in dictionaries, they have to be hashable. The simplest way to do that is to use frozen classes, but the topic is more complex than it seems and hashing will give you a primer on what to look out for.
- Once you're comfortable with the concepts, our api contains all information you need to use
attrs
to its fullest. attrs
is built for extension from the ground up. extending will show you the affordances it offers and how to make it a building block of your own projects.
.. toctree:: :maxdepth: 2 overview why examples types init comparison hashing api extending how-does-it-work names glossary
.. toctree:: :maxdepth: 1 license python-2 changelog
- genindex
- search