+
     °³jì&  ã                   ój  € ^ RI t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHtHtHtHtHtHt ^ R	IHt ^R
IHt . ROt] ! R R4      4       t ! R R]	4      tR R ltR R ltR R lt]! R]P@                  R7      t!/ t"R R R llt#R!R R llt$R R lt%R R lt&R# )"é    N)ÚIterable)Ú	dataclass)ÚEnum)Úpartial)Ú	signature)Ú
ModuleType)ÚAnyÚCallableÚget_argsÚOptionalÚTypeVarÚUnion)Únn)Úload_state_dict_from_urlÚWeightsEnumÚWeightsc                   óB   a € ] tR t^t o RtV 3R lR ltV 3R ltRtV tR# )r   a¯  
This class is used to group important attributes associated with the pre-trained weights.

Args:
    url (str): The location where we find the weights.
    transforms (Callable): A callable that constructs the preprocessing method (or validation preset transforms)
        needed to use the model. The reason we attach a constructor method rather than an already constructed
        object is because the specific object might have memory and thus we want to delay initialization until
        needed.
    meta (Dict[str, Any]): Stores meta-data related to the weights of the model and its configuration. These can be
        informative attributes (for example the number of parameters/flops, recipe link/methods used in training
        etc), configuration parameters (for example the `num_classes`) needed to construct the model or important
        meta-data (for example the `classes` of a classification model) needed to use the model.
c                ó&   <€ V ^8„  d   QhRS[ RS[/# )é   ÚotherÚreturn)r	   Úbool)ÚformatÚ__classdict__s   "€ÚX/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchvision/models/_api.pyÚ__annotate__ÚWeights.__annotate__*   s   ø€ ÷ 7ñ 7™Cð 7¡Dñ 7ó    c                óŽ  € \        V\        4      '       g   \        # V P                  VP                  8w  d   R # V P                  VP                  8w  d   R # \        V P
                  \        4      '       d¸   \        VP
                  \        4      '       d˜   V P
                  P                  VP
                  P                  8H  ;'       dc    V P
                  P                  VP
                  P                  8H  ;'       d.    V P
                  P                  VP
                  P                  8H  # V P
                  VP
                  8H  # )F)
Ú
isinstancer   ÚNotImplementedÚurlÚmetaÚ
transformsr   ÚfuncÚargsÚkeywords)Úselfr   s   &&r   Ú__eq__ÚWeights.__eq__*   sï   € ô ˜%¤×)Ò)Ü!Ð!à�8‰8�u—y‘yÔ Ùà�9‰9˜Ÿ
™
Ô"Ùä�d—o‘o¤w×/Ò/´J¸u×?OÑ?OÔQX×4YÒ4Yà—‘×$Ñ$¨×(8Ñ(8×(=Ñ(=Ñ=÷ Jð JØ—O‘O×(Ñ(¨E×,<Ñ,<×,AÑ,AÑA÷Jð Jà—O‘O×,Ñ,°×0@Ñ0@×0IÑ0IÑIðð —?‘? e×&6Ñ&6Ñ6Ð6r   c                óT   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   S[S[ S[3,          ;R&   # )r   r"   r$   r#   )Ústrr
   Údictr	   )r   r   s   "€r   r   r      s3   ø‡ ‚ ñ" 
�Hñ# ñ$ Ññ% ñ& ‰s‘Cˆx�.Ñò' r   © N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r)   Ú__annotate_func__Ú__static_attributes__Ú__classdictcell__©r   s   @r   r   r      s   ø‡ € ñ÷&7ð 7÷+ ƒ r   c                   ó”   a € ] tR t^Et o Rt]V 3R lR l4       tV 3R lR ltV 3R lR lt]	R 4       t
]	R	 4       t]	R
 4       tRtV tR# )r   a5  
This class is the parent class of all model weights. Each model building method receives an optional `weights`
parameter with its associated pre-trained weights. It inherits from `Enum` and its values should be of type
`Weights`.

Args:
    value (Weights): The data class entry with the weight information.
c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r   Úobjr   )r	   )r   r   s   "€r   r   ÚWeightsEnum.__annotate__P   s   ø€ ÷ ñ ™ð ¡ñ r   c                ó  € Ve€   \        V4      \        J d,   WP                  V P                  R,           R4      ,          pV# \	        W4      '       g1   \        RV P                   RVP                  P                   R24      hV# )NÚ.Ú z(Invalid Weight class provided; expected z but received )Útyper,   Úreplacer/   r    Ú	TypeErrorÚ	__class__)Úclsr:   s   &&r   ÚverifyÚWeightsEnum.verifyO   s|   € àŠ?Ü�C‹yœCÓØŸ+™+ c§l¡l°SÕ&8¸"Ó=Õ>�ð
 ˆ
