U
    dW                     @   s   d dl mZ d dlZd dlZddgZe d 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_importNExceptionInfo	Traceback   c                   @   s   e Zd Zdd ZdS )_Codec                 C   sb   |j | _ |j| _|j| _d| _|j| _|j| _d| _d| _d| _|j	| _	|j
| _
|j| _d| _d S )N     )co_filenameco_nameco_argcountco_cellvarsco_firstlinenoco_flagsco_freevarsco_code	co_lnotabco_names
co_nlocalsco_stacksizeco_varnames)selfcoder   r   2/tmp/pip-unpacked-wheel-lulkwrw3/billiard/einfo.py__init__   s    z_Code.__init__N__name__
__module____qualname__r   r   r   r   r   r      s   r   c                   @   s   e Zd ZeZdd ZdS )_Framec                 C   s   i | _ |jdd|jdd d| _i  | _}z|jd |d< W n tk
rV   Y nX d | _d | _d | _d | _d | _	| 
|j| _|j| _|j| _d| _d S )N__file____main__r   r   r   
__loader__Z__traceback_hide__F)
f_builtins	f_globalsgetf_localsKeyErrorf_backf_traceZf_exc_tracebackZ
f_exc_typeZf_exc_valueCodef_codef_linenof_lastiZf_restricted)r   frameflr   r   r   r       s&    

z_Frame.__init__N)r   r   r   r   r*   r   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd ZdS )_Objectc                    s    fdd|  D  d S )Nc                    s   g | ]\}}t  ||qS r   )setattr).0kvr   r   r   
<listcomp>;   s     z$_Object.__init__.<locals>.<listcomp>)items)r   kwr   r5   r   r   :   s    z_Object.__init__Nr   r   r   r   r   r0   8   s   r0   c                   @   s   e Zd Zdd ZdS )
_Truncatedc                 C   s6   d| _ tddd dd tdddd| _d | _d| _d S )	N r!   z...z[rest of traceback truncated])r	   r
   )r$   Zf_filenor+   r   )	tb_linenor0   tb_frametb_nexttb_lastir5   r   r   r   r   @   s    z_Truncated.__init__Nr   r   r   r   r   r9   >   s   r9   c                   @   s   e Zd ZeZedfddZdS )r   r   c                 C   sX   |  |j| _|j| _|j| _d | _|jd k	rT||krLt|j||d | _nt | _d S )N   )Framer=   r<   r?   r>   r   r9   )r   tbZ
max_framesdepthr   r   r   r   Q   s    
zTraceback.__init__N)r   r   r   r   rA   DEFAULT_MAX_FRAMESr   r   r   r   r   r   N   s   c                   @   sJ   e Zd ZdZdZdZdZdZdZdddZ	dd Z
dd	 Zed
d ZdS )r   zException wrapping an exception and its traceback.

    :param exc_info: The exception info tuple as returned by
        :func:`sys.exc_info`.

    NFc                 C   sN   |p
t  \| _| _}z.t|| _dt| j| j|| _|| _	W 5 ~X d S )Nr;   )
sysexc_infotype	exceptionr   rB   join	tracebackformat_exceptioninternal)r   rF   rL   rB   r   r   r   r   t   s    

zExceptionInfo.__init__c                 C   s   | j S N)rJ   r5   r   r   r   __str__   s    zExceptionInfo.__str__c                 C   s   d| j j| jf S )Nz<%s: %r>)	__class__r   rH   r5   r   r   r   __repr__   s    zExceptionInfo.__repr__c                 C   s   | j | j| jfS rM   )rG   rH   rB   r5   r   r   r   rF      s    zExceptionInfo.exc_info)NF)r   r   r   __doc__rG   rH   rB   rJ   rL   r   rN   rP   propertyrF   r   r   r   r   r   ]   s   
)
__future__r   rE   rJ   __all__getrecursionlimitrD   objectr   r   r0   r9   r   r   r   r   r   r   <module>   s   