Metadata-Version: 1.1
Name: attrs
Version: 16.0.0
Summary: Attributes without boilerplate.
Home-page: https://attrs.readthedocs.io/
Author: Hynek Schlawack
Author-email: hs@ox.cx
License: MIT
Description: ======================================
        attrs: Attributes without boilerplate.
        ======================================
        
        .. image:: https://readthedocs.org/projects/attrs/badge/?version=stable
           :target: http://attrs.readthedocs.io/en/stable/?badge=stable
           :alt: Documentation Status
        
        .. image:: https://travis-ci.org/hynek/attrs.svg
           :target: https://travis-ci.org/hynek/attrs
           :alt: CI status
        
        .. image:: https://codecov.io/github/hynek/attrs/coverage.svg?branch=master
           :target: https://codecov.io/github/hynek/attrs?branch=master
           :alt: Coverage
        
        .. teaser-begin
        
        ``attrs`` is an `MIT <http://choosealicense.com/licenses/mit/>`_-licensed Python package with class decorators that ease the chores of implementing the most common attribute-related object protocols:
        
        .. code-block:: pycon
        
           >>> import attr
           >>> @attr.s
           ... class C(object):
           ...     x = attr.ib(default=42)
           ...     y = attr.ib(default=attr.Factory(list))
           >>> i = C(x=1, y=2)
           >>> i
           C(x=1, y=2)
           >>> i == C(1, 2)
           True
           >>> i != C(2, 1)
           True
           >>> attr.asdict(i)
           {'y': 2, 'x': 1}
           >>> C()
           C(x=42, y=[])
           >>> C2 = attr.make_class("C2", ["a", "b"])
           >>> C2("foo", "bar")
           C2(a='foo', b='bar')
        
        (If you don’t like the playful ``attr.s`` and ``attr.ib``, you can also use their no-nonsense aliases ``attr.attributes`` and ``attr.attr``).
        
        You just specify the attributes to work with and ``attrs`` gives you:
        
        - a nice human-readable ``__repr__``,
        - a complete set of comparison methods,
        - an initializer,
        - and much more
        
        *without* writing dull boilerplate code again and again.
        
        This gives you the power to use actual classes with actual types in your code instead of confusing ``tuple``\ s or confusingly behaving ``namedtuple``\ s.
        
        So put down that type-less data structures and welcome some class into your life!
        
        ``attrs``\ ’s documentation lives at `Read the Docs <https://attrs.readthedocs.io/>`_, the code on `GitHub <https://github.com/hynek/attrs>`_.
        It’s rigorously tested on Python 2.7, 3.4+, and PyPy.
        
        
        Release Information
        ===================
        
        16.0.0 (2016-05-23)
        -------------------
        
        Backward-incompatible changes:
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        
        - Python 3.3 and 2.6 aren't supported anymore.
          They may work by chance but any effort to keep them working has ceased.
        
          The last Python 2.6 release was on October 29, 2013 and isn't supported by the CPython core team anymore.
          Major Python packages like Django and Twisted dropped Python 2.6 a while ago already.
        
          Python 3.3 never had a significant user base and wasn't part of any distribution's LTS release.
        
        Changes:
        ^^^^^^^^
        
        - ``__slots__`` have arrived!
          Classes now can automatically be `slots <https://docs.python.org/3.5/reference/datamodel.html#slots>`_-style (and save your precious memory) just by passing ``slots=True``.
          `#35 <https://github.com/hynek/attrs/issues/35>`_
        - Allow the case of initializing attributes that are set to ``init=False``.
          This allows for clean initializer parameter lists while being able to initialize attributes to default values.
          `#32 <https://github.com/hynek/attrs/issues/32>`_
        - ``attr.asdict`` can now produce arbitrary mappings instead of Python ``dict``\ s when provided with a ``dict_factory`` argument.
          `#40 <https://github.com/hynek/attrs/issues/40>`_
        - Multiple performance improvements.
        
        `Full changelog <https://attrs.readthedocs.io/en/stable/changelog.html>`_.
        
        Credits
        =======
        
        ``attrs`` is written and maintained by `Hynek Schlawack <https://hynek.me/>`_.
        
        The development is kindly supported by `Variomedia AG <https://www.variomedia.de/>`_.
        
        A full list of contributors can be found in `GitHub's overview <https://github.com/hynek/attrs/graphs/contributors>`_.
        
        It’s the spiritual successor of `characteristic <https://characteristic.readthedocs.io/>`_ and aspires to fix some of it clunkiness and unfortunate decisions.
        Both were inspired by Twisted’s `FancyEqMixin <https://twistedmatrix.com/documents/current/api/twisted.python.util.FancyEqMixin.html>`_ but both are implemented using class decorators because `sub-classing is bad for you <https://www.youtube.com/watch?v=3MNVP9-hglc>`_, m’kay?
        
Keywords: class,attribute,boilerplate
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Software Development :: Libraries :: Python Modules
