o
    Ýîic  ã                   @   s   G d d„ de ƒZdS )c                   @   sj   e Zd ZdZddd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )Útlistz\
    .. class:: tlist

    A list-like class holding only objects of specified type(s).
    Nc                 C   sx   |st ƒ n|}t|ƒ t|tƒr|n|f}|D ]}t|tƒs&tdt|ƒ ƒ‚q|| _|D ]}|  |¡ q,t  	| |¡ d S )Nz%s is not a type)
ÚlistÚiterÚ
isinstanceÚtupleÚtypeÚ	TypeErrorÚreprÚ_typesÚ_type_checkÚ__init__)ÚselfÚiterableÚtypesÚitemÚi© r   úP/var/www/html/LicenciasMIG/venv/lib/python3.10/site-packages/spyne/util/tlist.pyr   $   s   
ÿztlist.__init__c                 C   s   | j S ©N)r	   )r   r   r   r   r   4   s   ztlist.typesc                 C   s4   | j sd S t|| j ƒstdt|ƒt| j ƒf ƒ‚d S )Nz6Wrong type %s, this list can hold only instances of %s)r	   r   r   r   Ústr©r   Úvalr   r   r   r
   7   s   ÿÿÿztlist._type_checkc                 C   s   t | j|ƒ t | |¡ | S r   )Úmapr
   r   Ú__iadd__)r   Úotherr   r   r   r   @   s   ztlist.__iadd__c                 C   s(   dd„ | D ƒdd„ |D ƒ }t || jƒS )Nc                 S   ó   g | ]}|‘qS r   r   ©Ú.0r   r   r   r   Ú
<listcomp>F   ó    z!tlist.__add__.<locals>.<listcomp>)r   r	   ©r   r   r   r   r   r   Ú__add__E   s   ztlist.__add__c                 C   sB   dd„ |D ƒdd„ | D ƒ }t |tƒr|  || ¡ ¡S t|| jƒS )Nc                 S   r   r   r   r   r   r   r   r   J   r   z"tlist.__radd__.<locals>.<listcomp>)r   r   Ú	__class__r   r	   r   r   r   r   Ú__radd__I   s   
ztlist.__radd__c                 C   s:   |f}t |tƒrt|ƒ |}t| j|ƒ t | ||¡ d S r   )r   Úslicer   r   r
   r   Ú__setitem__)r   ÚkeyÚvalueÚ	itervaluer   r   r   r$   O   s   
ztlist.__setitem__c                 C   s(   t |ƒ t| j|ƒ t | |||¡ d S r   )r   r   r
   r   Ú__setslice__)r   r   Újr   r   r   r   r(   W   s   ztlist.__setslice__c                 C   s   |   |¡ t | |¡ d S r   )r
   r   Úappendr   r   r   r   r*   \   s   
ztlist.appendc                 C   s$   t |ƒ t| j|ƒ t | |¡ d S r   )r   r   r
   r   Úextend)r   r   r   r   r   r+   `   s   ztlist.extendc                 C   s   |   |¡ t | ||¡ d S r   )r
   r   Úinsert)r   r   r   r   r   r   r,   e   s   
ztlist.insert)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r
   r   r    r"   r$   r(   r*   r+   r,   r   r   r   r   r      s    
	r   N)r   r   r   r   r   r   Ú<module>   s   