o
    wZŽh¡  ã                   @   s6   d Z G dd„ dƒZG dd„ deƒZG dd„ deƒZdS )zÈContains 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                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú_BaseDatasetFetcherc                 C   s   || _ || _|| _|| _d S ©N)ÚdatasetÚauto_collationÚ
collate_fnÚ	drop_last©Úselfr   r   r   r   © r	   úL/var/www/auris/lib/python3.10/site-packages/torch/utils/data/_utils/fetch.pyÚ__init__	   s   
z_BaseDatasetFetcher.__init__c                 C   s   t ‚r   )ÚNotImplementedError)r   Úpossibly_batched_indexr	   r	   r
   Úfetch   s   z_BaseDatasetFetcher.fetchN)Ú__name__Ú
__module__Ú__qualname__r   r   r	   r	   r	   r
   r      s    r   c                       s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )Ú_IterableDatasetFetcherc                    s&   t ƒ  ||||¡ t|ƒ| _d| _d S )NF)Úsuperr   ÚiterÚdataset_iterÚendedr   ©Ú	__class__r	   r
   r      s   

z _IterableDatasetFetcher.__init__c              	   C   sˆ   | j rt‚| jr:g }|D ]}z
| t| jƒ¡ W q ty%   d| _ Y  nw t|ƒdks7| jr9t|ƒt|ƒk r9t‚nt| jƒ}|  |¡S )NTé    )	r   ÚStopIterationr   ÚappendÚnextr   Úlenr   r   )r   r   ÚdataÚ_r	   r	   r
   r      s&   þÿ€

z_IterableDatasetFetcher.fetch)r   r   r   r   r   Ú__classcell__r	   r	   r   r
   r      s    r   c                   @   s   e Zd Zdd„ ZdS )Ú_MapDatasetFetcherc                    sP   ˆ j rtˆ jdƒrˆ jjrˆ j |¡}n‡ fdd„|D ƒ}nˆ j| }ˆ  |¡S )NÚ__getitems__c                    s   g | ]}ˆ j | ‘qS r	   )r   )Ú.0Úidx©r   r	   r
   Ú
<listcomp>4   s    z,_MapDatasetFetcher.fetch.<locals>.<listcomp>)r   Úhasattrr   r"   r   )r   r   r   r	   r%   r
   r   /   s   

z_MapDatasetFetcher.fetchN)r   r   r   r   r	   r	   r	   r
   r!   .   s    r!   N)Ú__doc__r   r   r!   r	   r	   r	   r
   Ú<module>   s   