B
    '\                 @   s   d dl mZmZmZmZ d dlm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mZ dd	lmZ dd
lmZ G dd de	ZG dd de	ZG dd de	ZG dd de	ZG dd de	ZG dd de	ZG dd de	ZG dd de	ZdS )    )absolute_importdivisionprint_functionunicode_literals)machineN)Enum   )classproperty)dals)TypeCoercionErrorboolify)string_types)CondaUpgradeErrorc               @   s<   e Zd ZdZdZdZdZdZdZdZ	e
dd	 Zd
d ZdS )Archx86x86_64armv6larmv7laarch64ppc64lezc             C   s   t jdkr| d S | t  S )Nzosr   )sysplatformr   )cls r   1lib/python3.7/site-packages/conda/models/enums.pyfrom_sys   s    
zArch.from_sysc             C   s   | j S )N)value)selfr   r   r   __json__!   s    zArch.__json__N)__name__
__module____qualname__r   r   r   r   r   r   r   classmethodr   r    r   r   r   r   r      s   r   c               @   s4   e Zd ZdZdZdZdZdZedd Z	dd	 Z
d
S )Platformlinuxwin32Zopenbsd5darwinr   c             C   s   t j}|drd}| |S )Nr&   )r   r   
startswith)r   pr   r   r   r   ,   s    
zPlatform.from_sysc             C   s   | j S )N)r   )r   r   r   r   r    7   s    zPlatform.__json__N)r!   r"   r#   r&   winZopenbsdZosxr   r$   r   r    r   r   r   r   r%   %   s   r%   c               @   s   e Zd ZdZdZdd ZdS )FileModetextbinaryc             C   s
   d| j  S )Nz%s)r   )r   r   r   r   __str__?   s    zFileMode.__str__N)r!   r"   r#   r-   r.   r/   r   r   r   r   r,   ;   s   r,   c               @   s4   e Zd ZdZdZdZdZdd Zdd Zd	d
 Z	dS )LinkType   r         c             C   s   | j S )N)r   )r   r   r   r   __int__K   s    zLinkType.__int__c             C   s   | j S )N)name)r   r   r   r   r/   N   s    zLinkType.__str__c             C   s   | j S )N)r5   )r   r   r   r   r    Q   s    zLinkType.__json__N)
r!   r"   r#   hardlinksoftlinkcopy	directoryr4   r/   r    r   r   r   r   r0   C   s   r0   c               @   sL   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zed
d Zdd Zd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
    r6   r7   r9   linked_package_recordpyc_fileunix_python_entry_point!windows_python_entry_point_scriptwindows_python_entry_point_exec             C   s   t jt jt jfS )N)r:   r6   r7   r9   )r   r   r   r   basic_typese   s    zPathType.basic_typesc             C   s   | j S )N)r5   )r   r   r   r   r/   i   s    zPathType.__str__c             C   s   | j S )N)r5   )r   r   r   r   r    l   s    zPathType.__json__N)r!   r"   r#   __doc__r6   r7   r9   r;   r<   r=   r>   r?   r	   r@   r/   r    r   r   r   r   r:   U   s   r:   c               @   s(   e Zd ZdZdZdZdd Zdd ZdS )	LeasedPathTypeapplication_entry_point#application_entry_point_windows_exeapplication_softlinkc             C   s   | j S )N)r5   )r   r   r   r   r/   u   s    zLeasedPathType.__str__c             C   s   | j S )N)r5   )r   r   r   r   r    x   s    zLeasedPathType.__json__N)r!   r"   r#   rC   rD   rE   r/   r    r   r   r   r   rB   p   s
   rB   c               @   s@   e Zd ZdZdZdZdZdZdZdZ	e
dd	 Ze
d
d ZdS )PackageTypeZnoarch_genericZnoarch_pythonZvirtual_private_envZvirtual_python_wheelZvirtual_python_egg_manageableZvirtual_python_egg_unmanageableZvirtual_python_egg_linkc               C   s   d t jt jhS )N)rF   NOARCH_GENERICNOARCH_PYTHONr   r   r   r   conda_package_types   s    zPackageType.conda_package_typesc               C   s   t jt jhS )N)rF   VIRTUAL_PYTHON_EGG_UNMANAGEABLEVIRTUAL_PYTHON_EGG_LINKr   r   r   r   unmanageable_package_types   s    z&PackageType.unmanageable_package_typesN)r!   r"   r#   rG   rH   ZVIRTUAL_PRIVATE_ENVZVIRTUAL_PYTHON_WHEELZVIRTUAL_PYTHON_EGG_MANAGEABLErJ   rK   staticmethodrI   rL   r   r   r   r   rF   |   s   rF   c               @   s    e Zd ZdZdZedd ZdS )
NoarchTypegenericpythonc             C   s   t | tr| S t | tr&| r"tjnd } t | tr|  } | dkrHtj} nL| dkrXtj} n<yt| rhtjnd } W n$ tk
r   t	t
d|  Y nX | S )NrP   rO   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.
                    )
isinstancerN   boolrO   r   lowerrP   r   r   r   r
   )valr   r   r   coerce   s     


zNoarchType.coerceN)r!   r"   r#   rO   rP   rM   rU   r   r   r   r   rN      s   rN   )Z
__future__r   r   r   r   r   r   r   enumr   Z_vendor.auxlib.decoratorsr	   Z_vendor.auxlib.ishr
   Z_vendor.auxlib.type_coercionr   r   Zcommon.compatr   
exceptionsr   r   r%   r,   r0   r:   rB   rF   rN   r   r   r   r   <module>   s    