
    DIe                     r   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dS )z*Collection of enums used throughout conda.    N)Enum)machine   )classproperty)dals)TypeCoercionErrorboolify)
deprecated)CondaUpgradeErrorc                   V    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dS )Archx86x86_64arm64armv6larmv7laarch64ppc64ppc64leriscv64s390xzc                 Z    t           j        dk    r| d         S | t                               S )Nzosr   )sysplatformr   clss    2lib/python3.11/site-packages/conda/models/enums.pyfrom_syszArch.from_sys   s&    <5  s8O799~    c                     | j         S Nvalueselfs    r   __json__zArch.__json__$   
    zr!   N)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   classmethodr    r(    r!   r   r   r      ss        
CFEFFGEGGEA  [
    r!   r   c                   B    e Zd ZdZdZdZdZdZdZe	d             Z
d Zd	S )
Platformfreebsdlinuxwin32openbsd5darwinr   c                 ,     | t           j                  S r#   )r   r   r   s    r   r    zPlatform.from_sys0   s    s3<   r!   c                     | j         S r#   r$   r&   s    r   r(   zPlatform.__json__4   r)   r!   N)r*   r+   r,   r1   r2   winopenbsdosxr   r-   r    r(   r.   r!   r   r0   r0   (   sZ        GE
CG
C
C! ! [!    r!   r0   c                       e Zd ZdZdZd ZdS )FileModetextbinaryc                     d| j         z  S )Nz%sr$   r&   s    r   __str__zFileMode.__str__<   s    dj  r!   N)r*   r+   r,   r=   r>   r@   r.   r!   r   r<   r<   8   s-        DF! ! ! ! !r!   r<   c                   0    e Zd ZdZdZdZdZd Zd Zd Z	dS )	LinkType   r         c                     | j         S r#   r$   r&   s    r   __int__zLinkType.__int__H   r)   r!   c                     | j         S r#   namer&   s    r   r@   zLinkType.__str__K   
    yr!   c                     | j         S r#   rI   r&   s    r   r(   zLinkType.__json__N   rK   r!   N)
r*   r+   r,   hardlinksoftlinkcopy	directoryrG   r@   r(   r.   r!   r   rB   rB   @   sW         HHDI        r!   rB   c                   T    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dS )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                 H    t           j        t           j        t           j        fS r#   )rR   rM   rN   rP   r&   s    r   basic_typeszPathType.basic_typese   s    !8#4h6HIIr!   c                     | j         S r#   rI   r&   s    r   r@   zPathType.__str__i   rK   r!   c                     | j         S r#   rI   r&   s    r   r(   zPathType.__json__l   rK   r!   N)r*   r+   r,   __doc__rM   rN   rP   rS   rT   rU   rV   rW   r   rY   r@   r(   r.   r!   r   rR   rR   R   s         
 HHI 	   H7(K%%E"J J ]J      r!   rR   c                   &    e Zd ZdZdZdZd Zd ZdS )LeasedPathTypeapplication_entry_point#application_entry_point_windows_exeapplication_softlinkc                     | j         S r#   rI   r&   s    r   r@   zLeasedPathType.__str__u   rK   r!   c                     | j         S r#   rI   r&   s    r   r(   zLeasedPathType.__json__x   rK   r!   N)r*   r+   r,   r_   r`   ra   r@   r(   r.   r!   r   r^   r^   p   sD        7*O'1      r!   r^   z24.3z24.9c                   Z    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dS )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                  4    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                  H    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/&
 	
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dS )
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|                                 } | dk    rt          j        } n_| dk    rt          j        } nL	 t          |           rt          j        nd } n-# t          $ r  t          t          d| z                      w xY w| S )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   	6(+5*$$Cc3 	))++Ch '	!! (07F*,,$CC( 
 
 
+
 "" 	 	 	
 
s   5C *C=N)r*   r+   r,   r}   r~   rz   r   r.   r!   r   r|   r|      s7        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 0 



             - - - - - -       = = = = = = = = % % % % % % * * * * * *    4   2    t    ! ! ! ! !t ! ! !    t   $    t   <	 	 	 	 	T 	 	 	 
 FF$4n E E E
 
 
 
 
$ 
 
 
6" " " " " " " " " "r!   