U
    d                     @   st   d dl mZmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ eeddd	ZG d
d deZdS )    )DictOptional)APIResponseErrorWarningObject)UserFacingError)WARN_NEW_VERSION_AVAILABLE)get_pro_environment)check_for_new_version)	exceptionreturnc              	   C   s   t | ttfr4t| j| jp$d| jj | jp,i d}ntt	| d| jj i d}g }t
 }|r||ttj|djtji d tdddddd	 tt  D ii|g|d
S )Nzgeneric-)titlecodemeta)versionZv1Zfailurer   Zenvironment_varsc                 S   s   g | ]\}}||d qS ))namevalue ).0r   r   r   r   5/usr/lib/python3/dist-packages/uaclient/api/errors.py
<listcomp>+   s   zerror_out.<locals>.<listcomp>)Z_schema_versionresultdataerrorswarnings)
isinstancer   APIErrorr   msgmsg_code	__class____name__additional_infostrr	   appendr   formatr   r   sortedr   items)r
   errorr   Znew_versionr   r   r   	error_out
   sJ    


 r'   c                       s6   e Zd Zdeeeeeef  dd fddZ  ZS )r   	api-errorN)r   r   r    r   c                    s   t  ||| d S )N)super__init__)selfr   r   r    r   r   r   r*   7   s    zAPIError.__init__)r(   N)r   
__module____qualname__r!   r   r   r*   __classcell__r   r   r,   r   r   6   s     r   N)typingr   r   Zuaclient.api.data_typesr   r   Zuaclient.exceptionsr   Zuaclient.messagesr   Zuaclient.utilr   Zuaclient.versionr	   	Exceptionr'   r   r   r   r   r   <module>   s   ,