o
    +Âif  ã                   @   sL   d dl mZ d dlmZ G dd„ deƒZG dd„ deƒZG dd„ deƒZd	S )
é    )ÚIterator)ÚIterablec                       sD   e Zd Zi Zdef‡ fdd„Z‡ fdd„Zdef‡ fdd„Z‡  ZS )	Útracked_strÚoriginc                    s(   t ƒ  ¡ | jvr|| jt ƒ  ¡ < d S d S ©N)ÚsuperÚ__repr__Úorigins)Úselfr   ©Ú	__class__© úM/var/www/html/corbot_env/lib/python3.10/site-packages/datasets/utils/track.pyÚ
set_origin   s   ÿztracked_str.set_originc                    s   | j  tƒ  ¡ t| ƒ¡S r   )r	   Úgetr   r   Ústr©r
   r   r   r   Ú
get_origin   s   ztracked_str.get_originÚreturnc                    sN   t ƒ  ¡ | jvs| jt ƒ  ¡  | krt ƒ  ¡ S t| ƒ› d| jt ƒ  ¡  › dS )Nz	 (origin=ú))r   r   r	   r   r   r   r   r   r      s   $
 ztracked_str.__repr__)	Ú__name__Ú
__module__Ú__qualname__r	   r   r   r   r   Ú__classcell__r   r   r   r   r      s
    r   c                       sB   e Zd Zd	‡ fdd„Zdef‡ fdd„Zdef‡ fdd„Z‡  ZS )
Útracked_listr   Nc                    s   t ƒ j|i |¤Ž d | _d S r   ©r   Ú__init__Ú	last_item)r
   ÚargsÚkwargsr   r   r   r      s   
ztracked_list.__init__c                 #   s(    t ƒ  ¡ D ]}|| _|V  qd | _d S r   )r   Ú__iter__r   )r
   Úxr   r   r   r       s
   €
ztracked_list.__iter__c                    s*   | j d u r
tƒ  ¡ S | jj› d| j › dS ©Nz	(current=r   ©r   r   r   r   r   r   r   r   r   r   !   s   

ztracked_list.__repr__©r   N)	r   r   r   r   r   r    r   r   r   r   r   r   r   r      s    r   c                       s0   e Zd Zd‡ fdd„Zdef‡ fdd„Z‡  ZS )ÚTrackedIterabler   Nc                    s   t ƒ  ¡  d | _d S r   r   r   r   r   r   r   )   s   

zTrackedIterable.__init__c                    s.   | j d u rtƒ  ¡  d S | jj› d| j › dS r"   r#   r   r   r   r   r   -   s   
zTrackedIterable.__repr__r$   )r   r   r   r   r   r   r   r   r   r   r   r%   (   s    r%   N)	Úcollections.abcr   Útypingr   r   r   Úlistr   r%   r   r   r   r   Ú<module>   s
    