
    h                     r    S SK r S SKrS SK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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
            R/var/www/auris/envauris/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.   r/   s    r4   __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   )r/   r=   pathtargetsamples        r4   __getitem__GTSRB.__getitem__A   sk    }}U+%--e4>>%^^F+F  ,**62F~r<   c                 6    U R                   R                  5       $ r7   )r&   is_dirr9   s    r4   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%   )r/   base_urls     r4   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:   tupler   rF   r'   r   __static_attributes____classcell__)r3   s   @r4   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@   folderr   utilsr	   r
   visionr   r    r<   r4   <module>ra      s+    
  1 1 
   ? ![M [r<   