Ë
    Dêñiˆ	  ã                   óN   — d dl mZmZmZ d dlZddlmZ ddlmZ  G d„ de«      Z	y)	é    )ÚAnyÚCallableÚOptionalNé   )Ú
transformsé   )ÚVisionDatasetc                   óŒ   ‡ — e Zd ZdZ	 	 	 	 	 	 ddedeeeef   dedee   dee   ded	dfˆ fd
„Zded	ee	e	f   fd„Z
d	efd„Zˆ xZS )ÚFakeDataaî  A fake dataset that returns randomly generated images and returns them as PIL images

    Args:
        size (int, optional): Size of the dataset. Default: 1000 images
        image_size(tuple, optional): Size of the returned images. Default: (3, 224, 224)
        num_classes(int, optional): Number of classes in the dataset. Default: 10
        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.
        random_offset (int): Offsets the index-based random seed used to
            generate each image. Default: 0

    NÚsizeÚ
image_sizeÚnum_classesÚ	transformÚtarget_transformÚrandom_offsetÚreturnc                 ó`   •— t         ‰| �  ||¬«       || _        || _        || _        || _        y )N)r   r   )ÚsuperÚ__init__r   r   r   r   )Úselfr   r   r   r   r   r   Ú	__class__s          €ú_/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/torchvision/datasets/fakedata.pyr   zFakeData.__init__   s6   ø€ ô 	‰Ñ 9Ð?OÐÔPØˆŒ	Ø&ˆÔØ$ˆŒØ*ˆÕó    Úindexc                 ód  — |t        | «      k\  r"t        | j                  j                  › d�«      ‚t	        j
                  «       }t	        j                  || j                  z   «       t	        j                  | j                  Ž }t	        j                  d| j                  dt        j                  ¬«      d   }t	        j                  |«        t        j                  «       |«      }| j                   �| j!                  |«      }| j"                  �| j#                  |«      }||j%                  «       fS )zœ
        Args:
            index (int): Index

        Returns:
            tuple: (image, target) where target is class_index of the target class.
        z index out of ranger   )r   )r   Údtype)ÚlenÚ
IndexErrorr   Ú__name__ÚtorchÚget_rng_stateÚmanual_seedr   Úrandnr   Úrandintr   ÚlongÚset_rng_stater   Ú
ToPILImager   r   Úitem)r   r   Ú	rng_stateÚimgÚtargets        r   Ú__getitem__zFakeData.__getitem__(   sõ   € ð ”C˜“IÒÜ §¡× 7Ñ 7Ð8Ð8KÐLÓMÐMÜ×'Ñ'Ó)ˆ	Ü×Ñ˜% $×"4Ñ"4Ñ4Ô5Ü�k‰k˜4Ÿ?™?Ð+ˆÜ—‘˜q $×"2Ñ"2¸ÄUÇZÁZÔPÐQRÑSˆÜ×Ñ˜IÔ&ð &Œj×#Ñ#Ó% cÓ*ˆØ�>‰>Ð%Ø—.‘. Ó%ˆCØ× Ñ Ð,Ø×*Ñ*¨6Ó2ˆFà�F—K‘K“MÐ!Ð!r   c                 ó   — | j                   S )N)r   )r   s    r   Ú__len__zFakeData.__len__B   s   € Ø�y‰yÐr   )iè  )é   éà   r0   é
   NNr   )r   Ú
__module__Ú__qualname__Ú__doc__ÚintÚtupler   r   r   r   r,   r.   Ú__classcell__)r   s   @r   r   r   	   s¡   ø„ ñð" Ø+8ØØ(,Ø/3Øñ+àð+ð ˜#˜s C˜-Ñ(ð+ð ð	+ð
 ˜HÑ%ð+ð # 8Ñ,ð+ð ð+ð 
õ+ð" ð "¨¨s°C¨x©ó "ð4˜÷ r   r   )
Útypingr   r   r   r    Ú r   Úvisionr	   r   © r   r   ú<module>r<      s    ðß *Ñ *ã å Ý !ô:ˆ}õ :r   