
    -Ph                       U d dl mZ ddlmZ ddlmZmZ ddlmZm	Z	 ddl
mZ ddlmZmZ d d	lZd d	lZd d
lmZ d dlmZ ej        r5d dlmZmZ ddlmZ  ej        ddd          Z G d dee                   Z ej        dej        dej         f                   Z!ej"        e#e$e%ej&        d         ej'        e#df         f         Z(de)d<   ej"        e(edej&        d         ej'        e#df         f         Z*de)d<   ej"        e*ej+        f         Z,ej'        e#e*f         Z-ej'        e#e,f         Z.ej        ej+        ge#f         Z/ ej0        de#          Z1 G d d          Z2 G d de2          Z3 G d d          Z4ee$e%e#e5e6fZ7ej"        e*ef         Z8 ej        d e8          Z9 G d! d"e2ej:        e9                   Z; G d# d$e%          Z< G d& d'e3e          Z=d	S )(    )annotations   )mparser   )InvalidCodeInvalidArguments)flattenresolve_second_level_holders)MesonOperator)HoldableObjectMesonBugExceptionN)ABCMeta)AbstractContextManager)Protocol	TypeAlias)Interpreter__TTYPE_varT)boundcontravariantc                      e Zd ZddZdS )OperatorCallotherr   return
'TYPE_var'c                    d S N selfr   s     f/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/interpreterbase/baseobjects.py__call__zOperatorCall.__call__   s          N)r   r   r   r   )__name__
__module____qualname__r"   r   r#   r!   r   r      s        999999r#   r   TV_func.)r   TYPE_elementaryr   MesonInterpreterObject
SubProjectc                  L    e Zd ZddddZdd	ZddZddZddZd dZd dZ	dS )!InterpreterObjectN
subprojectr.   T.Optional['SubProject']r   Nonec                   i | _         i | _        i | _        d | _        |pt	          d          | _        | j                            t          j        | j	        t          j
        | j        i           d S )N )methods	operatorstrivial_operatorscurrent_noder*   r.   updater   EQUALS	op_equals
NOT_EQUALSop_not_equals)r    r.   s     r!   __init__zInterpreterObject.__init__)   s      	 AC  	 04$6
2 	 $.$d&8
 	 	 	 	 	r#   strc                *    t          |           j        S r   )typer$   r    s    r!   display_namezInterpreterObject.display_nameB   s    Dzz""r#   method_nameargsT.List[TYPE_var]kwargsTYPE_kwargsr   c           
     $   || j         v r]| j         |         }t          |dd          st          |          }t          |dd          st          ||          \  }} |||          S t	          d| d|  dt          |           j         d          )Nzno-args-flatteningFz!no-second-level-holder-flatteningzUnknown method "z" in object 	 of type .)r3   getattrr	   r
   r   r?   r$   )r    rB   rC   rE   methods        r!   method_callzInterpreterObject.method_callE   s     $,&&\+.F6#7?? %t}}6#FNN J;D&IIf6$'''k[kkdkkUYZ^U_U_Uhkkklllr#   operatorr   r   c                P   || j         v r| j         |         }|d         F|Dt          d|j         d|                                  d| dt	          |          j                   |d         [t          ||d                   sEt          d|j         d|                                  dt	          |          j         d	| d
	           |d         |          S || j        v r | j        |         |          S t          d|  d|                                  d|j         d          )Nr   zThe unary operator `z` of z was passed the object rH   zThe `z` operator of z! does not accept objects of type z ()r   zObject z does not support the `z` operator.)
