
    QVji                     \    d Z  G d d          Z G d de          Z G d de          ZdS )zContains definitions of the methods used by the _BaseDataLoaderIter to fetch data from an iterable-style or map-style dataset.

This logic is shared in both single- and multi-processing data loading.
c                       e Zd Zd Zd ZdS )_BaseDatasetFetcherc                 >    || _         || _        || _        || _        d S N)datasetauto_collation
collate_fn	drop_last)selfr   r   r   r	   s        W/root/voice-cloning/.venv/lib/python3.11/site-packages/torch/utils/data/_utils/fetch.py__init__z_BaseDatasetFetcher.__init__	   s#    ,$"    c                     t           r   )NotImplementedError)r
   possibly_batched_indexs     r   fetchz_BaseDatasetFetcher.fetch   s    !!r   N)__name__
__module____qualname__r   r    r   r   r   r      s2        # # #" " " " "r   r   c                   $     e Zd Z fdZd Z xZS )_IterableDatasetFetcherc                     t                                          ||||           t          |          | _        d| _        d S )NF)superr   iterdataset_iterended)r
   r   r   r   r	   	__class__s        r   r   z _IterableDatasetFetcher.__init__   s:    .*iHHH MM


r   c                    | j         rt          | j        rg }|D ]B}	 |                    t	          | j                             +# t          $ r d| _         Y  nw xY wt          |          dk    s'| j        r't          |          t          |          k     rt          nt	          | j                  }|                     |          S )NT    )	r   StopIterationr   appendnextr   lenr	   r   )r
   r   data_s       r   r   z_IterableDatasetFetcher.fetch   s    : 	  	+D+  KKT%6 7 78888$   !%DJEE 4yyA~~ #&t99s3I/J/J#J#J##)**Dt$$$s   'AAA)r   r   r   r   r   __classcell__)r   s   @r   r   r      sG            
% % % % % % %r   r   c                       e Zd Zd ZdS )_MapDatasetFetcherc                       j         rKt           j        d          r' j        j        r j                            |          }n fd|D             }n j        |         }                     |          S )N__getitems__c                 *    g | ]}j         |         S r   )r   ).0idxr
   s     r   
<listcomp>z,_MapDatasetFetcher.fetch.<locals>.<listcomp>4   s     LLLcS)LLLr   )r   hasattrr   r*   r   )r
   r   r$   s   `  r   r   z_MapDatasetFetcher.fetch/   s     	8t|^44 M9R M|001GHHLLLL5KLLL< 67Dt$$$r   N)r   r   r   r   r   r   r   r(   r(   .   s#        % % % % %r   r(   N)__doc__r   r   r(   r   r   r   <module>r1      s    " " " " " " " "% % % % %1 % % %6	% 	% 	% 	% 	%, 	% 	% 	% 	% 	%r   