+
     °³j>(  ã                   ó¸   € ^ RI t ^ RIt ^ RIHt ^ RIHtHtHtHt ^ RI	H
t
 ^RIHtHt ^RIHt . ROtRRR	R
RRRRRRRR/tRRR	RRRRRRRRR/t ! R R]4      tR# )é    N)ÚPath)ÚAnyÚCallableÚOptionalÚUnion)ÚImage)Údownload_and_extract_archiveÚverify_str_arg)ÚVisionDatasetÚ2017zRhttps://ml-inat-competition-datasets.s3.amazonaws.com/2017/train_val_images.tar.gzÚ2018zOhttps://ml-inat-competition-datasets.s3.amazonaws.com/2018/train_val2018.tar.gzÚ2019zOhttps://ml-inat-competition-datasets.s3.amazonaws.com/2019/train_val2019.tar.gzÚ
2021_trainzGhttps://ml-inat-competition-datasets.s3.amazonaws.com/2021/train.tar.gzÚ2021_train_minizLhttps://ml-inat-competition-datasets.s3.amazonaws.com/2021/train_mini.tar.gzÚ
2021_validzEhttps://ml-inat-competition-datasets.s3.amazonaws.com/2021/val.tar.gzÚ 7c784ea5e424efaec655bd392f87301fÚ b1c6952ce38f31868cc50ea72d066cc3Ú c60a6e2962c9b8ccbd458d12c8582644Ú e0526d53c7f7b2e3167b2b43bb2690edÚ db6ed8330e634445efc8fec83ae81442Ú f6f6e0e242e3d4c9569ba56400938afcc                   óÄ   a a€ ] tR t^ t oRtRV3R lV 3R llltV3R lR ltV3R lR ltV3R lR	 ltV3R
 lR lt	V3R lR lt
V3R lR ltV3R lR ltRtVtV ;t# )ÚINaturalistaà  `iNaturalist <https://github.com/visipedia/inat_comp>`_ Dataset.

Args:
    root (str or ``pathlib.Path``): Root directory of dataset where the image files are stored.
        This class does not require/use annotation files.
    version (string, optional): Which version of the dataset to download/use. One of
        '2017', '2018', '2019', '2021_train', '2021_train_mini', '2021_valid'.
        Default: `2021_train`.
    target_type (string or list, optional): Type of target to use, for 2021 versions, one of:

        - ``full``: the full category (species)
        - ``kingdom``: e.g. "Animalia"
        - ``phylum``: e.g. "Arthropoda"
        - ``class``: e.g. "Insecta"
        - ``order``: e.g. "Coleoptera"
        - ``family``: e.g. "Cleridae"
        - ``genus``: e.g. "Trichodes"

        for 2017-2019 versions, one of:

        - ``full``: the full (numeric) category
        - ``super``: the super category, e.g. "Amphibians"

        Can also be a list to output a tuple with all specified target types.
        Defaults to ``full``.
    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.
    loader (callable, optional): A function to load an image given its path.
        By default, it uses PIL as its image loader, but users could also pass in
        ``torchvision.io.decode_image`` for decoding image data into tensors directly.
