`526`).
    This argument is provided for backward compatibility.
    Regardless of the approach used, the type will be stored on
    ``Attribute.type``.

    Please note that ``attrs`` doesn't do anything with this metadata by
    itself. You can use it as part of your own code or for
    `static type checking <types>`.
:param kw_only: Make this attribute keyword-only (Python 3+)
    in the generated ``__init__`` (if ``init`` is ``False``, this
    parameter is ignored).
:param on_setattr: Allows to overwrite the *on_setattr* setting from
    `attr.s`. If left `None`, the *on_setattr* value from `attr.s` is used.
    Set to `attrs.setters.NO_OP` to run **no** `setattr` hooks for this
    attribute -- regardless of the setting in `attr.s`.
:type on_setattr: `callable`, or a list of callables, or `None`, or
    `attrs.setters.NO_OP`

.. versionadded:: 15.2.0 *convert*
.. versionadded:: 16.3.0 *metadata*
.. versionchanged:: 17.1.0 *validator* can be a ``list`` now.
.. versionchanged:: 17.1.0
   *hash* is ``None`` and therefore mirrors *eq* by default.
.. versionadded:: 17.3.0 *type*
.. deprecated:: 17.4.0 *convert*
.. versionadded:: 17.4.0 *converter* as a replacement for the deprecated
   *convert* to achieve consistency with other noun-based arguments.
.. versionadded:: 18.1.0
   ``factory=f`` is syntactic sugar for ``default=attr.Factory(f)``.
.. versionadded:: 18.2.0 *kw_only*
.. versionchanged:: 19.2.0 *convert* keyword argument removed.
.. versionchanged:: 19.2.0 *repr* also accepts a custom callable.
.. deprecated:: 19.2.0 *cmp* Removal on or after 2021-06-01.
.. versionadded:: 19.2.0 *eq* and *order*
.. versionadded:: 20.1.0 *on_setattr*
.. versionchanged:: 20.3.0 *kw_only* backported to Python 2
.. versionchanged:: 21.1.0
   *eq*, *order*, and *cmp* also accept a custom callable
.. versionchanged:: 21.1.0 *cmp* undeprecated
TNFú6Invalid value for hash.  Must be True, False, or None.z=The `default` and `factory` arguments are mutually exclusive.z*The `factory` argument must be a callable.)Ú