ô	   ×)Ò)ÜØ>¸s¿|¹|¸nÈNÐ[^×[hÑ[h×[qÑ[qÐZrÐrsÐtóð ð ˆ
r   c                óB   <€ V ^8„  d   QhRS[ RS[ RS[S[S[ 3,          /# )r   r&   Úkwargsr   )r	   r-   r,   )r   r   s   "€r   r   r;   Z   s/   ø€ ÷ Cñ C¡Cð C±3ð C¹4ÁÁSÀ½>ñ Cr   c                ó4   € \        V P                  .VO5/ VB # ©N)r   r"   )r(   r&   rG   s   &*,r   Úget_state_dictÚWeightsEnum.get_state_dictZ   s   € Ü'¨¯©ÐB°4ÒB¸6ÑBÐBr   c                ó    <€ V ^8„  d   QhRS[ /# )r   r   )r,   )r   r   s   "€r   r   r;   ]   s   ø€ ÷ :ñ :™#ñ :r   c                óL   € V P                   P                   R V P                   2# )r=   )rB   r/   Ú_name_©r(   s   &r   Ú__repr__ÚWeightsEnum.__repr__]   s"   € Ø—.‘.×)Ñ)Ð*¨!¨D¯K©K¨=Ð9Ð9r   c                ó.   € V P                   P                  # rI   )Úvaluer"   rO   s   &r   r"   ÚWeightsEnum.url`   s   € à�z‰z�~‰~Ðr   c                ó.   € V P                   P                  # rI   )rS   r$   rO   s   &r   r$   ÚWeightsEnum.transformsd   s   € à�z‰z×$Ñ$Ð$r   c                ó.   € V P                   P                  # rI   )rS   r#   rO   s   &r   r#   ÚWeightsEnum.metah   s   € à�z‰z�‰Ðr   r.   N)r/   r0   r1   r2   r3   ÚclassmethodrD   rJ   rP   Úpropertyr"   r$   r#   r5   r6   r7   s   @r   r   r   E   sp   ø‡ € ñð ÷ó ð÷Cð C÷:ð :ð ñó ðð ñ%ó ð%ð ñó ör   c                ó0   € V ^8„  d   QhR\         R\        /# ©r   Únamer   )r,   r   )r   s   "r   r   r   m   s   € ÷ !$ñ !$”Sð !$œ[ñ !$r   c                óÈ  €  V P                  R4      w  rRP                  \        P                  \
        ,          P
                  P                  R4      RR 4      p\        P                  ! T4      pT.\        P                  ! T\        P                  4       Uu. uF6  pT^,          P                  P                  R4      '       g   K-  T^,          NK8  	  up,           pRpT F?  pTP                  P                  TR4      p	T	f   K%  \        T	\         4      '       g   K=  T	p M	  Tf   \        RT R24      hYr,          #   \         d    \        RT  R24      hi ; iu upi )	zÉ
Gets the weights enum value by its full name. Example: "ResNet50_Weights.IMAGENET1K_V1"

Args:
    name (str): The name of the weight enum entry.

Returns:
    WeightsEnum: The requested weight enum.
r=   zInvalid weight name provided: 'ú'.Nz__init__.pyzThe weight enum 'z0' for the specific method couldn't be retrieved.éÿÿÿÿ)ÚsplitÚ
ValueErrorÚjoinÚsysÚmodulesr/   Ú	importlibÚimport_moduleÚinspectÚ
getmembersÚismoduleÚ__file__ÚendswithÚ__dict__ÚgetÚ
issubclassr   )
r]   Ú	enum_nameÚ
value_nameÚbase_module_nameÚbase_moduleÚxÚmodel_modulesÚweights_enumÚmÚpotential_classs
   &         r   Ú
get_weightry   m   sE  € ðEØ $§
¡
¨3£Ñˆ	ð —x‘x¤§¡¬HÕ 5× >Ñ >× DÑ DÀSÓ IÈ#È2Ð NÓOÐÜ×)Ò)Ð*:Ó;€KØ �Mä×#Ò# K´×1AÑ1AÔBó%áBˆAØˆQ�4�=‰=×!Ñ! -×0ô 	ˆˆ!�ˆÙBñ%õ €Mð €LÛˆØŸ*™*Ÿ.™.¨°DÓ9ˆØÔ&¬:°oÄ{×+SÔ+SØ*ˆLÙñ	 ð ÒÜÐ,¨Y¨KÐ7gÐhÓiÐiàÕ#Ð#øô+ ô EÜÐ:¸4¸&ÀÐCÓDÐDðEüò
%s   ‚E Â*EÃ	EÅEc                óh   € V ^8„  d   QhR\         \        \        3,          R\        \        ,          /# r\   )r   r
   r,   r?   r   )r   s   "r   r   r   ‘   s(   € ÷ $ñ $œE¤(¬C -Õ0ð $´T¼+Õ5Fñ $r   c                ó^   € \        V \        4      '       d   \        V 4      MT p\        V4      # )a  
Returns the weights enum class associated to the given model.

Args:
    name (callable or str): The model builder function or the name under which it is registered.

Returns:
    weights_enum (WeightsEnum): The weights enum class associated with the model.
)r    r,   Úget_model_builderÚ_get_enum_from_fn)r]   Úmodels   & r   Úget_model_weightsr   ‘   s(   € ô (2°$¼×'<Ò'<Ô˜dÔ#À$€EÜ˜UÓ#Ð#r   c                óF   € V ^8„  d   QhR\         R\        \        ,          /# )r   Úfnr   )r
   r?   r   )r   s   "r   r   r   Ÿ   s   € ÷ ñ œ(ð ¤t¬KÕ'8ñ r   c                ó–  € \        V 4      pRVP                  9  d   \        R4      hVP                  R,          P                  pRp\	        V\
        4      '       d   \        V\        4      '       d   TpMD\        V4       F5  p\	        V\
        4      '       g   K  \        V\        4      '       g   K3  Tp M	  Vf   \        R4      hV# )zË
Internal method that gets the weight enum of a specific model builder method.

Args:
    fn (Callable): The builder method used to create the model.
Returns:
    WeightsEnum: The requested weight enum.
Úweightsz-The method is missing the 'weights' argument.NzjThe WeightsEnum class for the specific method couldn't be retrieved. Make sure the typing info is correct.)	r   Ú
parametersrb   Ú
annotationr    r?   ro   r   r   )r�   ÚsigÚannrv   Úts   &    r   r}   r}   Ÿ   s­   € ô �B‹-€CØ˜Ÿ™Ô&ÜÐHÓIÐIà
�.‰.˜Õ
#×
.Ñ
.€CØ€LÜ�#”t×Ò¤¨C´×!=Ò!=Ø‰ô ˜#–ˆAÜ˜!œT×"Ô"¤z°!´[×'AÔ'AØ �Ùñ ð
 ÒÜØxó
ð 	
ð Ðr   ÚM)Úboundc                óž   € V ^8„  d   QhR\         \        ,          R\        \        R\        3,          .\        R\        3,          3,          /# ©r   r]   r   .)r   r,   r
   r‰   )r   s   "r   r   r   Ä   s@   € ÷ ñ œ¤#�ð ´(¼HÀSÌ!ÀVÕ<LÐ;MÌxÐX[Ô]^ÐX^ÕO_Ð;_Õ2`ñ r   c                 ó   a € R  V 3R llpV# )c                ód   € V ^8„  d   QhR\         R\        3,          R\         R\        3,          /# )r   r�   .r   )r
   r‰   )r   s   "r   r   Ú$register_model.<locals>.__annotate__Å   s,   € ÷ ñ ”H˜S¤!˜VÕ$ð ¬°#´q°&Õ)9ñ r   c                 ór   <€ Se   SMV P                   pV\        9   d   \        RV R24      hV \        V&   V # )Nz/An entry is already registered under the name 'r_   )r/   ÚBUILTIN_MODELSrb   )r�   Úkeyr]   s   & €r   ÚwrapperÚregister_model.<locals>.wrapperÅ   s@   ø€ ØÒ&‰d¨B¯K©KˆØ”.Ô ÜÐNÈsÈeÐSUÐVÓWÐWØ Œ�sÑØˆ	r   r.   )r]   r“   s   f r   Úregister_modelr•   Ä   s   ø€ ÷ð ð €Nr   c          	      óè   € V ^8„  d   QhR\         \        ,          R\        \        \        ,          \        R3,          R\        \        \        ,          \        R3,          R\
        \        ,          /# )r   ÚmoduleÚincludeNÚexcluder   )r   r   r   r   r,   Úlist)r   s   "r   r   r   Ï   sY   € ÷ %ñ %Ü”ZÕ ð%ä”8œC•=¤# tÐ+Õ,ð%ô ”8œC•=¤# tÐ+Õ,ð%ô 
