o
    >cL                     @   s  	 d dl Z g d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d0d1 Zzd d2lmZmZm Z mZmZm!Z! eZ"e Z#d3Z$W n e%y   g Zd4Z"i Z#d'a&d5d6 Z!dZ$Y nw ee j' e$se(e d7sed4e)d8d'd9 ed:e)d'd; ed:e*d'd; ed:e+d'd; ed:e,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   \/Volumes/Data/workspace/med-macos-weekly/build/ExtProjs/pyncpp/python/source/Lib/warnings.pyr   
   s   r   c                 C   s   	 t | |||d |}t|S r
   )r   _formatwarnmsg_impl)r   r   r   r   r   r   r   r   r   r      s   r   c                 C   sN   | j }|d u rtj}|d u rd S t| }z|| W d S  ty&   Y d S w r
   )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 u r6zdd l}|| j| j}W n ty5   d }d }Y nw | j}|rE|	 }|d| 7 }| j
d urzdd l}W n ty]   d}d }Y nw | }z|| j
}W n tyu   d }Y nw |d ur|d7 }|D ]5}|d|j|jf 7 }z|d ur||j|j}nd }W n ty   d }Y nw |r|	 }|d	| 7 }q|S |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tracemallocZ
is_tracingZget_object_traceback)	r   r   sr    r   r%   Ztracingtbframer   r   r   r   #   sb   "


