HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberPanel/lib64/python3.10/site-packages/attr/__pycache__/converters.cpython-310.pyc
o

��h�@sZdZddlZddlmZddlmZmZmZmZgd�Z	dd�Z
edfd	d
�Zdd�ZdS)
z
Commonly useful converters.
�N�)�_AnnotationExtractor)�NOTHING�	Converter�Factory�pipe)�default_if_none�optionalr�to_boolcs�t�t�r�fdd�}n�fdd�}t��}|��}|r$tj||jd<|��}|r2tj||jd<t�t�r>t|ddd�S|S)a_
    A converter that allows an attribute to be optional. An optional attribute
    is one which can be set to `None`.

    Type annotations will be inferred from the wrapped converter's, if it has
    any.

    Args:
        converter (typing.Callable):
            the converter that is used for non-`None` values.

    .. versionadded:: 17.1.0
    cs|durdS�|||�S�N�)�val�inst�field��	converterr�E/usr/local/CyberPanel/lib/python3.10/site-packages/attr/converters.py�optional_converter&sz$optional.<locals>.optional_convertercs|durdS�|�Srr�r
rrrr-sr
�returnT)�
takes_self�takes_field)�
isinstancerr�get_first_param_type�typing�Optional�__annotations__�get_return_type)rr�xtr�t�rtrrrr	s

r	cs��tur|durd}t|���tur|durd}t|��|dur$t|��t�t�r:�jr2d}t|���fdd�}|S�fdd�}|S)a�
    A converter that allows to replace `None` values by *default* or the result
    of *factory*.

    Args:
        default:
            Value to be used if `None` is passed. Passing an instance of
            `attrs.Factory` is supported, however the ``takes_self`` option is
            *not*.

        factory (typing.Callable):
            A callable that takes no parameters whose result is used if `None`
            is passed.

    Raises:
        TypeError: If **neither** *default* or *factory* is passed.

        TypeError: If **both** *default* and *factory* are passed.

        ValueError:
            If an instance of `attrs.Factory` is passed with
            ``takes_self=True``.

    .. versionadded:: 18.2.0
    Nz(Must pass either `default` or `factory`.z5Must pass either `default` or `factory` but not both.z1`takes_self` is not supported by default_if_none.cs|dur|S���Sr)�factoryr��defaultrr�default_if_none_converterlsz2default_if_none.<locals>.default_if_none_convertercs|dur|S�Srrrr"rrr$ts)r�	TypeErrorrrr�
ValueError)r#r!�msgr$rr"rrBs 
�rcCs<t|t�r	|��}|dvrdS|dvrdSd|��}t|��)a�
    Convert "boolean" strings (for example, from environment variables) to real
    booleans.

    Values mapping to `True`:

    - ``True``
    - ``"true"`` / ``"t"``
    - ``"yes"`` / ``"y"``
    - ``"on"``
    - ``"1"``
    - ``1``

    Values mapping to `False`:

    - ``False``
    - ``"false"`` / ``"f"``
    - ``"no"`` / ``"n"``
    - ``"off"``
    - ``"0"``
    - ``0``

    Raises:
        ValueError: For any other value.

    .. versionadded:: 21.3.0
    )T�truer�yes�y�on�1rT)F�false�f�no�n�off�0rFzCannot convert value to bool: )r�str�lowerr&)r
r'rrrr
}s

r
)
�__doc__r�_compatr�_makerrrr�__all__r	rr
rrrr�<module>s-;