Œ#…Yñ	%r   c                ó<  € \         P                  4        UUu0 uF?  w  r4V e5   VP                  P                  R^4      ^ ,          V P                  8X  g   K=  VkKA  	  pppV'       dT   \        4       p\        V\        4      '       d   V.pV F)  pV\        \        P                  ! WW4      4      ,          pK+  	  MTpV'       dI   \        V\        4      '       d   V.pV F)  pV\        \        P                  ! WX4      4      ,
          pK+  	  \        V4      # u uppi )aw  
Returns a list with the names of registered models.

Args:
    module (ModuleType, optional): The module from which we want to extract the available models.
    include (str or Iterable[str], optional): Filter(s) for including the models from the set of all models.
        Filters are passed to `fnmatch <https://docs.python.org/3/library/fnmatch.html>`__ to match Unix shell-style
        wildcards. In case of many filters, the results is the union of individual filters.
    exclude (str or Iterable[str], optional): Filter(s) applied after include_filters to remove models.
        Filter are passed to `fnmatch <https://docs.python.org/3/library/fnmatch.html>`__ to match Unix shell-style
        wildcards. In case of many filters, the results is removal of all the models that match any individual filter.

Returns:
    models (list): A list with the names of available models.
r=   )r‘   Úitemsr0   Úrsplitr/   Úsetr    r,   ÚfnmatchÚfilterÚsorted)	r—   r˜   r™   ÚkÚvÚ
all_modelsÚmodelsÚinclude_filterÚexclude_filters	   &&&      r   Úlist_modelsr¨   Ï   sê   € ô* %×*Ñ*Ô,ôÙ,‰dˆa°²À!Ç,Á,×BUÑBUÐVYÐ[\ÓB]Ð^_ÕB`Ðdj×dsÑdsÑBs�ˆÑ,ð ñ ÷ Ü›5ˆÜ�gœs×#Ò#Ø�iˆGÛ%ˆNØœc¤'§.¢.°Ó"LÓMÕMŠFò &ð ˆçÜ�gœs×#Ò#Ø�iˆGÛ%ˆNØœc¤'§.¢.°Ó"LÓMÕMŠFñ &ä�&‹>Ðùó#s   ˜:DÁDc                ó^   € V ^8„  d   QhR\         R\        R\        P                  3,          /# rŒ   )r,   r
   r   ÚModule)r   s   "r   r   r   ÷   s'   € ÷ ñ œCð ¤H¨S´"·)±)¨^Õ$<ñ r   c                ó|   € V P                  4       p  \        V ,          pV#   \         d    \        RT  24      hi ; i)z·
Gets the model name and returns the model builder method.

Args:
    name (str): The name under which the model is registered.

Returns:
    fn (Callable): The model builder method.
zUnknown model )Úlowerr‘   ÚKeyErrorrb   )r]   r�   s   & r   r|   r|   ÷   sH   € ð �:‰:‹<€Dð2Ü˜DÕ!ˆð €Iøô ô 2Ü˜>¨$¨Ð0Ó1Ð1ð2ús   ’! ¡;c                óP   € V ^8„  d   QhR\         R\        R\        P                  /# )r   r]   Úconfigr   )r,   r	   r   rª   )r   s   "r   r   r   	  s%   € ÷ ñ ”Cð ¤3ð ¬2¯9©9ñ r   c                ó(   € \        V 4      pV! R/ VB # )a
  
Gets the model name and configuration and returns an instantiated model.

Args:
    name (str): The name under which the model is registered.
    **config (Any): parameters passed to the model builder method.

Returns:
    model (nn.Module): The initialized model.
r.   )r|   )r]   r¯   r�   s   &, r   Ú	get_modelr±   	  s   € ô 
˜4Ó	 €BÙ‰<�‰<Ðr   )r   r   r±   r|   r   ry   r¨   rI   )NNN)'rŸ   rf   rh   rd   Úcollections.abcr   Údataclassesr   Úenumr   Ú	functoolsr   r   Útypesr   Útypingr	   r
   r   r   r   r   Útorchr   Ú_internally_replaced_utilsr   Ú__all__r   r   ry   r   r}   rª   r‰   r‘   r•   r¨   r|   r±   r.   r   r   Ú<module>r»      s›   ðÛ Û Û Û 
Ý $Ý !Ý Ý Ý Ý ß D× Då å Aò y€ð ÷,7ð ,7ó ð,7ô^%�$ô %õP!$õH$õñ@ ˆC�r—y‘yÔ!€à€÷÷%õP÷$r   