r   c                 C   sd   	 zt }W n	 ty   Y nw |tur,t|st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   Zswr   r   r   _showwarnmsg`   s   r-   c                 C   sN   	 zt }W n ty   Y t| S w |tur#|| j| j| j| j| jS t| S r
   )	r   r)   _formatwarning_origr   r   r   r   r   r   )r   Zfwr   r   r   r   u   s   
r    Fc                 C   sV   	 |s|r	dd l }|r|||j}nd }|r||}nd }t| |||||d d S )Nr   append)recompileI_add_filter)actionr   r   moduler   r1   r2   r   r   r   r      s   r   c                 C   s   	 t | d |d ||d d S )Nr0   )r5   )r6   r   r   r1   r   r   r   r      s   r   c                 G   sP   | szt | W n	 ty   Y nw t d| n	|t vr#t | t  d S )Nr   )filtersremove
ValueErrorinsertr1   _filters_mutated)r1   itemr   r   r   r5      s   

r5   c                   C   s   	 g t d d < t  d S r
   )r8   r<   r   r   r   r   r      s   
r   c                   @   s   e Zd Z	 dS )_OptionErrorN)r   
__module____qualname__r   r   r   r   r>      s    r>   c                 C   sN   | D ]"}zt | W q ty$ } ztd|tjd W Y d }~qd }~ww d S )NzInvalid -W option ignored:)r   )
_setoptionr>   printr   r   )argsargr   r   r   r   _processoptions   s   rE   c              	   C   s   |  d}t|dkrtd| f t|dk r#|d t|dk sdd |D \}}}}}t|}t|}|s;|r?dd l}|rF||}|rO||d }|rozt|}|dk r\t	W n t	t
fyn   td	|f d w d}t||||| d S )
Nr      ztoo many fields (max 5): %rr/   c                 S   s   g | ]}|  qS r   )r#   ).0r&   r   r   r   
<listcomp>   s    z_setoption.<locals>.<listcomp>r   z\Zzinvalid lineno %r)splitlenr>   r1   
_getaction_getcategoryr2   Zescapeintr:   OverflowErrorr   )rD   Zpartsr6   r   r   r7   r   r2   r   r   r   rA      s8   


rA   c                 C   s>   | sdS | dkr
dS dD ]}| | r|  S qtd| f )Ndefaultallalways)rO   rQ   ignorer7   onceerrorzinvalid action: %r)
startswithr>   )r6   ar   r   r   rK      s   
rK   c                 C   s   | st S d| vrdd l}| }n"| d\}}}z
t|d d |g}W n ty0   td|f d w zt||}W n tyG   td| f d w t|t sTtd| f |S )N.r   zinvalid module name: %rzunknown warning category: %rzinvalid warning category: %r)	Warningbuiltins
rpartition
__import__ImportErrorr>   getattrAttributeError
issubclass)r   mZklassr7   _catr   r   r   rL      s&   
rL   c                 C   s   	 | j j}d|v od|v S )NZ	importlib
_bootstrap)f_codeco_filename)r(   r   r   r   r   _is_internal_frame  s   rf   c                 C   s2   	 | j } | d urt| r| j } | d urt| s| S r
   )f_backrf   )r(   r   r   r   _next_external_frame  s   rh      c              	   C   s  	 t | tr	| j}|d u rt}t |trt|ts#tdt|jz+|dks/t	t
dr5t
|}nt
d}t|d D ]}t|}|d u rLtq@W n ty^   t
j}d}d}Y nw |j}|jj}|j}d|v rr|d }	nd}	|di }
t| ||||	|
|| d S )Nz/category must be a Warning subclass, not '{:s}'ri   r   r   z<string>Z__warningregistry__)
isinstancerX   	__class__UserWarningtyper_   r,   formatr   rf   r   	_getframerangerh   r:   __dict__	f_globalsrd   re   f_lineno
setdefaultr   )r   r   
stacklevelr$   r(   xglobalsr   r   r7   registryr   r   r   r     sD   


r   c                 C   s  t |}|d u r|pd}|dd   dkr|d d }|d u r"i }|ddtkr2|  t|d< t| tr?t| }| j}n| }|| } |||f}	||	rQd S t	D ]*}
|
\}}}}}|d u se|
|r}t||r}|d u ss|
|r}|dks{||kr} nqSt}|dkrd S dd l}||| |dkr| |dkrd	||	< ||f}t|rd S d	t|< n/|d
krn*|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   rR   rT   rS   ri   rQ   r7   rO   z1Unrecognized action (%r) in warnings.filters:
 %s)rM   lowerget_filters_versionclearrj   rX   strrk   r8   Zmatchr_   defaultactionr    ZgetlinesonceregistryRuntimeErrorr   r-   )r   r   r   r   r7   rx   Zmodule_globalsr$   r   keyr=   r6   r   rb   modZlnr    ZoncekeyZaltkeyr   r   r   r   G  sr   








r   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   sD   || _ || _|| _|| _|| _|| _|| _|r|j| _d S d | _d S r
   )	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   r?   r@   Z_WARNING_DETAILSr   r   r   r   r   r   r     s    
r   c                   @   s6   e Zd Z	 dddddZdd Zdd	 Zd
d ZdS )r	   FN)recordr7   c                C   s*   	 || _ |d u rtjd n|| _d| _d S )NwarningsF)_recordr   modules_module_entered)r   r   r7   r   r   r   r     s   
zcatch_warnings.__init__c                 C   sP   g }| j r
|d | jtjd ur|d| j  t| j}d|d|f S )Nzrecord=Truer   z	module=%rz%s(%s)z, )r   r1   r   r   r   rm   r   join)r   rC   namer   r   r   __repr__  s   

zcatch_warnings.__repr__c                 C   sz   | j r	td|  d| _ | jj| _| jd d  | j_| j  | jj| _| jj| _| j	r;g }|j
| j_| jj| j_|S d S )NzCannot enter %r twiceT)r   r   r   r8   _filtersr<   r   _showwarningr   r   r1   r*   )r   Z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   r8   r<   r   r   r   )r   exc_infor   r   r   __exit__  s   


zcatch_warnings.__exit__)r   r?   r@   r   r   r   r   r   r   r   r   r	     s    	r	   c                    sz   d j  dg} jd ur+d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   s6    t  jD ]\} }}| |}| |||fV  qd S r
   )reversed	cr_originr!   )r   r   Zfuncnamer   coror    r   r   extract  s
   z*_warn_unawaited_coroutine.<locals>.extractz-Coroutine created at (most recent call last)
r/   r      )r   ru   r$   )r@   r   r    	tracebackr1   Zformat_listlistr   rstripr   RuntimeWarning)r   Z	msg_linesr   r   r   r   r   r   _warn_unawaited_coroutine  s   

r   )r8   _defaultaction_onceregistryr   r   r<   TrO   c                   C   s   t d7 a d S )Nri   )r}   r   r   r   r   r<     s   r<   Zgettotalrefcount__main__)r   r7   r1   rR   )r   r1   )NNr
   )Nri   N)NNNN)-r   __all__r   r   r   r   r*   r-   r.   r   rX   r   r   r5   r   r"   r>   rE   rA   rK   rL   rf   rh   r   r   objectr   r	   r   	_warningsr8   r   r   r<   r   r   Z_warnings_defaultsr\   r}   warnoptionshasattrDeprecationWarningPendingDeprecationWarningImportWarningResourceWarningr   r   r   r   <module>   sn    

;
#

	)
GC 

