Ë
    [²jÄ  ã                   óª   — d dl Z d dlmZ d dlmZmZmZmZmZ d dl	m
c mZ ddl
mZ  edd¬«      Z G d	„ d
ej                  e   «      Z G d„ d«      Zy)é    N)ÚPath)ÚAnyÚCallableÚOptionalÚTypeVarÚUnioné   )Ú_log_api_usage_onceÚT_coT)Ú	covariantc                   ó¤   — e Zd ZdZdZ	 	 	 	 ddeeef   dee	   dee	   dee	   ddf
d	„Z
d
edefd„Zdefd„Zdefd„Zde	dedee   fd„Zdefd„Zy)ÚVisionDatasetaB  
    Base Class For making datasets which are compatible with torchvision.
    It is necessary to override the ``__getitem__`` and ``__len__`` method.

    Args:
        root (string, optional): Root directory of dataset. Only used for `__repr__`.
        transforms (callable, optional): A function/transforms that takes in
            an image and a label and returns the transformed versions of both.
        transform (callable, optional): A function/transform that takes in a PIL image
            and returns a transformed version. E.g, ``transforms.RandomCrop``
        target_transform (callable, optional): A function/transform that takes in the
            target and transforms it.

    .. note::

        :attr:`transforms` and the combination of :attr:`transform` and :attr:`target_transform` are mutually exclusive.
    é   NÚrootÚ
transformsÚ	transformÚtarget_transformÚreturnc                 ó  — t        | «       t        |t        «      rt        j                  j                  |«      }|| _        |d u}|d uxs |d u}|r|rt        d«      ‚|| _        || _	        |rt        ||«      }|| _        y )NzGOnly transforms or transform/target_transform can be passed as argument)r
   Ú
isinstanceÚstrÚosÚpathÚ
expanduserr   Ú
ValueErrorr   r   ÚStandardTransformr   )Úselfr   r   r   r   Úhas_transformsÚhas_separate_transforms          úZ/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torchvision/datasets/vision.pyÚ__init__zVisionDataset.__init__!   sŒ   € ô 	˜DÔ!Ü�dœCÔ Ü—7‘7×%Ñ% dÓ+ˆDØˆŒ	à#¨4Ð/ˆØ!*°$Ð!6Ò!VÐ:JÐRVÐ:VÐÙÑ4ÜÐfÓgÐgð #ˆŒØ 0ˆÔá!Ü*¨9Ð6FÓGˆJØ$ˆ�ó    Úindexc                 ó   — t         ‚)z¦
        Args:
            index (int): Index

        Returns:
            (Any): Sample and meta data, optionally transformed by the respective transforms.
        ©ÚNotImplementedError)r   r#   s     r    Ú__getitem__zVisionDataset.__getitem__:   s
   € ô "Ð!r"   c                 ó   — t         ‚©Nr%   ©r   s    r    Ú__len__zVisionDataset.__len__D   s   € Ü!Ð!r"   c                 óÈ  — d| j                   j                  z   }d| j                  «       › �g}| j                  �|j	                  d| j                  › �«       || j                  «       j                  «       z  }t        | d«      r%| j                  �|t        | j                  «      gz  }|g|D �cg c]  }d| j                  z  |z   ‘Œ c}z   }dj                  |«      S c c}w )NzDataset zNumber of datapoints: zRoot location: r   ú ú
)Ú	__class__Ú__name__r+   r   ÚappendÚ
extra_reprÚ
splitlinesÚhasattrr   ÚreprÚ_repr_indentÚjoin)r   ÚheadÚbodyÚlineÚliness        r    Ú__repr__zVisionDataset.__repr__G   sÌ   € Ø˜DŸN™N×3Ñ3Ñ3ˆØ(¨¯©«Ð(8Ð9Ð:ˆØ�9‰9Ð Ø�K‰K˜/¨$¯)©)¨Ð5Ô6Ø�—‘Ó!×,Ñ,Ó.Ñ.ˆÜ�4˜Ô&¨4¯?©?Ð+FØ”T˜$Ÿ/™/Ó*Ð+Ñ+ˆDØ�ÀTÖJ¸T˜# × 1Ñ 1Ñ1°DÓ8ÒJÑJˆØ�y‰y˜ÓÐùò Ks   Â0Cr8   c           
      ó¼   — |j                  «       j                  «       }|› |d   › �g|dd  D �cg c]   }dj                  dt        |«      z  |«      ‘Œ" c}z   S c c}w ©Nr   é   z{}{}r-   ©r<   r3   ÚformatÚlen©r   r   r8   r;   r:   s        r    Ú_format_transform_reprz$VisionDataset._format_transform_reprR   ó`   € Ø×"Ñ"Ó$×/Ñ/Ó1ˆØ�&˜˜q™˜
