B
    u9aO                 @   s  d dl Z dddddddd	gZd;d
dZd<ddZdd Zdd ZeZdd ZeZdd Z	de
dd dfddZe
d dfddZdd Zdd ZG dd deZdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd=d*dZd>d+dZG d,d- d-eZG d.d	 d	eZd/d0 Zy0d d1lmZmZm Z mZmZm!Z! eZ"e Z#d2Z$W n2 e%k
rj   g Zd3Z"i Z#d)a&d4d5 Z!dZ$Y nX ee j' e$se(e d6sed3e)d7d)d8 ed9e)d)d: ed9e*d)d: ed9e+d)d: ed9e,d)d: [$dS )?    Nwarnwarn_explicitshowwarningformatwarningfilterwarningssimplefilterresetwarningscatch_warningsc             C   s   t | |||||}t| d S )N)WarningMessage_showwarnmsg_impl)messagecategoryfilenamelinenofilelinemsg r   /usr/lib/python3.7/warnings.pyr   
   s    c             C   s   t | |||d |}t|S )N)r
   _formatwarnmsg_impl)r   r   r   r   r   r   r   r   r   r      s    c             C   sP   | j }|d kr tj}|d kr d S t| }y|| W n tk
rJ   Y nX d S )N)r   sysstderr_formatwarnmsgwriteOSError)r   r   textr   r   r   r      s    r   c       	   	   C   s  | j j}| j d| j d| d| j d}| jd krpydd l}|| j| j}W qv tk
rl   d }d }Y qvX n| j}|r|	 }|d| 7 }| j
d k	rydd l}W n tk
r   d}d }Y n4X | }y|| j
}W n tk
r   d }Y nX |d k	r|d7 }x|D ]t}|d|j|jf 7 }y$|d k	rD||j|j}nd }W n tk
rd   d }Y nX |r|	 }|d	| 7 }qW n|s|| d
7 }|S )N:z: 
r   z  %s
Tz-Object allocated at (most recent call last):
z  File "%s", lineno %s
z    %s
z<: Enable tracemalloc to get the object allocation traceback
)r   __name__r   r   r   r   	linecachegetline	Exceptionstripsourcetracemalloc
is_tracingget_object_traceback)	r   r   sr   r   r$   tracingtbframer   r   r   r   #   sR    "






r   c             C   sd   yt }W n tk
r   Y n<X |tk	rXt|s6td|| j| j| j| j| j	| j
 d S t|  d S )Nz:warnings.showwarning() must be set to a function or method)r   	NameError_showwarning_origcallable	TypeErrorr   r   r   r   r   r   r   )r   swr   r   r   _showwarnmsg`   s    r0   c             C   sH   yt }W n tk
r   Y n$X |tk	r@|| j| j| j| j| jS t| S )N)	r   r+   _formatwarning_origr   r   r   r   r   r   )r   fwr   r   r   r   u   s    
r    Fc             C   sT   |s|rdd l }|r$|||j}nd }|r8||}nd }t| |||||d d S )Nr   )append)recompileI_add_filter)actionr   r   moduler   r4   r5   r   r   r   r      s    c             C   s   t | d |d ||d d S )N)r4   )r8   )r9   r   r   r4   r   r   r   r      s    c             G   sR   | s6yt | W n tk
r&   Y nX t d| n|t krHt | t  d S )Nr   )filtersremove
ValueErrorinsertr4   _filters_mutated)r4   itemr   r   r   r8      s    
r8   c               C   s   g t d d < t  d S )N)r;   r?   r   r   r   r   r      s    c               @   s   e Zd ZdS )_OptionErrorN)r   
__module____qualname__r   r   r   r   rA      s   rA   c             C   sR   xL| D ]D}yt | W q tk
rH } ztd|tjd W d d }~X Y qX qW d S )NzInvalid -W option ignored:)r   )
_setoptionrA   printr   r   )argsargr   r   r   r   _processoptions   s
    
rH   c          	   C   s   dd l }| d}t|dkr,td| f xt|dk rF|d q.W dd |D \}}}}}t|}||}t|}||}|r|d }|ryt|}|dk rt	W q t	t
fk
r   td	|f d Y qX nd}t||||| d S )
Nr   r      ztoo many fields (max 5): %rr3   c             S   s   g | ]}|  qS r   )r"   ).0r'   r   r   r   
<listcomp>   s   z_setoption.<locals>.<listcomp>$zinvalid lineno %r)r5   splitlenrA   r4   
_getactionescape_getcategoryintr=   OverflowErrorr   )rG   r5   partsr9   r   r   r:   r   r   r   r   rD      s.    


rD   c             C   sB   | sdS | dkrdS xdD ]}| | r|S qW td| f d S )Ndefaultallalways)rU   rW   ignorer:   onceerrorzinvalid action: %r)
startswithrA   )r9   ar   r   r   rO      s     

rO   c             C   s   dd l }| stS |d| rPyt| }W q tk
rL   td| f d Y qX n| d}| d | }| |d d  }yt|d d |g}W n$ tk
r   td|f d Y nX yt	||}W n$ t
k
r   td| f d Y nX t|tstd| f |S )Nr   z^[a-zA-Z0-9_]+$zunknown warning category: %r.   zinvalid module name: %rzinvalid warning category: %r)r5   Warningmatchevalr+   rA   rfind
__import__ImportErrorgetattrAttributeError
issubclass)r   r5   catir:   klassmr   r   r   rQ      s,    

rQ   c             C   s   | j j}d|kod|kS )N	importlib
_bootstrap)f_codeco_filename)r*   r   r   r   r   _is_internal_frame  s    rp   c             C   s&   | j } x| d k	r t| r | j } qW | S )N)f_backrp   )r*   r   r   r   _next_external_frame  s    
rr   r^   c          	   C   sv  t | tr| j}|d krt}t |tr0t|tsDtdt|jyZ|dks\t	t
drht
|}n4t
d}x(t|d D ]}t|}|d krtqW W n tk
r   t
j}d}Y nX |j}|j}d|kr|d }nd}|d}	|	r|	 }
|
drP|	d d }	n>|dkrFyt
jd	 }	W n tk
rD   d}	Y nX |	sP|}	|d
i }t| ||	||||| d S )Nz/category must be a Warning subclass, not '{:s}'r^   r   z<string>__file__z.pyc__main__r   Z__warningregistry__)
isinstancer_   	__class__UserWarningtyperg   r.   formatr   rp   r   	_getframerangerr   r=   __dict__	f_globalsf_linenogetlowerendswithargvrf   
setdefaultr   )r   r   
stacklevelr#   r*   xglobalsr   r:   r   Zfnlregistryr   r   r   r   #  sL    






c             C   s  t |}|d kr8|pd}|dd   dkr8|d d }|d krDi }|ddtkrd|  t|d< t| tr~t| }| j}n| }|| } |||f}	||	rd S x^t	D ]R}
|
\}}}}}|d ks|
|rt||r|d ks|
|r|dks||krP qW t}|dkrd S dd l}||| |dkr2| |dkrfd	||	< ||f}t|r\d S d	t|< nf|d
krrnZ|dkrd	||	< ||df}||rd S d	||< n$|dkrd	||	< ntd||
f t| ||||}t| d S )Nz	<unknown>z.pyversionr   rX   rZ   rY   r^   rW   r:   rU   z1Unrecognized action (%r) in warnings.filters:
 %s)rR   r   r   _filters_versionclearrv   r_   strrw   r;   r`   rg   defaultactionr   getlinesonceregistryRuntimeErrorr
   r0   )r   r   r   r   r:   r   module_globalsr#   r   keyr@   r9   r   rh   modZlnr   ZoncekeyZaltkeyr   r   r   r   W  sj    














