
    -PhO                        d dl mZ ddl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   )ObjectHolderMesonOperatortyped_pos_argsnoKwargs	noPosargsInvalidArgumentsN)Interpreter)TYPE_varTYPE_kwargsc                       e Zd Zd fdZdd	Zeedd                        Ze ede	e	g          dd                        Z
 xZS )BooleanHolderobjboolinterpreter'Interpreter'returnNonec                l    t                                          ||            j                             j         j        d            j                            t          j        d  fdft          j	        d  fdft          j
        t           fdft          j        t           fdfi           d S )N)to_int	to_stringc                    j         S Nheld_objectxselfs    i/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/interpreter/primitives/boolean.py<lambda>z(BooleanHolder.__init__.<locals>.<lambda>   s
    1A     c                    j          S r   r   r   s    r    r!   z(BooleanHolder.__init__.<locals>.<lambda>    s    D4D0D r"   c                    j         | k    S r   r   r   s    r    r!   z(BooleanHolder.__init__.<locals>.<lambda>!   s    43Cq3H r"   c                    j         | k    S r   r   r   s    r    r!   z(BooleanHolder.__init__.<locals>.<lambda>"   s    t7G17L r"   )super__init__methodsupdateto_int_methodto_string_methodtrivial_operatorsr   BOOLNOTEQUALSr   
NOT_EQUALS)r   r   r   	__class__s   `  r    r'   zBooleanHolder.__init__   s    k***(.
 
 	 	 	
 	%%'A'A'A'A B&D&D&D&DE 4)H)H)H)H"I$t-L-L-L-L&M	'
 	 	 	 	 	r"   strc                    dS )Nr    )r   s    r    display_namezBooleanHolder.display_name%   s    vr"   argsT.List[TYPE_var]kwargsr   intc                    | j         rdndS )N   r   r   )r   r6   r8   s      r    r*   zBooleanHolder.to_int_method(   s     $+qq!+r"   zbool.to_string)optargs)T.Tuple[T.Optional[str], T.Optional[str]]c                    |d         pd}|d         pd}t          d |D                       r(t          d |D                       st          d          | j        r|n|S )Nr   truer;   falsec              3     K   | ]}|d uV  	d S r   r4   .0r   s     r    	<genexpr>z1BooleanHolder.to_string_method.<locals>.<genexpr>2   s&      ++q}++++++r"   c              3     K   | ]}|d uV  	d S r   r4   rB   s     r    rD   z1BooleanHolder.to_string_method.<locals>.<genexpr>2   s&      7T7T!7T7T7T7T7T7Tr"   zbool.to_string() must have either no arguments or exactly two string arguments that signify what values to return for true and false.)anyallr
   r   )r   r6   r8   true_str	false_strs        r    r+   zBooleanHolder.to_string_method-   s     7$fG&w	++d+++++ 	lC7T7Tt7T7T7T4T4T 	l"  $k  l  l  l+:xx:r"   )r   r   r   r   r   r   )r   r2   )r6   r7   r8   r   r   r9   )r6   r=   r8   r   r   r2   )__name__
__module____qualname__r'   r5   r   r	   r*   r   r2   r+   __classcell__)r1   s   @r    r   r      s                 , , , Y X, ^$sCj999; ; ; :9 X; ; ; ; ;r"   r   )
__future__r   interpreterbaser   r   r   r   r	   r
   typingTTYPE_CHECKINGr   r   r   r   r   r   r4   r"   r    <module>rS      s    # " " " " "                   ? 9******88888888; ; ; ; ;L& ; ; ; ; ;r"   