r5   r   valuerA   r?   r$   
isinstancer   r4   r   )r    rM   r   ops       r!   operator_callzInterpreterObject.operator_callT   s   t---'1B!u}!2'  )gx~  )g  )gTXTeTeTgTg  )g  )g  AF  )g  )g  QU  V[  Q\  Q\  Qe  )g  )g  h  h  h!u E2a5)A)A &  (dx~  (d  (dTM^M^M`M`  (d  (d  DH  IN  DO  DO  DX  (d  (d  \a  (d  (d  (d  e  e  e2a5<<t~%%+4>(+E222zDzz43D3D3F3Fzz_g_mzzz{{{r#   opt_type
T.NoReturnc                    t          t          j        d|                                  dt	          |          j         d| d                    )Nz>
                Trying to compare values of different types (z, z) using zv.
                This was deprecated and undefined behavior previously and is as of 0.60.0 a hard error.
            )r   textwrapdedentrA   r?   r$   )r    r   rT   s      r!   _throw_comp_exceptionz'InterpreterObject._throw_comp_exceptiona   sk    x>B>O>O>Q>Q UYZ_U`U`Ui s{   
  
   	r#   boolc                v    t          |           t          |          ur|                     |d           | |k    S Nz==r?   rY   r   s     r!   r9   zInterpreterObject.op_equalsi   s;     ::T%[[((&&ud333u}r#   c                v    t          |           t          |          ur|                     |d           | |k    S Nz!=r]   r   s     r!   r;   zInterpreterObject.op_not_equalsq   s9    ::T%[[((&&ud333u}r#   )r.   r/   r   r0   r   r=   )rB   r=   rC   rD   rE   rF   r   r   )rM   r   r   r   r   r   )r   r   rT   r=   r   rU   r   r   r   rZ   )
r$   r%   r&   r<   rA   rL   rS   rY   r9   r;   r   r#   r!   r,   r,   (   s        AE      2# # # #m m m m
| 
| 
| 
|           r#   r,   c                      e Zd ZdZdS )r)   zO All non-elementary objects and non-object-holders should be derived from this Nr$   r%   r&   __doc__r   r#   r!   r)   r)   v   s        YYYYr#   c                      e Zd ZdZdS )MutableInterpreterObjectz0 Dummy class to mark the object type as mutable Nrc   r   r#   r!   rf   rf   y   s        ::::r#   rf   InterpreterObjectTypeVarc                  @     e Zd Zd fdZdd	ZddZddZddZ xZS )ObjectHolderobjrg   interpreter'Interpreter'r   r0   c                &   t                                          |j                   t          j        s=t          |t                    s(J dt          |          j         dt           d            || _	        || _
        | j
        j        | _        d S )Nr-   z.This is a bug: Trying to hold object of type `z` that is not in ``)superr<   r.   TTYPE_CHECKINGrQ   HoldableTypesr?   r$   held_objectrk   environmentenv)r    rj   rk   	__class__s      r!   r<   zObjectHolder.__init__   s    K$:;;;  	[c=11  [  [  4[dhildmdmdv  4[  4[  KX  4[  4[  4[  [  [  [&#/r#   r=   c                4    t          | j                  j        S r   )r?   rs   r$   r@   s    r!   rA   zObjectHolder.display_name   s    D$%%..r#   r   r   rZ   c                    t          | j                  t          |          ur|                     |d           | j        |k    S r\   r?   rs   rY   r   s     r!   r9   zObjectHolder.op_equals   sB     !!e44&&ud3335((r#   c                    t          | j                  t          |          ur|                     |d           | j        |k    S r_   ry   r   s     r!   r;   zObjectHolder.op_not_equals   sB     !!e44&&ud3335((r#   c                v    dt          |           j         dt          | j                  j         d| j        dS )Nz<[z	] holds [z]: >)r?   r$   rs   r@   s    r!   __repr__zObjectHolder.__repr__   s>    kDJJ'kk$t7G2H2H2QkkVZVfkkkkr#   )rj   rg   rk   rl   r   r0   r`   ra   )	r$   r%   r&   r<   rA   r9   r;   r}   __classcell__rv   s   @r!   ri   ri      s        	0 	0 	0 	0 	0 	0/ / / /) ) ) )) ) ) )
l l l l l l l lr#   ri   c                  *    e Zd ZdZd
dZddZddZd	S )IterableObjectzFBase class for all objects that can be iterated over in a foreach loopr   T.Optional[int]c                :    t          d| j        j                   )zaReturn the size of the tuple for each iteration. Returns None if only a single value is returned.z$iter_tuple_size not implemented for r   rv   r$   r@   s    r!   iter_tuple_sizezIterableObject.iter_tuple_size   s     `t~G^ ` `aaar#   5T.Iterator[T.Union[TYPE_var, T.Tuple[TYPE_var, ...]]]c                :    t          d| j        j                   )Nziter not implemented for r   r@   s    r!   	iter_selfzIterableObject.iter_self        UDN<S U UVVVr#   intc                :    t          d| j        j                   )Nzsize not implemented for r   r@   s    r!   sizezIterableObject.size   r   r#   N)r   r   )r   r   )r   r   )r$   r%   r&   rd   r   r   r   r   r#   r!   r   r      sd        PPb b b bW W W WW W W W W Wr#   r   )	metaclassc                        e Zd Zd fdZ xZS )ContextManagerObjectr.   'SubProject'r   r0   c                L    t                                          |           d S )Nr-   )ro   r<   )r    r.   rv   s     r!   r<   zContextManagerObject.__init__   s$    J/////r#   )r.   r   r   r0   )r$   r%   r&   r<   r~   r   s   @r!   r   r      s=        0 0 0 0 0 0 0 0 0 0r#   r   )>
__future__r   r2   r   
exceptionsr   r   helpersr	   r
   rM   r   mesonlibr   r   rW   typingrp   abcr   
contextlibr   rq   typing_extensionsr   r   rk   r   TypeVarr   r   CallableAnyr'   Unionr=   r   rZ   SequenceDictr(   __annotations__r   BaseNode	TYPE_nvarrF   TYPE_nkwargsTYPE_key_resolverNewTyper*   r,   r)   rf   listdictrr   TYPE_HoldableTypesrg   Genericri   r   r   r   r#   r!   <module>r      s   # " " " " " "       5 5 5 5 5 5 5 5 : : : : : : : : # # # # # # 8 8 8 8 8 8 8 8            - - - - - -? 	:55555555 *)))))
!)E4
@
@
@C: : : : :x} : : : !)IQZQU
%;
<
<
<WS#tQZ@Q5RTUTZ[^`q[qTr%rs s s s sgo~?WYZYcdnYoqrqwx{  ~H  yH  rI  I  J  J  J  J  JGHg../	fS(]#vc9n%J 01367 QY|S))
L L L L L L L L\Z Z Z Z Z. Z Z Z; ; ; ; ; ; ; ;  dCt<WX~56 $19%?GYZZZ l l l l l$ai0H&I l l l>W W W W Ww W W W W0 0 0 0 013I 0 0 0 0 0r#   