
    ΅i                     T    S r SSKJr   " S S5      r " S S\5      r " S S\5      rg	)
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.
    )NoReturnc                   ,    \ rS rSrSS jrS\4S jrSrg)_BaseDatasetFetcher
   returnNc                 4    Xl         X l        X0l        X@l        g N)datasetauto_collation
collate_fn	drop_last)selfr
   r   r   r   s        W/home/james-whalen/.local/lib/python3.13/site-packages/torch/utils/data/_utils/fetch.py__init___BaseDatasetFetcher.__init__   s    ,$"    c                     [         er	   )NotImplementedError)r   possibly_batched_indexs     r   fetch_BaseDatasetFetcher.fetch   s    !!r   )r   r   r
   r   r   N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__ r   r   r   r   
   s    #"x "r   r   c                   2   ^  \ rS rSrSU 4S jjrS rSrU =r$ )_IterableDatasetFetcher   c                 T   > [         TU ]  XX45        [        U5      U l        SU l        g )NF)superr   iterdataset_iterended)r   r
   r   r   r   	__class__s        r   r    _IterableDatasetFetcher.__init__   s%    *H M
r   c                    U R                   (       a  [        eU R                  (       ao  / nU H(  n UR                  [	        U R
                  5      5        M*     [        U5      S:X  d)  U R                  (       a  [        U5      [        U5      :  a  [        eO[	        U R
                  5      nU R                  U5      $ ! [         a    SU l            Mz  f = f)NTr   )	r&   StopIterationr   appendnextr%   lenr   r   )r   r   data_s       r   r   _IterableDatasetFetcher.fetch   s    ::D+KKT%6%6 78 , 4yA~3t9s3I/J#J##))*Dt$$ % !%DJs   $B>>CC)r%   r&   r   )r   r   r   r   r   r   r   __classcell__)r'   s   @r   r    r       s    
% %r   r    c                       \ rS rSrS rSrg)_MapDatasetFetcher0   c                 P   U R                   (       aq  [        U R                  S5      (       a7  U R                  R                  (       a  U R                  R                  U5      nO.U Vs/ s H  o0R                  U   PM     nnOU R                  U   nU R	                  U5      $ s  snf )N__getitems__)r   hasattrr
   r6   r   )r   r   r.   idxs       r   r   _MapDatasetFetcher.fetch1   s    t||^449R9R||001GH5KL5KcS)5KL<< 67Dt$$ Ms   (B#r   N)r   r   r   r   r   r   r   r   r   r3   r3   0   s    %r   r3   N)__doc__typingr   r   r    r3   r   r   r   <module>r<      s3   
 " "%1 %6	%, 	%r   