
    -Ph                        d dl mZ ddlmZmZmZmZmZmZm	Z	m
Z
mZ d dlZej        rddlmZ ddlmZmZ  G d dee                   ZdS )	    )annotations   )	FeatureBrokenInvalidArgumentsMesonOperatorObjectHolder	KwargInfonoKwargs	noPosargstyped_operatortyped_kwargsN)Interpreter)TYPE_varTYPE_kwargsc            	      F    e Zd Zd fdZd d	Zd! fdZeed"d                        Zeed"d                        Z	 e
d ededd                    ed#d                        Z eej        e          d$d            Z eej        e          d$d            Z xZS )%IntegerHolderobjintinterpreter'Interpreter'returnNonec                    t                                          ||            j                             j         j         j        d            j                            t          j	        d  fdft          j
        t           fdft          j        t           fdft          j        t           fdft          j        t           fdft          j        t           fdft          j        t           fdft          j        t           fd	ft          j        t           fd
ft          j        t           fdfi
            j                            t          j         j        t          j         j        i           d S )N)is_evenis_odd	to_stringc                    j          S Nheld_objectxselfs    i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/interpreter/primitives/integer.py<lambda>z(IntegerHolder.__init__.<locals>.<lambda>   s    D4D3D     c                    j         | z   S r   r   r!   s    r$   r%   z(IntegerHolder.__init__.<locals>.<lambda>   s    0@10D r&   c                    j         | z
  S r   r   r!   s    r$   r%   z(IntegerHolder.__init__.<locals>.<lambda>       1AA1E r&   c                    j         | z  S r   r   r!   s    r$   r%   z(IntegerHolder.__init__.<locals>.<lambda>   r)   r&   c                    j         | k    S r   r   r!   s    r$   r%   z(IntegerHolder.__init__.<locals>.<lambda>"   s    $2Ba2G r&   c                    j         | k    S r   r   r!   s    r$   r%   z(IntegerHolder.__init__.<locals>.<lambda>#   s    d6F!6K r&   c                    j         | k    S r   r   r!   s    r$   r%   z(IntegerHolder.__init__.<locals>.<lambda>$   s    43Ca3G r&   c                    j         | k     S r   r   r!   s    r$   r%   z(IntegerHolder.__init__.<locals>.<lambda>%   s    0@10D r&   c                    j         | k    S r   r   r!   s    r$   r%   z(IntegerHolder.__init__.<locals>.<lambda>&   s    $:Ja:O r&   c                    j         | k    S r   r   r!   s    r$   r%   z(IntegerHolder.__init__.<locals>.<lambda>'   s    t7G17L r&   )super__init__methodsupdateis_even_methodis_odd_methodto_string_methodtrivial_operatorsr   UMINUSPLUSr   MINUSTIMESEQUALS
NOT_EQUALSGREATERLESSGREATER_EQUALSLESS_EQUALS	operatorsDIVop_divMODop_mod)r#   r   r   	__class__s   `  r$   r2   zIntegerHolder.__init__   s   k****(.
 
 	 	 	 	%% 4)D)D)D)D"E&D&D&D&D E#'E'E'E'E!F#'E'E'E'E!F  3(G(G(G(G"H$s,K,K,K,K&L!C)G)G)G)G#H&D&D&D&D E(30O0O0O0O*P%-L-L-L-L'M'
 	 	 	" 	t{t{
 	 	 	 	 	r&   strc                    dS )Nr    )r#   s    r$   display_namezIntegerHolder.display_name0   s    ur&   operatorr   otherr   c                    t          |t                    r#t          j        dd| j        d| j                   t                                          ||          S )Nzint operations with non-intz1.2.0zKIt is not commutative and only worked because of leaky Python abstractions.)location)
isinstanceboolr   
single_use
subprojectcurrent_noder1   operator_call)r#   rM   rN   rH   s      r$   rV   zIntegerHolder.operator_call3   sb    eT"" 	A$%BGT_%r.2.?A A A A ww$$Xu555r&   argsT.List[TYPE_var]kwargsr   rR   c                    | j         dz  dk    S N   r   r   r#   rW   rY   s      r$   r5   zIntegerHolder.is_even_method:        !#q((r&   c                    | j         dz  dk    S r[   r   r]   s      r$   r6   zIntegerHolder.is_odd_method?   r^   r&   r   fillr   z1.3.0)defaultsinceT.Dict[str, T.Any]c                \    t          | j                                      |d                   S )Nr`   )rI   r    zfillr]   s      r$   r7   zIntegerHolder.to_string_methodD   s'     4#$$**6&>:::r&   c                @    |dk    rt          d          | j        |z  S Nr   zTried to divide by 0r   r    r#   rN   s     r$   rE   zIntegerHolder.op_divL   s(    A::"#9:::5((r&   c                @    |dk    rt          d          | j        |z  S rg   rh   ri   s     r$   rG   zIntegerHolder.op_modR   s(    A::"#9:::%''r&   )r   r   r   r   r   r   )r   rI   )rM   r   rN   r   r   r   )rW   rX   rY   r   r   rR   )rW   rX   rY   rc   r   rI   )rN   r   r   r   )__name__
__module____qualname__r2   rL   rV   r
   r   r5   r6   r   r	   r   r7   r   r   rD   rE   rF   rG   __classcell__)rH   s   @r$   r   r      sw            <   6 6 6 6 6 6 ) ) ) Y X) ) ) ) Y X) \	&#q888  ; ; ; Y	 
; ^M%s++) ) ) ,+)
 ^M%s++( ( ( ,+( ( ( ( (r&   r   )
__future__r   interpreterbaser   r   r   r   r	   r
   r   r   r   typingTTYPE_CHECKINGr   r   r   r   r   r   rK   r&   r$   <module>rt      s   # " " " " "                     
    ? 9******88888888E( E( E( E( E(L% E( E( E( E( E(r&   