o
    'h&                     @   s@  d Z ddlZddlZddlmZ ddlmZ ddlm	Z	 ddl
mZ ejr+ddlmZ d	ed
efddZd	ed
efddZd	eded
efddZd	ejd
efddZd	ejd
efddZeddd	ed
efddZeddd	ed
efddZd	ejd
efddZd	ejd
efddZd	ejd
efd d!Zd	ejd
efd"d#Zd	ejd
efd$d%Zd	ejd
efd&d'Zd	ed
efd(d)Z d	ed
efd*d+Z!d	ejd
efd,d-Z"d	ejd
efd.d/Z#d	ejd
efd0d1Z$d	ejd
efd2d3Z%d	ejd4ejd
efd5d6Z&d	ejd
efd7d8Z'd	ejd
efd9d:Z(d	ejd;ej)ej d
efd<d=Z*i d>ed?ed@edAedBedCedDedEedFedGedHedIedJedKe dLe!dMe"dNe#i dOe$dPe%dQe'dRe+dSe&dTe(dUe*dVej,dWej,dXej,dYej-dZej-d[ej.d\ej.d]ej.d^ej/d_ej/ej0ej0ej0ej1ej1d`Z2dS )az6Built-in template tests used with the ``is`` operator.    N)abc)Number   )	Undefined)pass_environment)Environmentvaluereturnc                 C      | d dkS )z#Return true if the variable is odd.   r    r   r   r   H/var/www/html/olx_land/venv/lib/python3.10/site-packages/jinja2/tests.pytest_odd      r   c                 C   r
   )z$Return true if the variable is even.r   r   r   r   r   r   r   	test_even   r   r   numc                 C   s   | | dkS )z-Check if a variable is divisible by a number.r   r   )r   r   r   r   r   test_divisibleby   r   r   c                 C   s   t | t S )a;  Return true if the variable is defined:

    .. sourcecode:: jinja

        {% if variable is defined %}
            value of variable: {{ variable }}
        {% else %}
            variable is not defined
        {% endif %}

    See the :func:`default` filter for a simple way to set undefined
    variables.
    
isinstancer   r   r   r   r   test_defined   s   r   c                 C   
   t | tS )z-Like :func:`defined` but the other way round.r   r   r   r   r   test_undefined/      
r   envr   c                 C   
   || j v S )a  Check if a filter exists by name. Useful if a filter may be
    optionally available.

    .. code-block:: jinja

        {% if 'markdown' is filter %}
            {{ value | markdown }}
        {% else %}
            {{ value }}
        {% endif %}

    .. versionadded:: 3.0
    )filtersr   r   r   r   r   test_filter4   s   
r   c                 C   r   )a  Check if a test exists by name. Useful if a test may be
    optionally available.

    .. code-block:: jinja

        {% if 'loud' is test %}
            {% if value is loud %}
                {{ value|upper }}
            {% else %}
                {{ value|lower }}
            {% endif %}
        {% else %}
            {{ value }}
        {% endif %}

    .. versionadded:: 3.0
    )testsr   r   r   r   	test_testF   s   
r    c                 C      | du S )z$Return true if the variable is none.Nr   r   r   r   r   	test_none\   s   r"   c                 C   s   | du p| du S )zNReturn true if the object is a boolean value.

    .. versionadded:: 2.11
    TFr   r   r   r   r   test_booleana   s   r#   c                 C   r!   )zDReturn true if the object is False.

    .. versionadded:: 2.11
    Fr   r   r   r   r   
test_falsei      r$   c                 C   r!   )zCReturn true if the object is True.

    .. versionadded:: 2.11
    Tr   r   r   r   r   	test_trueq   r%   r&   c                 C   s   t | to| duo| duS )zIReturn true if the object is an integer.

    .. versionadded:: 2.11
    TF)r   intr   r   r   r   test_integerz   s   r(   c                 C   r   )zFReturn true if the object is a float.

    .. versionadded:: 2.11
    )r   floatr   r   r   r   
test_float   s   
r*   c                 C      t |  S )z*Return true if the variable is lowercased.)strislowerr   r   r   r   
test_lower   r   r.   c                 C   r+   )z*Return true if the variable is uppercased.)r,   isupperr   r   r   r   
test_upper   r   r0   c                 C   r   )z&Return true if the object is a string.)r   r,   r   r   r   r   test_string   r   r1   c                 C   s   t | tjS )zSReturn true if the object is a mapping (dict etc.).

    .. versionadded:: 2.6
    )r   r   Mappingr   r   r   r   test_mapping   s   r3   c                 C   r   )z(Return true if the variable is a number.)r   r   r   r   r   r   test_number   r   r4   c                 C   s*   z
t |  | j W dS  ty   Y dS w )z^Return true if the variable is a sequence. Sequences are variables
    that are iterable.
    FT)len__getitem__	Exceptionr   r   r   r   test_sequence   s   r8   otherc                 C   s   | |u S )zCheck if an object points to the same memory address than another
    object:

    .. sourcecode:: jinja

        {% if foo.attribute is sameas false %}
            the foo attribute really is the `False` singleton
        {% endif %}
    r   )r   r9   r   r   r   test_sameas   s   
r:   c                 C   s$   zt |  W dS  ty   Y dS w )z1Check if it's possible to iterate over an object.FT)iter	TypeErrorr   r   r   r   test_iterable   s   
r=   c                 C   s
   t | dS )zCheck if the value is escaped.__html__)hasattrr   r   r   r   test_escaped   r   r@   seqc                 C   s   | |v S )z:Check if value is in seq.

    .. versionadded:: 2.10
    r   )r   rA   r   r   r   test_in   r%   rB   oddevendivisiblebydefined	undefinedfiltertestnonebooleanfalsetrueintegerr)   lowerupperstringmappingnumbersequenceiterablecallablesameasescapedinz==eqequaltoz!=ne>gtgreaterthangez>=)<ltlessthanz<=le)3__doc__operatortypingtcollectionsr   numbersr   runtimer   utilsr   TYPE_CHECKINGenvironmentr   r'   boolr   r   r   Anyr   r   r,   r   r    r"   r#   r$   r&   r(   r*   r.   r0   r1   r3   r4   r8   r:   r=   r@   	ContainerrB   rV   rZ   r\   r^   r`   rb   rd   TESTSr   r   r   r   <module>   s    		
 	
 !"#