B
    *\                 @   s  d Z ddlmZmZmZmZ ddlZddlmZm	Z	 ddl
Z
e
jd dkr\ee
 e
d ddlmZmZ d	Zd
ZdZdZdZdZdZe ZdZeddkre
jejed< ee	eZdd Z G dd de!Z"G dd de"Z#G dd de"Z$e% Z&dd Z'dS )z1OS-agnostic, system-level binary package manager.    )absolute_importdivisionprint_functionunicode_literalsN)abspathdirname   zutf-8   )	text_type	iteritems)__name____version__
__author__	__email____license____summary____url__CONDA_PACKAGE_ROOT
CondaErrorCondaMultiErrorCondaExitZeroconda_signal_handler__copyright__Zcondaz4.6.11zAnaconda, Inc.zconda@continuum.iozBSD-3-Clausez"Copyright (c) 2012, Anaconda, Inc.zhttps://github.com/conda/condaZ
CONDA_ROOTc             C   s$   t | tr t | ts t| ddS | S )Nzutf-8)encoding)
isinstanceZ
basestringZunicode)val r   -lib/python3.7/site-packages/conda/__init__.pyanother_to_unicode*   s    r   c                   s^   e Zd ZdZdZd fdd	Zejd dkr6dd	 Znd
d Z	dd	 Zdd Z
dd Z  ZS )r   r	   FNc                s&   || _ || _|| _tt| | d S )N)message_kwargs
_caused_bysuperr   __init__)selfr   	caused_bykwargs)	__class__r   r   r#   4   s    zCondaError.__init__r   r   c             C   s   d| j jt| f S )Nz%s: %s)r'   r   r
   )r$   r   r   r   __repr__=   s    zCondaError.__repr__c             C   sH   t  }x&t| jD ]\}}t||t|< qW t| j}d||  }|S )Nz%s)dictr   r    r   r   )r$   Z
new_kwargskvZnew_messageresr   r   r   __unicode__B   s    
zCondaError.__unicode__c             C   s   d| j j|  f S )Nz%s: %s)r'   r   r-   )r$   r   r   r   r(   J   s    c             C   s   y0t jd dkr t| j| j S |  dS W nJ tk
rz   dd| j	j
 d| jdt| jdf}t|t jd	  Y nX d S )
Nr   r   zutf-8
zclass: zmessage:zkwargs: )file)sysversion_infor
   r   r    r-   encode	Exceptionjoinr'   r   printstderr)r$   Zdebug_messager   r   r   __str__M   s    
zCondaError.__str__c             C   sV   t dd t|  D }|jf tt| | jjt| t| t| j	d| j
 |S )Nc             s   s$   | ]\}}| d s||fV  qdS )_N)
startswith).0r*   r+   r   r   r   	<genexpr>a   s    z&CondaError.dump_map.<locals>.<genexpr>)exception_typeexception_namer   errorr%   )r)   varsitemsupdater
   typer'   r   reprr!   r    )r$   resultr   r   r   dump_map`   s    
zCondaError.dump_map)N)r   
__module____qualname__return_codeZ
reportabler#   r1   r2   r(   r-   r8   rF   __classcell__r   r   )r'   r   r   0   s   
r   c                   s\   e Zd Z fddZejd dkr,dd Zndd Zd	d Zd
d Zdd Z	dd Z
  ZS )r   c                s   || _ tt| d  d S )N)errorsr"   r   r#   )r$   rK   )r'   r   r   r#   m   s    zCondaMultiError.__init__r   r   c             C   sT   g }x@| j D ]6}t|tr4t|ts4|t| q||  qW d|}|S )Nr.   )rK   r   EnvironmentErrorr   appendr
   r(   r5   )r$   errser,   r   r   r   r(   r   s    
zCondaMultiError.__repr__c             C   sT   g }x@| j D ]6}t|tr4t|ts4|t| q||  qW d|}|S )Nr.   )rK   r   rL   r   rM   r
   r(   r5   )r$   rN   rO   r,   r   r   r   r-      s    
zCondaMultiError.__unicode__c             C   s   d| j j|  f S )Nz%s: %s)r'   r   r-   )r$   r   r   r   r(      s    c             C   s"   t ddd | jD t d S )Nr.   c             s   s   | ]}t |V  qd S )N)str)r;   rO   r   r   r   r<      s    z*CondaMultiError.__str__.<locals>.<genexpr>)rP   r5   rK   )r$   r   r   r   r8      s    zCondaMultiError.__str__c             C   s,   t tt| | jjtdd | jD ddS )Nc             s   s   | ]}|  V  qd S )N)rF   )r;   r?   r   r   r   r<      s    z+CondaMultiError.dump_map.<locals>.<genexpr>zMultiple Errors Encountered.)r=   r>   rK   r?   )r)   r
   rC   r'   r   tuplerK   )r$   r   r   r   rF      s    zCondaMultiError.dump_mapc                s   t  fdd| jD S )Nc             3   s   | ]}t | V  qd S )N)r   )r;   rO   )exception_classr   r   r<      s    z+CondaMultiError.contains.<locals>.<genexpr>)anyrK   )r$   rR   r   )rR   r   contains   s    zCondaMultiError.contains)r   rG   rH   r#   r1   r2   r(   r-   r8   rF   rT   rJ   r   r   )r'   r   r   k   s   
r   c               @   s   e Zd ZdZdS )r   r   N)r   rG   rH   rI   r   r   r   r   r      s   r   c             C   s<   x"t D ]}| d kr||  qW ddlm} || d S )Nr	   )CondaSignalInterrupt)ACTIVE_SUBPROCESSESZpollZsend_signal
exceptionsrU   )ZsignumframeprU   r   r   r   r      s
    
r   )(__doc__Z
__future__r   r   r   r   osos.pathr   r   r1   r2   reloadZsetdefaultencodingZcommon.compatr
   r   __all__r   r   r   r   r   r   r   r   getenvprefixenvironrP   __file__r   r   r4   r   r   r   setrV   r   r   r   r   r   <module>   s4   
;3