
    h.                     V    S SK JrJr   " S S\5      r " S S\5      r " S S\5      rg)	    )IterableIteratorc                   T   ^  \ rS rSr0 rS\4U 4S jjrU 4S jrS\4U 4S jjrSr	U =r
$ )tracked_str   originc                 t   > [         TU ]  5       U R                  ;  a  XR                  [         TU ]  5       '   g g N)super__repr__origins)selfr   	__class__s     N/home/james-whalen/.local/lib/python3.13/site-packages/datasets/utils/track.py
set_origintracked_str.set_origin   s0    7T\\1/5LL)+, 2    c                 f   > U R                   R                  [        TU ]  5       [	        U 5      5      $ r
   )r   getr   r   strr   r   s    r   
get_origintracked_str.get_origin   s&    || 0 2CI>>r   returnc                    > [         TU ]  5       U R                  ;  d  U R                  [         TU ]  5          U :X  a  [         TU ]  5       $ [        U 5       SU R                  [         TU ]  5           S3$ )Nz	 (origin=))r   r   r   r   r   s    r   r   tracked_str.__repr__   sg    7T\\1T\\%'BRBT5UY]5]7#%%$i[	$,,uw7G7I*J)K1MMr    )__name__
__module____qualname____firstlineno__r   r   r   r   r   __static_attributes____classcell__r   s   @r   r   r      s-    G6 6?N# N Nr   r   c                   T   ^  \ rS rSrSU 4S jjrS\4U 4S jjrS\4U 4S jjrSr	U =r
$ )tracked_list   r   c                 4   > [         TU ]  " U0 UD6  S U l        g r
   )r   __init__	last_item)r   argskwargsr   s      r   r*   tracked_list.__init__   s    $)&)r   c              #   Z   >#    [         TU ]  5        H  nXl        Uv   M     S U l        g 7fr
   )r   __iter__r+   )r   xr   s     r   r0   tracked_list.__iter__   s+     !#ANG $ s   (+c                    > U R                   c  [        TU ]	  5       $ U R                  R                   SU R                    S3$ Nz	(current=r   r+   r   r   r   r   r   s    r   r   tracked_list.__repr__    >    >>!7#%%nn--.i7GqIIr   )r+   )r   N)r   r    r!   r"   r*   r   r0   r   r   r#   r$   r%   s   @r   r'   r'      s(    ( J# J Jr   r'   c                   L   ^  \ rS rSrSrU 4S jrS rS\4U 4S jjrS r	Sr
U =r$ )	TrackedIterableFromGenerator'   zkUtility class to create an iterable from a generator function, in order to reset the generator when needed.c                 H   > [         TU ]  5         Xl        X l        S U l        g r
   )r   r*   	generatorr,   r+   )r   r<   r,   r   s      r   r*   %TrackedIterableFromGenerator.__init__*   s    "	r   c              #   n   #    U R                   " U R                  6  H  nXl        Uv   M     S U l        g 7fr
   )r<   r,   r+   )r   r1   s     r   r0   %TrackedIterableFromGenerator.__iter__0   s/     +ANG , s   35r   c                    > U R                   c  [        TU ]	  5       $ U R                  R                   SU R                    S3$ r4   r5   r   s    r   r   %TrackedIterableFromGenerator.__repr__6   r7   r   c                 N    U R                   U R                  /U R                  Q74$ r
   )r   r<   r,   )r   s    r   
__reduce__'TrackedIterableFromGenerator.__reduce__<   s!     <$)) <==r   )r,   r<   r+   )r   r    r!   r"   __doc__r*   r0   r   r   rC   r#   r$   r%   s   @r   r9   r9   '   s(    uJ# J> >r   r9   N)collections.abcr   r   r   r   listr'   r9   r   r   r   <module>rH      s0    .N# N"J4 J$>8 >r   