
    $TXg/                         d Z ddlZddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZmZ dd	lmZ  G d
 de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Z G d de      Zy)z*Collection of enums used throughout conda.    N)Enum)machine   )classproperty)dals)TypeCoercionErrorboolify)CondaUpgradeErrorc                   R    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZed        Zd Zy)Archx86x86_64arm64armv6larmv7laarch64ppc64ppc64leriscv64s390xwasm32zc                 L    t         j                  dk(  r| d   S | t                  S )Nzosr   )sysplatformr   clss    2lib/python3.12/site-packages/conda/models/enums.pyfrom_syszArch.from_sys   s#    <<5 s8O79~    c                     | j                   S Nvalueselfs    r   __json__zArch.__json__%       zzr!   N)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r   classmethodr    r(    r!   r   r   r      sU    
CFEFFGEGGEFA 
r!   r   c                   B    e Zd ZdZdZdZdZdZdZdZ	dZ
ed	        Zd
 Zy)Platformfreebsdlinuxwin32openbsd5darwinr   
emscriptenwasic                 .     | t         j                        S r#   )r   r   r   s    r   r    zPlatform.from_sys3   s    3<<  r!   c                     | j                   S r#   r$   r&   s    r   r(   zPlatform.__json__7   r)   r!   N)r*   r+   r,   r1   r2   winopenbsdosxr   r6   r7   r-   r    r(   r.   r!   r   r0   r0   )   sA    GE
CG
C
CJD! !r!   r0   c                       e Zd ZdZdZd Zy)FileModetextbinaryc                     | j                    S r#   r$   r&   s    r   __str__zFileMode.__str__?   s    **r!   N)r*   r+   r,   r?   r@   rB   r.   r!   r   r>   r>   ;   s    DFr!   r>   c                   .    e Zd ZdZdZdZdZd Zd Zd Z	y)	LinkType   r         c                     | j                   S r#   r$   r&   s    r   __int__zLinkType.__int__K   r)   r!   c                     | j                   S r#   namer&   s    r   rB   zLinkType.__str__N       yyr!   c                     | j                   S r#   rK   r&   s    r   r(   zLinkType.__json__Q   rM   r!   N)
r*   r+   r,   hardlinksoftlinkcopy	directoryrI   rB   r(   r.   r!   r   rD   rD   C   s'     HHDIr!   rD   c                   L    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zed
        Zd Zd Zy)PathTypez{
    Refers to if the file in question is hard linked or soft linked. Originally designed to be used
    in paths.json
    rO   rP   rR   linked_package_recordpyc_fileunix_python_entry_point!windows_python_entry_point_scriptwindows_python_entry_point_exec                 `    t         j                  t         j                  t         j                  fS r#   )rT   rO   rP   rR   r&   s    r   basic_typeszPathType.basic_typesh   s!    !!8#4#4h6H6HIIr!   c                     | j                   S r#   rK   r&   s    r   rB   zPathType.__str__l   rM   r!   c                     | j                   S r#   rK   r&   s    r   r(   zPathType.__json__o   rM   r!   N)r*   r+   r,   __doc__rO   rP   rR   rU   rV   rW   rX   rY   r   r[   rB   r(   r.   r!   r   rT   rT   U   sY    
 HHI 	   H7(K%%E"J Jr!   rT   c                   L    e Zd ZdZdZdZdZdZdZdZ	dZ
ed	        Zed
        Zy)PackageTypenoarch_genericnoarch_pythonvirtual_private_envvirtual_python_wheelvirtual_python_egg_manageablevirtual_python_egg_unmanageablevirtual_python_egg_linkvirtual_systemc                  D    d t         j                  t         j                  hS r#   )r`   NOARCH_GENERICNOARCH_PYTHONr.   r!   r   conda_package_typeszPackageType.conda_package_types}   s#     &&%%
 	
r!   c                  `    t         j                  t         j                  t         j                  hS r#   )r`   VIRTUAL_PYTHON_EGG_UNMANAGEABLEVIRTUAL_PYTHON_EGG_LINKVIRTUAL_SYSTEMr.   r!   r   unmanageable_package_typesz&PackageType.unmanageable_package_types   s)     77//&&
 	
r!   N)r*   r+   r,   rj   rk   VIRTUAL_PRIVATE_ENVVIRTUAL_PYTHON_WHEELVIRTUAL_PYTHON_EGG_MANAGEABLErn   ro   rp   staticmethodrl   rq   r.   r!   r   r`   r`   s   sU    %N#M/1$C!&G#7%N
 
 
 
r!   r`   c                   $    e Zd ZdZdZed        Zy)
NoarchTypegenericpythonc                    t        | t              r| S t        | dd       }t        |t              r|S t        | t              r| rt        j                  nd } t        | t
              r`| j                         } | dk(  rt        j                  } | S | dk(  rt        j                  } | S 	 t        |       rt        j                  } | S d } | S | S # t        $ r t        t        d|  d            w xY w)Ntypery   rx   zA
                    The noarch type for this package is set to 'z'.
                    The current version of conda is too old to install this package.
                    Please update conda.
                    )
isinstancerw   getattrboolrx   strlowerry   r	   r   r
   r   )valvaltypes     r   coercezNoarchType.coerce   s     c:&J#vt,gz*Nc4 (+*$$Cc3))+Ch ''  
 	! (( 
07*,,C 
 CGC 
s
 ) 	+!AAD F 	s   %C C "C*N)r*   r+   r,   rx   ry   ru   r   r.   r!   r   rw   rw      s    GF r!   rw   )r^   r   enumr   r   r   auxlib.decoratorsr   
auxlib.ishr   auxlib.type_coercionr   r	   
exceptionsr
   r   r0   r>   rD   rT   r`   rw   r.   r!   r   <module>r      ss    1 
   -  = *4 4t $t t $t <
$ 
6! !r!   