
    wBf                     D   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 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 ej.                  ddde       [ 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)
deprecated)CondaUpgradeErrorc                   N    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ed        Zd Zy)Archx86x86_64arm64armv6larmv7laarch64ppc64ppc64leriscv64s390x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   classmethodr    r(    r!   r   r   r      sP    
CFEFFGEGGEA 
r!   r   c                   :    e 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   c                 .     | t         j                        S r#   )r   r   r   s    r   r    zPlatform.from_sys1   s    3<<  r!   c                     | j                   S r#   r$   r&   s    r   r(   zPlatform.__json__5   r)   r!   N)r*   r+   r,   r1   r2   winopenbsdosxr   r-   r    r(   r.   r!   r   r0   r0   )   s7    GE
CG
C
C! !r!   r0   c                       e Zd ZdZdZd Zy)FileModetextbinaryc                      d| j                   z  S )Nz%sr$   r&   s    r   __str__zFileMode.__str__=   s    djj  r!   N)r*   r+   r,   r=   r>   r@   r.   r!   r   r<   r<   9   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__I   r)   r!   c                     | j                   S r#   namer&   s    r   r@   zLinkType.__str__L       yyr!   c                     | j                   S r#   rI   r&   s    r   r(   zLinkType.__json__O   rK   r!   N)
r*   r+   r,   hardlinksoftlinkcopy	directoryrG   r@   r(   r.   r!   r   rB   rB   A   s'     HHDIr!   rB   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
    rM   rN   rP   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#   )rR   rM   rN   rP   r&   s    r   basic_typeszPathType.basic_typesf   s!    !!8#4#4h6H6HIIr!   c                     | j                   S r#   rI   r&   s    r   r@   zPathType.__str__j   rK   r!   c                     | j                   S r#   rI   r&   s    r   r(   zPathType.__json__m   rK   r!   N)r*   r+   r,   __doc__rM   rN   rP   rS   rT   rU   rV   rW   r   rY   r@   r(   r.   r!   r   rR   rR   S   sY    
 HHI 	   H7(K%%E"J Jr!   rR   c                   $    e Zd ZdZdZdZd Zd Zy)LeasedPathTypeapplication_entry_point#application_entry_point_windows_exeapplication_softlinkc                     | j                   S r#   rI   r&   s    r   r@   zLeasedPathType.__str__v   rK   r!   c                     | j                   S r#   rI   r&   s    r   r(   zLeasedPathType.__json__y   rK   r!   N)r*   r+   r,   r_   r`   ra   r@   r(   r.   r!   r   r^   r^   q   s    7*O'1r!   r^   z24.3z24.9c                   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#   )re   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#   )re   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,   ro   rp   VIRTUAL_PRIVATE_ENVVIRTUAL_PYTHON_WHEELVIRTUAL_PYTHON_EGG_MANAGEABLErs   rt   ru   staticmethodrq   rv   r.   r!   r   re   re      sU    %N#M/1$C!&G#7%N
 
 
 
r!   re   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| z              w xY w)Ntyper~   r}   z
                    The noarch type for this package is set to '%s'.
                    The current version of conda is too old to install this package.
                    Please update conda.
                    )
isinstancer|   getattrboolr}   strlowerr~   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
 ) 
+
 ""	 	
s   %C C !C)N)r*   r+   r,   r}   r~   rz   r   r.   r!   r   r|   r|      s    GF r!   r|   )r\   r   enumr   r   r   auxlib.decoratorsr   
auxlib.ishr   auxlib.type_coercionr   r	   deprecationsr
   
exceptionsr   r   r0   r<   rB   rR   r^   constantre   r|   r.   r!   r   <module>r      s    1 
   -  = % *4 2t  !t !t $t <	T 	 
  FF$4n E
$ 
6" "r!   