
    kh	                     R    d dl mZ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OptionalTupleN   )
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 if 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          Y/var/www/teggl/fontify/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88KLMM'')	%$"4"445kk4??+q$"2"2UZZPQRSI& &j##%c*>>%..%C  ,**62FFKKM!!r   c                     | j                   S )N)r   )r   s    r   __len__zFakeData.__len__B   s    yyr   )i  )      r1   
   NNr   )r    
__module____qualname____doc__intr   r   r   r   r   r-   r/   __classcell__)r   s   @r   r   r   	   s    " +8(,/3++ #sC-(+ 	+
 H%+ #8,+ + 
+" "sCx "4 r   r   )typingr   r   r   r   r!    r   visionr
   r    r   r   <module>r<      s     1 1   !:} :r   