
    -Ph'                    j    d dl mZ d dlZddlmZmZmZmZ ej	        rddlm
Z
  G d dee          ZdS )    )annotationsN   )MesonInterpreterObjectIterableObjectMesonOperatorInvalidArguments)
SubProjectc                  @     e Zd Zd fd	ZddZddZddZddZ xZS )RangeHolderstartintstopstep
subproject'SubProject'returnNonec                   t                                          |           t          |||          | _        | j                            t
          j        | j        i           d S )N)r   )super__init__range	operatorsupdater   INDEXop_index)selfr   r   r   r   	__class__s        g/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mesonbuild/interpreter/primitives/range.pyr   zRangeHolder.__init__   sd    J///5$--

 	 	 	 	 	    otherc                `    	 | j         |         S # t          $ r t          d| d          w xY w)NzIndex z out of bounds of range.)r   
IndexErrorr   )r   r    s     r   r   zRangeHolder.op_index   sN    	M:e$$ 	M 	M 	M"#KE#K#K#KLLL	Ms    -c                    d S N r   s    r   iter_tuple_sizezRangeHolder.iter_tuple_size   s    tr   T.Iterator[int]c                *    t          | j                  S r$   )iterr   r&   s    r   	iter_selfzRangeHolder.iter_self"   s    DJr   c                *    t          | j                  S r$   )lenr   r&   s    r   sizezRangeHolder.size%   s    4:r   )
r   r   r   r   r   r   r   r   r   r   )r    r   r   r   )r   r   )r   r(   )r   r   )	__name__
__module____qualname__r   r   r'   r+   r.   __classcell__)r   s   @r   r   r      s             M M M M                 r   r   )
__future__r   typingTinterpreterbaser   r   r   r   TYPE_CHECKINGr	   r   r%   r   r   <module>r8      s    # " " " " "                ? .------    (.     r   