o
    ¼Çhü  ã                   @   s<   d dl mZmZ ddgZG dd„ deƒZG dd„ deƒZdS )é    )ÚUserDictÚUserListÚLazyDictÚLazyListc                       s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )r   c                    s   t ƒ  ¡  || _d S ©N)ÚsuperÚ__init__Údata)Úselfr	   ©Ú	__class__© úl/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/fontTools/misc/lazyTools.pyr      s   

zLazyDict.__init__c                 C   s(   | j | }t|ƒr||ƒ}|| j |< |S r   )r	   Úcallable)r
   ÚkÚvr   r   r   Ú__getitem__   s
   

zLazyDict.__getitem__)Ú__name__Ú
__module__Ú__qualname__r   r   Ú__classcell__r   r   r   r   r      s    c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )r   c                    sV   t |tƒrt| tˆ ƒ¡Ž }‡ fdd„|D ƒS ˆ j| }t|ƒr)||ƒ}|ˆ j|< |S )Nc                    s   g | ]}ˆ | ‘qS r   r   )Ú.0Úi©r
   r   r   Ú
<listcomp>   s    z(LazyList.__getitem__.<locals>.<listcomp>)Ú
isinstanceÚsliceÚrangeÚindicesÚlenr	   r   )r
   r   r   r   r   r   r   r      s   


zLazyList.__getitem__c                 C   s0   t |tƒr
t|ƒ}nt |tƒrntS t| ƒ| S r   )r   r   ÚlistÚNotImplemented©r
   Úotherr   r   r   Ú__add__   s   


zLazyList.__add__c                 C   s   t |tƒstS |t| ƒ S r   )r   r    r!   r"   r   r   r   Ú__radd__'   s   
zLazyList.__radd__N)r   r   r   r   r$   r%   r   r   r   r   r      s    
	N)Úcollectionsr   r   Ú__all__r   r   r   r   r   r   Ú<module>   s    