c               @   s"   e Zd ZdZdddZdd ZdS )r
   )r   r   r   r   r   r   r#   Nc             C   s>   || _ || _|| _|| _|| _|| _|| _|r4|jnd | _d S )N)	r   r   r   r   r   r   r#   r   _category_name)selfr   r   r   r   r   r   r#   r   r   r   __init__  s    zWarningMessage.__init__c             C   s   d| j | j| j| j| jf S )NzD{message : %r, category : %r, filename : %r, lineno : %s, line : %r})r   r   r   r   r   )r   r   r   r   __str__  s    zWarningMessage.__str__)NNN)r   rB   rC   _WARNING_DETAILSr   r   r   r   r   r   r
     s    

r
   c               @   s4   e Zd ZdddddZdd Zdd	 Zd
d ZdS )r	   FN)recordr:   c            C   s(   || _ |d krtjd n|| _d| _d S )NwarningsF)_recordr   modules_module_entered)r   r   r:   r   r   r   r     s    zcatch_warnings.__init__c             C   sP   g }| j r|d | jtjd k	r4|d| j  t| j}d|d|f S )Nzrecord=Truer   z	module=%rz%s(%s)z, )r   r4   r   r   r   ry   r   join)r   rF   namer   r   r   __repr__  s    

zcatch_warnings.__repr__c             C   s~   | j rtd|  d| _ | jj| _| jd d  | j_| j  | jj| _| jj| _| j	rvg }|j
| j_| jj| j_|S d S d S )NzCannot enter %r twiceT)r   r   r   r;   _filtersr?   r   _showwarningr   r   r4   r,   )r   logr   r   r   	__enter__  s    




zcatch_warnings.__enter__c             G   s>   | j std|  | j| j_| j  | j| j_| j| j_d S )Nz%Cannot exit %r without entering first)	r   r   r   r   r;   r?   r   r   r   )r   exc_infor   r   r   __exit__  s    


zcatch_warnings.__exit__)r   rB   rC   r   r   r   r   r   r   r   r   r	     s   	c                sz   d j  dg} jd k	rVdd ldd l} fdd}|d ||t| 7 }d|d}t	|t
d	 d
 d S )Nzcoroutine 'z' was never awaited
r   c              3   s8   x2t  jD ]$\} }}| |}| |||fV  qW d S )N)reversed	cr_originr    )r   r   funcnamer   )coror   r   r   extract  s    z*_warn_unawaited_coroutine.<locals>.extractz-Coroutine created at (most recent call last)
r3   r      )r   r   r#   )rC   r   r   	tracebackr4   format_listlistr   rstripr   RuntimeWarning)r   	msg_linesr   r   r   r   )r   r   r   _warn_unawaited_coroutine  s    

r   )r;   _defaultaction_onceregistryr   r   r?   TrU   c               C   s   t d7 a d S )Nr^   )r   r   r   r   r   r?   "  s    r?   Zgettotalrefcountru   )r   r:   r4   rX   )r   r4   )NN)N)Nr^   N)NNNN)-r   __all__r   r   r   r   r,   r0   r1   r   r_   r   r   r8   r   r!   rA   rH   rD   rO   rQ   rp   rr   r   r   objectr
   r	   r   	_warningsr;   r   r   r?   r   r   Z_warnings_defaultsrd   r   warnoptionshasattrDeprecationWarningPendingDeprecationWarningImportWarningResourceWarningr   r   r   r   <module>   sf   

;"
	
5 
EC 