Ð#Ð$ÐY^Ð_`Ð_aÐYbÖ'cÐQU¨¯©°c¼CÀ»I±oÀtÕ(LÒ'cÑcÐcùÒ'có   ¯%Ac                  ó   — y)NÚ © r*   s    r    r2   zVisionDataset.extra_reprV   s   € Ør"   )NNNN)r0   Ú
__module__Ú__qualname__Ú__doc__r6   r   r   r   r   r   r!   Úintr   r'   r+   r<   ÚlistrD   r2   rI   r"   r    r   r      sÂ   „ ñð$ €Lð "&Ø)-Ø(,Ø/3ñ%à�C˜�IÑð%ð ˜XÑ&ð%ð ˜HÑ%ð	%ð
 # 8Ñ,ð%ð 
ó%ð2" ð "¨ó "ð"˜ó "ð	 ˜#ó 	 ðd°ð dÀð dÈÈSÉ	ó dð˜Cô r"   r   c                   ór   — e Zd Zddee   dee   ddfd„Zdededeeef   fd„Zded	e	de
e	   fd
„Zde	fd„Zy)r   Nr   r   r   c                 ó    — || _         || _        y r)   ©r   r   )r   r   r   s      r    r!   zStandardTransform.__init__[   s   € Ø"ˆŒØ 0ˆÕr"   ÚinputÚtargetc                 ó~   — | j                   �| j                  |«      }| j                  �| j                  |«      }||fS r)   rQ   )r   rR   rS   s      r    Ú__call__zStandardTransform.__call___   s@   € Ø�>‰>Ð%Ø—N‘N 5Ó)ˆEØ× Ñ Ð,Ø×*Ñ*¨6Ó2ˆFØ�fˆ}Ðr"   r8   c           
      ó¼   — |j                  «       j                  «       }|› |d   › �g|dd  D �cg c]   }dj                  dt        |«      z  |«      ‘Œ" c}z   S c c}w r>   r@   rC   s        r    rD   z(StandardTransform._format_transform_reprf   rE   rF   c                 óþ   — | j                   j                  g}| j                  �|| j                  | j                  d«      z  }| j                  �|| j                  | j                  d«      z  }dj                  |«      S )NzTransform: zTarget transform: r.   )r/   r0   r   rD   r   r7   )r   r9   s     r    r<   zStandardTransform.__repr__j   sq   € Ø—‘×'Ñ'Ð(ˆØ�>‰>Ð%Ø�D×/Ñ/°·±ÀÓNÑNˆDØ× Ñ Ð,Ø�D×/Ñ/°×0EÑ0EÐG[Ó\Ñ\ˆDà�y‰y˜‹Ðr"   )NN)r0   rJ   rK   r   r   r!   r   ÚtuplerU   r   rN   rD   r<   rI   r"   r    r   r   Z   sx   „ ñ1 (¨8Ñ"4ð 1ÈxÐX`ÑOað 1Ðmqó 1ð˜cð ¨3ð °5¸¸c¸±?ó ðd°ð dÀð dÈÈSÉ	ó dð˜#ô r"   r   )r   Úpathlibr   Útypingr   r   r   r   r   Útorch.utils.dataÚutilsÚdatar
   r   ÚDatasetr   r   rI   r"   r    ú<module>r_      sH   ðÛ 	Ý ß :Õ :ç Ð å 'áˆv Ô&€ôK�D—L‘L Ñ&ô K÷\ò r"   