c                óâ   <€ V ^8„  d   QhRS[ S[S[3,          RS[RS[ S[S[,          S[3,          RS[S[,          RS[S[,          RS[RS[S[S[ S[S[3,          .S[3,          ,          RR	/# )
é   ÚrootÚversionÚtarget_typeÚ	transformÚtarget_transformÚdownloadÚloaderÚreturnN)r   Ústrr   Úlistr   r   Úboolr   )ÚformatÚ__classdict__s   "€Úa/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchvision/datasets/inaturalist.pyÚ__annotate__ÚINaturalist.__annotate__F   s–   ø€ ÷ .ñ .á‘C™�IÕð.ñ ð.ñ ™4¡�9¡c˜>Õ*ð	.ñ
 ™HÕ%ð.ñ #¡8Õ,ð.ñ ð.ñ ™¡5©©d¨Õ#3Ð"4±cÐ"9Õ:Õ;ð.ð 
ñ.ó    c           	     óä  <€ \        VR \        P                  4       4      V n        \        SV `  \        P                  P                  W4      WER7       \        P                  ! VRR7       V'       d   V P                  4        V P                  4       '       g   \        R4      h. V n        / V n        . V n        \!        V\"        4      '       g   V.pV P                  R,          R8X  d<   V Uu. uF  p\        VRR.\$        O54      NK  	  upV n        V P)                  4        M2V Uu. uF  p\        VRR
4      NK  	  upV n        V P+                  4        . V n        \/        V P                  4       Fh  w  rš\        P0                  ! \        P                  P                  V P2                  V
4      4      pV F  pV P,                  P5                  Wœ34       K!  	  Kj  	  Wpn        R	# u upi u upi )r   )r   r    T)Úexist_okzHDataset not found or corrupted. You can use download=True to download it:Né   NÚ2021r   ÚfullN)r1   Úsuper)r
   ÚDATASET_URLSÚkeysr   r2   Ú__init__ÚosÚpathÚjoinÚmakedirsr!   Ú_check_existsÚRuntimeErrorÚall_categoriesÚcategories_indexÚcategories_mapÚ
isinstancer%   ÚCATEGORIES_2021r   Ú
_init_2021Ú_init_pre2021ÚindexÚ	enumerateÚlistdirr   Úappendr"   )Úselfr   r   r   r   r    r!   r"   ÚtÚ	dir_indexÚdir_nameÚfilesÚfnameÚ	__class__s   &&&&&&&&     €r)   r5   ÚINaturalist.__init__F   s�  ø€ ô & g¨y¼,×:KÑ:KÓ:MÓNˆŒä‰ÑœŸ™Ÿ™ dÓ4À	ÐÔmä
�Š�D 4Õ(ßØ�M‰MŒOà×!Ñ!×#Ò#ÜÐiÓjÐjà)+ˆÔð <>ˆÔð 57ˆÔä˜+¤t×,Ò,Ø&˜-ˆKØ�<‰<˜Õ˜vÔ%ÙfqÓrÑfqÐab¤¨q°-À&ÐA[Ì?ÑA[Ö \ÑfqÑrˆDÔØ�O‰OÕá]hÓiÑ]hÐXY¤¨q°-ÐARÖ SÑ]hÑiˆDÔØ×ÑÔ ð -/ˆŒ
ä#,¨T×-@Ñ-@Ö#AÑˆIÜ—J’JœrŸw™wŸ|™|¨D¯I©I°xÓ@ÓAˆEÛ�Ø—
‘
×!Ñ! 9Ð"4Ö5ó ñ $Bð
 Žùò  sùò  js   Ã/G(Ä*G-c                ó   <€ V ^8„  d   QhRR/# ©r   r#   N© )r'   r(   s   "€r)   r*   r+   v   s   ø€ ÷ 0ñ 0˜Dñ 0r,   c                óÜ  € \        \        P                  ! V P                  4      4      V n        \
         Uu/ uF  q/ bK  	  upV n        \        V P                  4       EF  w  r#VP                  R4      p\        V4      ^8w  d   \        RV R24      hV^ ,          VR 8w  d   \        RV^ ,           RVR 24      h/ p\        \
        VR,          4       Fl  w  rgWpP                  V,          9   d   V P                  V,          V,          pM1\        V P                  V,          4      pW€P                  V,          V&   W…V&   Kn  	  V P                  P                  V4       EK  	  R# u upi )	zInitialize based on 2021 layoutÚ_zUnexpected category name z, wrong number of piecesÚ05dzUnexpected category id z, expecting :é   é   NN)Úsortedr6   rE   r   r<   r@   r=   rD   ÚsplitÚlenr;   Úzipr>   rF   )	rG   ÚkrI   rJ   ÚpiecesÚcat_mapÚcatÚnameÚcat_ids	   &        r)   rA   ÚINaturalist._init_2021v   sB  € ô %¤R§Z¢Z°·	±	Ó%:Ó;ˆÔõ 1@Ó @±¨1 B¢±Ñ @ˆÔä#,¨T×-@Ñ-@×#AÑˆIØ—^‘^ CÓ(ˆFÜ�6‹{˜aÔÜ"Ð%>¸x¸jÐH`Ð#aÓbÐbØ�a�y˜y¨˜oÔ.Ü"Ð%<¸VÀA½Y¸KÀ|ÐT]Ð^aÐSbÐ#cÓdÐdØˆGÜ ¤°&¸µ+Ö>‘	�Ø×0Ñ0°Õ5Ô5Ø!×2Ñ2°3Õ7¸Õ=‘Fä  ×!6Ñ!6°sÕ!;Ó<�FØ7=×)Ñ)¨#Õ.¨tÑ4Ø%˜“ñ ?ð ×Ñ×&Ñ& w×/ó $Bùò !As   ·E)c                ó   <€ V ^8„  d   QhRR/# rP   rQ   )r'   r(   s   "€r)   r*   r+   Ž   s   ø€ ÷ !Añ !A˜tñ !Ar,   c           	     óB  € R/ /V n         ^ p\        \        P                  ! V P                  4      4      p\        V4       EF‰  w  r4W0P                   R,          V&   \        \        P                  ! \        P                  P                  V P                  V4      4      4      pV EF   pV P                  R8X  d   TpV^,          pM \        V4      pV\        V P                  4      8¼  dv   \        V P                  4      pV P                  P                  / .Wx,
          ^,           ,          4       V P                  P                  R.Wx,
          ^,           ,          4       V P                  V,          '       d   \        RV 24      hRV/V P                  V&   \        P                  P                  WF4      V P                  V&   EK#  	  EKŒ  	  \        V P                  4       F  w  ršV
'       d   K  \        RV	 24      h	  R#   \         d    \        RT 24      hi ; i)z$Initialize based on 2017-2019 layoutr2   r   z!Unexpected non-numeric dir name: Ú zDuplicate category zMissing category N)r=   rW   r6   rE   r   rD   r7   r8   r   ÚintÚ
ValueErrorr;   rY   r>   Úextendr<   )rG   Ú	cat_indexÚsuper_categoriesÚsindexÚscatÚsubcategoriesÚsubcatÚsubcat_iÚold_lenÚcindexÚcs   &          r)   rB   ÚINaturalist._init_pre2021Ž   sÃ  € ð ")¨" ˆÔàˆ	Ü!¤"§*¢*¨T¯Y©YÓ"7Ó8ÐÜ%Ð&6×7‰LˆFØ39×!Ñ! 'Õ*¨4Ñ0Ü"¤2§:¢:¬b¯g©g¯l©l¸4¿9¹9ÀdÓ.KÓ#LÓMˆMÜ'�Ø—<‘< 6Ô)à(�HØ •N‘IðYÜ#& v£;˜ð œs 4×#6Ñ#6Ó7Ô7Ü! $×"5Ñ"5Ó6�GØ×'Ñ'×.Ñ.°¨t°xÕ7IÈAÕ7MÕ/NÔOØ×'Ñ'×.Ñ.°¨t°xÕ7IÈAÕ7MÕ/NÔOØ×&Ñ& x×0Ô0Ü&Ð)<¸V¸HÐ'EÓFÐFØ18¸&Ð0A�×#Ñ# HÑ-Ü02·±·±¸TÓ0J�×#Ñ# HÔ-ô# (ñ 8ô. # 4×#6Ñ#6Ö7‰IˆFß‘1Ü"Ð%6°v°hÐ#?Ó@Ð@ó 8øô &ô YÜ*Ð-NÈvÈhÐ+WÓXÐXðYús   ÃHÈHc                ó<   <€ V ^8„  d   QhRS[ RS[S[S[3,          /# )r   rC   r#   )re   Útupler   )r'   r(   s   "€r)   r*   r+   ±   s#   ø€ ÷ ñ ¡ð ©©s±C¨x­ñ r,   c                óˆ  € V P                   V,          w  r#\        P                  P                  V P                  V P
                  V,          V4      pV P                  e   V P                  V4      M\        P                  ! V4      p. pV P                   FF  pVR8X  d   VP                  V4       K  VP                  V P                  V,          V,          4       KH  	  \        V4      ^8”  d   \        V4      MV^ ,          pV P                  e   V P                  V4      pV P                  e   V P                  V4      pWV3# )zv
Args:
    index (int): Index

Returns:
    tuple: (image, target) where the type of target specified by target_type.
r1   )rC   r6   r7   r8   r   r<   r"   r   Úopenr   rF   r>   rY   rt   r   r    )rG   rC   r`   rL   Ú
image_pathÚimgÚtargetrH   s   &&      r)   Ú__getitem__ÚINaturalist.__getitem__±   s÷   € ð Ÿ
™
 5Õ)‰ˆÜ—W‘W—\‘\ $§)¡)¨T×-@Ñ-@ÀÕ-HÈ%ÓPˆ
Ø)-¯©Ò)@ˆd�k‰k˜*Ô%ÄeÇjÂjÐQ[ÓF\ˆàˆØ×!Ô!ˆAØ�FŒ{Ø—‘˜fÖ%à—‘˜d×1Ñ1°&Õ9¸!Õ<Ö=ñ	 "ô
 #& f£+°¤/”�v”°v¸aµyˆà�>‰>Ò%Ø—.‘. Ó%ˆCà× Ñ Ò,Ø×*Ñ*¨6Ó2ˆFàˆ{Ðr,   c                ó    <€ V ^8„  d   QhRS[ /# ©r   r#   )re   )r'   r(   s   "€r)   r*   r+   Î   s   ø€ ÷ ñ ™ñ r,   c                ó,   € \        V P                  4      # )N)rY   rC   ©rG   s   &r)   Ú__len__ÚINaturalist.__len__Î   s   € Ü�4—:‘:‹Ðr,   c                ó,   <€ V ^8„  d   QhRS[ RS[RS[ /# )r   Úcategory_typeÚcategory_idr#   )r$   re   )r'   r(   s   "€r)   r*   r+   Ñ   s'   ø€ ÷ [ñ [©3ð [¹Sð [ÁSñ [r,   c                óþ   € VR8X  d   V P                   V,          # WP                  9  d   \        RV R24      hV P                  V,          P                  4        F  w  r4WB8X  g   K  Vu # 	  \        RV RV 24      h)zÖ
Args:
    category_type(str): one of "full", "kingdom", "phylum", "class", "order", "family", "genus" or "super"
    category_id(int): an index (class id) from this category

Returns:
    the name of the category
r1   zInvalid category type 'Ú'zInvalid category id z for )r<   r=   rf   Úitems)rG   rƒ   r„   r_   Úids   &&&  r)   Úcategory_nameÚINaturalist.category_nameÑ   s…   € ð ˜FÔ"Ø×&Ñ& {Õ3Ð3à×$9Ñ$9Ô9Ü Ð#:¸=¸/ÈÐ!KÓLÐLà $× 5Ñ 5°mÕ D× JÑ JÖ L‘H�DØÖ(Ø#šñ !Mô !Ð#7¸°}ÀEÈ-ÈÐ!YÓZÐZr,   c                ó    <€ V ^8„  d   QhRS[ /# r}   )r&   )r'   r(   s   "€r)   r*   r+   å   s   ø€ ÷ Lñ L™tñ Lr,   c                ó¼   € \         P                  P                  V P                  4      ;'       d-    \	        \         P
                  ! V P                  4      4      ^ 8„  # )r   )r6   r7   Úexistsr   rY   rE   r   s   &r)   r:   ÚINaturalist._check_existså   s8   € Ü�w‰w�~‰~˜dŸi™iÓ(×KÐK¬S´·²¸D¿I¹IÓ1FÓ-GÈ!Ñ-KÐKr,   c                ó   <€ V ^8„  d   QhRR/# rP   rQ   )r'   r(   s   "€r)   r*   r+   è   s   ø€ ÷ ,ñ ,˜$ñ ,r,   c                óz  € V P                  4       '       d   R # \        P                  P                  V P                  4      p\        \        V P                  ,          WP                   R2\        V P                  ,          R7       \        P                  P                  V\        P                  P                  \        V P                  ,          4      P                  R4      4      p\        P                  P                  V4      '       g   \        RV 24      h\        P                  ! W P                  4       R # )Nz.tgz)ÚfilenameÚmd5z.tar.gzz#Unable to find downloaded files at )r:   r6   r7   Údirnamer   r	   r3   r   ÚDATASET_MD5r8   ÚbasenameÚrstripr�   r;   Úrename)rG   Ú	base_rootÚorig_dir_names   &  r)   r!   ÚINaturalist.downloadè   sÊ   € Ø×Ñ×ÒÙä—G‘G—O‘O D§I¡IÓ.ˆ	ä$Ü˜Ÿ™Õ&¨	¿|¹|¸nÈDÐ<QÔWbÐcg×coÑcoÕWpõ	
ô Ÿ™Ÿ™ Y´·±×0@Ñ0@ÄÈdÏlÉlÕA[Ó0\×0cÑ0cÐdmÓ0nÓoˆÜ�w‰w�~‰~˜m×,Ò,ÜÐ!DÀ]ÀOÐTÓUÐUÜ
�	Š	�-§¡Ö+r,   )r<   r=   r>   rC   r"   r   r   )r   r1   NNFN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r5   rA   rB   rz   r€   r‰   r:   r!   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)rM   r(   s   @@r)   r   r       sh   ù‡ € ñ#÷J.õ .÷`0ð 0÷0!Að !A÷Fð ÷:ð ÷[ð [÷(Lð L÷,÷ ,ð ,r,   r   )ÚkingdomÚphylumÚclassÚorderÚfamilyÚgenus)r6   Úos.pathÚpathlibr   Útypingr   r   r   r   ÚPILr   Úutilsr	   r
   Úvisionr   r@   r3   r”   r   rQ   r,   r)   Ú<module>r¯      sŠ   ðÛ 	Û Ý ß 1Ó 1å ç ?Ý !âL€ð Ð`Ø
Ð]Ø
Ð]ØÐ[ØÐeØÐYð€ð Ð.Ø
Ð.Ø
Ð.ØÐ4ØÐ9ØÐ4ð€ôU,�-ö U,r,   