B
    fd                 @   sx   d dl 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
 ddlmZ G d	d
 d
eZG dd deZdS )    N)datetime)import_module)TypeUnion)raw)TLObject   )
exceptionsc                   s`   e Zd ZdZdZdZdZdeee	e
jjf e	eed fddZedee dd	d
Z  ZS )RPCErrorNz{value}F)valuerpc_name
is_unknown	is_signedc                s   t  d|rdnd| j| jp"| j| jj|d|r>d| dnd yt|| _W n t	t
fk
rr   || _Y nX |rtddd	d
&}|t  d| d| d W d Q R X d S )Nz Telegram says: [{}{} {}] - {} {}- )r   z(caused by "z")zunknown_errors.txtazutf-8)encoding	
)super__init__formatCODEIDNAMEMESSAGEintr   
ValueError	TypeErroropenwriter   now)selfr   r   r   r   f)	__class__ =/tmp/pip-unpacked-wheel-rcokkf2l/pyrogram/errors/rpc_error.pyr   #   s    


zRPCError.__init__zraw.types.RpcError)	rpc_errorrpc_typec             C   s   | j }|dk }| j}d|jddd  }|r8| }|tkr^td| d| d|d|dtd	d
|}|t| krt	t
dt| d d| d| d|d|dtd|}|d k	r|dn|}t	t
dt| | ||d|dd S )Nr   .r   [ ]T)r   r   r   r   z_\d+Z_Xzpyrogram.errors_z_(\d+)F)
error_codeerror_messagejoinZQUALNAMEsplitr	   UnknownErrorresubgetattrr   searchgroup)r'   r(   r.   r   r/   r   Zerror_idr   r%   r%   r&   raise_it;   s<    zRPCError.raise_it)NNFF)__name__
__module____qualname__r   r   r   r   r   r   strr   typesZRpcErrorboolr   staticmethodr   r   r8   __classcell__r%   r%   )r$   r&   r
      s      (r
   c               @   s   e Zd ZdZdZdS )r2   i  zUnknown errorN)r9   r:   r;   r   r   r%   r%   r%   r&   r2   d   s   r2   )r3   r   	importlibr   typingr   r   Zpyrogramr   Zpyrogram.raw.corer   Zexceptions.allr	   	Exceptionr
   r2   r%   r%   r%   r&   <module>   s   G