
    QЦi                     v    S SK r S SKrS SKJrJrJrJrJr  S SKrSSK	J
r
  SSKJrJr  SSKJr   " S S\5      rg)	    N)AnyCallableOptionalTupleUnion   )make_dataset)download_and_extract_archiveverify_str_arg)VisionDatasetc                      ^  \ rS rSrSr    SS\\\R                  4   S\S\	\
   S\	\
   S\S	S4U 4S
 jjjrS	\4S jrS\S	\\\4   4S jrS	\4S jrSS jrSrU =r$ )GTSRB   a  `German Traffic Sign Recognition Benchmark (GTSRB) <https://benchmark.ini.rub.de/>`_ Dataset.

Args:
    root (str or ``pathlib.Path``): Root directory of the dataset.
    split (string, optional): The dataset split, supports ``"train"`` (default), or ``"test"``.
    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.
    download (bool, optional): If True, downloads the dataset from the internet and
        puts it in root directory. If dataset is already downloaded, it is not
        downloaded again.
Nrootsplit	transformtarget_transformdownloadreturnc           	        > [         T	U ]  XUS9  [        USS5      U l        [        R
                  " U5      S-  U l        U R                  S-  U R                  S:X  a  SOS-  U l        U(       a  U R                  5         U R                  5       (       d  [        S	5      eU R                  S:X  a  [        [        U R                  5      S
S9nOn[        U R                  S-  5       n[        R                  " USSS9 Vs/ s H,  n[        U R                  US   -  5      [!        US   5      4PM.     nnS S S 5        WU l        X0l        X@l        g s  snf ! , (       d  f       N'= f)N)r   r   r   )traintestgtsrbr   r   TrainingzFinal_Test/Imagesz;Dataset not found. You can use download=True to download it)z.ppm)
extensionszGT-final_test.csv;T)	delimiterskipinitialspaceFilenameClassId)super__init__r   _splitpathlibPath_base_folder_target_folderr   _check_existsRuntimeErrorr	   stropencsv
DictReaderint_samplesr   r   )
selfr   r   r   r   r   samplescsv_filerow	__class__s
            Y/var/www/html/ai-image-ml/venv/lib/python3.13/site-packages/torchvision/datasets/gtsrb.pyr"   GTSRB.__init__   sC    	EUV$UG5FG#LL.8'9O:Uhi 	 MMO!!##\]];;'!"3t':':#;	RGd''*==>(  #~~h#X\]] ,,s:>?S^ATU]   ?  " 0 ?>s   &E?3E2EE
E#c                 ,    [        U R                  5      $ N)lenr/   r0   s    r5   __len__GTSRB.__len__>   s    4==!!    indexc                     U R                   U   u  p#[        R                  R                  U5      R	                  S5      nU R
                  b  U R                  U5      nU R                  b  U R                  U5      nXC4$ )NRGB)r/   PILImager+   convertr   r   )r0   r>   pathtargetsamples        r5   __getitem__GTSRB.__getitem__A   sk    }}U+%--e4>>%^^F+F  ,**62F~r=   c                 6    U R                   R                  5       $ r8   )r'   is_dirr:   s    r5   r(   GTSRB._check_existsN   s    ""))++r=   c                    U R                  5       (       a  g SnU R                  S:X  a"  [        U S3[        U R                  5      SS9  g [        U S3[        U R                  5      SS9  [        U S3[        U R                  5      S	S9  g )
NzEhttps://sid.erda.dk/public/archives/daaeac0d7ce1152aea9b61d9f1e19370/r   zGTSRB-Training_fixed.zip 513f3c79a4c5141765e10e952eaa2478)download_rootmd5zGTSRB_Final_Test_Images.zip c7e4e6327067d32654124b0fe9e82185zGTSRB_Final_Test_GT.zip fe31e9c9270bbcd7b84b7f21a9d9d9e5)r(   r#   r
   r*   r&   )r0   base_urls     r5   r   GTSRB.downloadQ   s    Z;;'!(*45!$"3"346 )*78!$"3"346
 )*34!$"3"346r=   )r&   r/   r#   r'   r   r   )r   NNF)r   N)__name__
__module____qualname____firstlineno____doc__r   r*   r$   r%   r   r   boolr"   r.   r;   r   r   rG   r(   r   __static_attributes____classcell__)r4   s   @r5   r   r      s      (,/3"1C%&"1 "1 H%	"1
 #8,"1 "1 
"1 "1H" " sCx ,t , r=   r   )r,   r$   typingr   r   r   r   r   rA   folderr	   utilsr
   r   visionr   r    r=   r5   <module>ra      s+    
  8 8 
   ? ![M [r=   