U
    \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
ddlZddl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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d Z&e j'e&_'e&e_'dS )z1OS-agnostic, system-level binary package manager.    )absolute_importdivisionprint_functionunicode_literalsN)abspathdirname)JSONEncoder)__name____version__
__author__	__email____license____summary____url__CONDA_PACKAGE_ROOT
CondaErrorCondaMultiErrorCondaExitZeroconda_signal_handler__copyright__Zcondaz4.14.0zAnaconda, Inc.zconda@continuum.iozBSD-3-Clausez"Copyright (c) 2012, Anaconda, Inc.zhttps://github.com/conda/condaZ
CONDA_ROOTc                 C   s0   t dt t| tr,t| ts,t| ddS | S )NzZ`conda.another_to_unicode` is pending deprecation and will be removed in a future release.zutf-8)encoding)warningswarnPendingDeprecationWarning
isinstanceZ
basestringZunicode)val r   -lib/python3.8/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dd Zdd	 Zd
d Z  Z	S )r      FNc                    s&   || _ || _|| _tt| | d S N)message_kwargs
_caused_bysuperr   __init__)selfr!   	caused_bykwargs	__class__r   r   r%   9   s    zCondaError.__init__c                 C   s   d| j jt| f S )Nz%s: %s)r*   r	   strr&   r   r   r   __repr__?   s    zCondaError.__repr__c                 C   sb   zt | j| j W S  tk
r\   dd| jj d| jdt | jdf}t|tj	d  Y nX d S )N
zclass: zmessage:zkwargs: )file)
r+   r!   r"   	Exceptionjoinr*   r	   printsysstderr)r&   Zdebug_messager   r   r   __str__B   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).0kvr   r   r   	<genexpr>R   s     
 z&CondaError.dump_map.<locals>.<genexpr>)exception_typeexception_namer!   errorr'   )dictvarsitemsupdater+   typer*   r	   reprr#   r"   )r&   resultr   r   r   dump_mapQ   s    zCondaError.dump_map)N)
r	   
__module____qualname__return_codeZ
reportabler%   r-   r6   rG   __classcell__r   r   r)   r   r   5   s   r   c                       s<   e Zd Z f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 r    )errorsr$   r   r%   )r&   rL   r)   r   r   r%   ^   s    zCondaMultiError.__init__c                 C   sP   g }| j D ]6}t|tr2t|ts2|t| q
||  q
d|}|S )Nr.   )rL   r   EnvironmentErrorr   appendr+   r-   r2   )r&   Zerrseresr   r   r   r-   b   s    

zCondaMultiError.__repr__c                 C   s"   t ddd | jD t d S )Nr.   c                 s   s   | ]}t |V  qd S r    )r+   r9   rO   r   r   r   r<   p   s     z*CondaMultiError.__str__.<locals>.<genexpr>)r+   r2   rL   r,   r   r   r   r6   o   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 r    )rG   )r9   r?   r   r   r   r<   u   s     z+CondaMultiError.dump_map.<locals>.<genexpr>zMultiple Errors Encountered.)r=   r>   rL   r?   )r@   r+   rD   r*   r	   tuplerL   r,   r   r   r   rG   r   s
    zCondaMultiError.dump_mapc                    s   t  fdd| jD S )Nc                 3   s   | ]}t | V  qd S r    )r   rQ   exception_classr   r   r<   z   s     z+CondaMultiError.contains.<locals>.<genexpr>)anyrL   )r&   rT   r   rS   r   containsy   s    zCondaMultiError.contains)	r	   rH   rI   r%   r-   r6   rG   rV   rK   r   r   r)   r   r   \   s
   r   c                   @   s   e Zd ZdZdS )r   r   N)r	   rH   rI   rJ   r   r   r   r   r   }   s   r   c                 C   s8   t D ]}| d kr||  qddlm} || d S )Nr   )CondaSignalInterrupt)ACTIVE_SUBPROCESSESZpollZsend_signal
exceptionsrW   )ZsignumframeprW   r   r   r   r      s
    r   c                 C   s   t |jdtj|S )NZto_json)getattrr*   _defaultdefault)r&   objr   r   r   r]      s    r]   )(__doc__Z
__future__r   r   r   r   osos.pathr   r   r4   r   Zjsonr   __all__r	   r
   r   r   r   r   r   r   getenvprefixenvironr+   __file__r   ZCONDA_SOURCE_ROOTr   r1   r   r   r   setrX   r   r]   r^   r   r   r   r   <module>   s8   '!
