Viewing File: /opt/alt/python35/lib/python3.5/site-packages/attr/__pycache__/validators.cpython-35.pyc



#IGZ`@sQdZddlmZmZmZddlmZmZmZm	Z	ddddd	gZ
e	d
ddd
dd
GdddeZddZ
e	d
ddd
dd
GdddeZdd	Ze	d
ddd
dd
GdddeZddZe	d
ddd
dd
GdddeZddZdS)z
Commonly useful validators.
)absolute_importdivisionprint_function)
_AndValidatorand_attribattrsrin_instance_ofoptionalprovidesreprFslotsThashc@s1eZdZeZddZddZdS)_InstanceOfValidatorc
CsUt||jsQtdjd|jd|jd|jd|||j|dS)zP
        We use a callable class to be able to change the ``__repr__``.
        z?'{name}' must be {type!r} (got {value!r} that is a {actual!r}).nametypeactualvalueN)
isinstancer	TypeErrorformatr	__class__)selfinstattrrr/validators.py__call__s	z_InstanceOfValidator.__call__cCsdjd|jS)Nz)<instance_of validator for type {type!r}>r)rr)rrrr__repr__$s	z_InstanceOfValidator.__repr__N)__name__
__module____qualname__rrrr rrrrrs	
rcCs
t|S)a
    A validator that raises a :exc:`TypeError` if the initializer is called
    with a wrong type for this particular attribute (checks are performed using
    :func:`isinstance` therefore it's also valid to pass a tuple of types).

    :param type: The type to check for.
    :type type: type or tuple of types

    :raises TypeError: With a human readable error message, the attribute
        (of type :class:`attr.Attribute`), the expected type, and the value it
        got.
    )r)rrrrr+s
c@s1eZdZeZddZddZdS)_ProvidesValidatorcCsL|jj|sHtdjd|jd|jd|||j|dS)zP
        We use a callable class to be able to change the ``__repr__``.
        z<'{name}' must provide {interface!r} which {value!r} doesn't.r	interfacerN)r%Z
providedByrrr)rrrrrrrr?s
	z_ProvidesValidator.__call__cCsdjd|jS)Nz0<provides validator for interface {interface!r}>r%)rr%)rrrrr Ks	z_ProvidesValidator.__repr__N)r!r"r#rr%rr rrrrr$;s	r$cCs
t|S)a
    A validator that raises a :exc:`TypeError` if the initializer is called
    with an object that does not provide the requested *interface* (checks are
    performed using ``interface.providedBy(value)`` (see `zope.interface
    <https://zopeinterface.readthedocs.io/en/latest/>`_).

    :param zope.interface.Interface interface: The interface to check for.

    :raises TypeError: With a human readable error message, the attribute
        (of type :class:`attr.Attribute`), the expected interface, and the
        value it got.
    )r$)r%rrrr
Rs
c@s1eZdZeZddZddZdS)_OptionalValidatorcCs'|dkrdS|j|||dS)N)	validator)rrrrrrrrfsz_OptionalValidator.__call__cCsdjdt|jS)Nz'<optional validator for {what} or None>Zwhat)rrr')rrrrr ls	z_OptionalValidator.__repr__N)r!r"r#rr'rr rrrrr&bs	r&cCs)t|trtt|St|S)a
    A validator that makes an attribute optional.  An optional attribute is one
    which can be set to ``None`` in addition to satisfying the requirements of
    the sub-validator.

    :param validator: A validator (or a list of validators) that is used for
        non-``None`` values.
    :type validator: callable or :class:`list` of callables.

    .. versionadded:: 15.1.0
    .. versionchanged:: 17.1.0 *validator* can be a list of validators.
    )rlistr&r)r'rrrrss
c@s1eZdZeZddZddZdS)_InValidatorcCs=||jkr9tdjd|jd|jd|dS)Nz/'{name}' must be in {options!r} (got {value!r})roptionsr)r*
ValueErrorrr)rrrrrrrrs	z_InValidator.__call__cCsdjd|jS)Nz(<in_ validator with options {options!r}>r*)rr*)rrrrr s	z_InValidator.__repr__N)r!r"r#rr*rr rrrrr)s	r)cCs
t|S)a
    A validator that raises a :exc:`ValueError` if the initializer is called
    with a value that does not belong in the options provided.  The check is
    performed using ``value in options``.

    :param options: Allowed options.
    :type options: list, tuple, :class:`enum.Enum`, ...

    :raises ValueError: With a human readable error message, the attribute (of
       type :class:`attr.Attribute`), the expected options, and the value it
       got.

    .. versionadded:: 17.1.0
    )r))r*rrrr
sN)__doc__Z
__future__rrr_makerrrr	__all__objectrrr$r
r&rr)r
rrrr<module>s&"	%%%%
Back to Directory File Manager