
    -PhD                         d Z ddgZddlZddlmZ  ej        d          Z G d de          Z G d	 d
eeej                  Z	 G d dee                   Z
dS )zcMeson specific typing helpers.

Holds typing helper classes, such as the ImmutableProtocol classes
ProtocolImmutableListProtocol    N)r   Tc                       e Zd ZdefdZdS )StringProtocolreturnc                     d S N selfs    R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/_typing.py__str__zStringProtocol.__str__             N)__name__
__module____qualname__strr   r   r   r   r   r      s!        !!!!!!!r   r   c                       e Zd ZdS )SizedStringProtocolN)r   r   r   r   r   r   r   r      s        Dr   r   c                      e Zd ZdZdej        e         fdZej        de	defd            Z
ej        dedej        e         fd            Z
dedefdZdej        e         fd	Zde	fd
Zdej        e         dej        e         fdZdej        defdZdej        defdZdej        defdZdej        defdZdej        defdZdej        defdZdede	fdZdede	fdZdej        e         fdZdS )r   ar  A protocol used in cases where a list is returned, but should not be
    mutated.

    This provides all of the methods of a Sequence, as well as copy(). copy()
    returns a list, which allows mutation as it's a copy and that's (hopefully)
    safe.

    One particular case this is important is for cached values, since python is
    a pass-by-reference language.
    r   c                     d S r
   r   r   s    r   __iter__zImmutableListProtocol.__iter__+   r   r   indexc                     d S r
   r   r   r   s     r   __getitem__z!ImmutableListProtocol.__getitem__-   s    ,/Cr   c                     d S r
   r   r   s     r   r   z!ImmutableListProtocol.__getitem__/   s    ;>3r   itemc                     d S r
   r   r   r    s     r   __contains__z"ImmutableListProtocol.__contains__2   r   r   c                     d S r
   r   r   s    r   __reversed__z"ImmutableListProtocol.__reversed__4   r   r   c                     d S r
   r   r   s    r   __len__zImmutableListProtocol.__len__6   r   r   otherc                     d S r
   r   r   r(   s     r   __add__zImmutableListProtocol.__add__8   r   r   c                     d S r
   r   r*   s     r   __eq__zImmutableListProtocol.__eq__:   r   r   c                     d S r
   r   r*   s     r   __ne__zImmutableListProtocol.__ne__;   r   r   c                     d S r
   r   r*   s     r   __le__zImmutableListProtocol.__le__<   r   r   c                     d S r
   r   r*   s     r   __lt__zImmutableListProtocol.__lt__=   r   r   c                     d S r
   r   r*   s     r   __gt__zImmutableListProtocol.__gt__>   r   r   c                     d S r
   r   r*   s     r   __ge__zImmutableListProtocol.__ge__?   r   r   c                     d S r
   r   r"   s     r   countzImmutableListProtocol.countA   r   r   c                     d S r
   r   r"   s     r   r   zImmutableListProtocol.indexC   r   r   c                     d S r
   r   r   s    r   copyzImmutableListProtocol.copyE   r   r   N)r   r   r   __doc__typingIteratorr   r   overloadintr   sliceListboolr#   r%   r'   r+   Anyr-   r/   r1   r3   r5   r7   r9   r   r<   r   r   r   r   r      s       	 	 2&/!,1111_///// _/_>>6;q>>>> _>00t00005foa05555!!!!!CV[^CACCCC4FJ4444444FJ4444444FJ4444444FJ4444444FJ4444444FJ444444(!((((((!((((()fk!n))))))r   )r=   __all__r>   typing_extensionsr   TypeVarr   r   Sizedr   r   r   r   r   <module>rJ      s   
  
  ' & & & & & FN3" " " " "X " " "	 	 	 	 	(NFL 	 	 	'* '* '* '* '*HQK '* '* '* '* '*r   