
    Ph                        d dl Z d dlmZ d dlmZmZmZ d dlZd dlZd dl	Z	d dl
mZ d dlmZ d dlZd dlmZmZ e j$                  de j&                  de j(                  d	e j*                  d
e j,                  de j.                  de j0                  de j2                  de j4                  de j6                  de j8                  de j:                  de j<                  diZ G d de j@                        Z! G d de      Z" G d de!      Z# G d dejH                        Z%de&de'fdZ( G d d ejR                        Z*ejV                  d$d!eee&      fd"       Z,ejV                  d%d#       Z-y)&    N)tree_map)IteratorListOptional)TorchDispatchMode)WeakTensorKeyDictionary)gather_tracebacksymbolize_tracebacksbf16f64f32f16c32c64c128i8i16i32i64b8u8c                        e Zd ZU ej                  ed<   dgZej                  Z	ej                  j                  Zed        Z fdZedd       Z xZS )LoggingTensorelemc                 X   t         j                  j                  | |j                         |j	                         |j                         |j                  |j                  |j                  |j                  dd            }|j                  r|j                         |_        |S ||_        |S )Nrequires_gradF)stridesstorage_offsetdtypelayoutdevicer   )torchTensor_make_wrapper_subclasssizestrider   r   r    r!   getr   detachr   )clsr   argskwargsrs        qC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/testing/_internal/logging_tensor.py__new__zLoggingTensor.__new__5   s    
 LL//KKM$2E2E2G**T[[;;fjj%.P 0 
 #$// 8<    c                 :    t         |   | j                         S )N)tensor_contents)super__repr__r   )self	__class__s    r-   r3   zLoggingTensor.__repr__E   s    w499+??r/   c                 2     fd} fd} j                         5  t        | |t        ||      i t        ||            }d d d        t        j                  d      j	                  |j
                   d|j                   ||       |S # 1 sw Y   KxY w)Nc                 8    t        |       r| j                  S | S N)
isinstancer   er)   s    r-   unwrapz0LoggingTensor.__torch_dispatch__.<locals>.unwrapJ   s    '3/1666Q6r/   c                 L    t        | t        j                        r |       S | S r8   )r9   r"   r#   r:   s    r-   wrapz.LoggingTensor.__torch_dispatch__.<locals>.wrapM   s    '5<<83q6?a?r/   r   .)contextr   logging	getLoggerinfo
__module____name__)r)   functypesr*   r+   r<   r>   rss   `       r-   __torch_dispatch__z LoggingTensor.__torch_dispatch__H   s    	7	@ [[]$hvt&< YQW@X YZB /*//4??2C1T]]O0TVZ\bdfg	 ]s   'BB N)rE   rD   __qualname__r"   r#   __annotations__	__slots__
contextlibnullcontextr@   _C_disabled_torch_function_impl__torch_function__staticmethodr.   r3   classmethodrI   __classcell__)r5   s   @r-   r   r   ,   s[    
,,I$$G?? @ 
 
r/   r   c                       e Zd ZddZy)LoggingTensorModeNc                     |i } ||i |}t        j                  d      j                  |j                   d|j                   |||       |S )Nr   r?   )rA   rB   rC   rD   rE   )r4   rF   rG   r*   r+   rH   s         r-   rI   z$LoggingTensorMode.__torch_dispatch__V   sV    >F4"6"/*//4??2C1T]]O0TVZ\bdfg	r/   rJ   )rE   rD   rL   rI   rK   r/   r-   rX   rX   U   s    r/   rX   c                   8    e Zd Zej                  j
                  Zy)LoggingTensorReentrantN)rE   rD   rL   r"   	overridesenable_reentrant_dispatchr@   rK   r/   r-   r[   r[   ]   s    oo77Gr/   r[   c            
       t    e Zd Zdee   dededee   ddf
dZdej                  de
fd	Zdd
ededefdZd Zy)LoggingTensorHandlerlog_listuse_shortid_for_all_tensors	with_typetracebacks_listreturnNc                     t         j                  j                  |        || _        || _        || _        t               | _        d| _        || _	        y )Nr   )
rA   Handler__init__r`   ra   rc   r   memonext_idrb   )r4   r`   ra   rb   rc   s        r-   rg   zLoggingTensorHandler.__init__b   sE     	  & +F(.+-	"r/   tc                     || j                   vr.| j                  | j                   |<   | xj                  dz  c_        | j                   |   S )N   )rh   ri   )r4   rj   s     r-   _shortidzLoggingTensorHandler._shortidm   s;    DII<<DIIaLLLALyy|r/   ac           	      F   | j                   rt        j                  nt        }t	        ||      rid}|rM| j
                  rAdt        |j                      ddj                  t        t        |j                               d}d| j                  |       | }|S t        |      S )N z: [, ]$)ra   r"   r#   r   r9   rb   _dtype_abbrsr   joinmapstrshaperm   repr)r4   rn   rb   cond_cls
maybe_typexs         r-   _fmtzLoggingTensorHandler._fmts   s    #'#C#C5<<a"JT^^!,qww"7!8$))CQWWDU:V9WWXY
DMM!$%j\2AH7Nr/   c                     dj                  t        j                   fd|j                  d   D         fd|j                  d   j	                         D                    }t        t        j                   j                  d      |j                  d         } j                  j                  | d	|j                   d
| d        j                  & j                  j                  |j                         y y )Nrr   c              3   \   K   | ]#  }t        t        j                  |             % y wr8   rx   r   r~   ).0rn   r4   s     r-   	<genexpr>z,LoggingTensorHandler.emit.<locals>.<genexpr>   s"     EnXdii+,ns   ),r   c           	   3   l   K   | ]+  \  }}| d t        t        j                  |              - yw)=Nr   )r   kvr4   s      r-   r   z,LoggingTensorHandler.emit.<locals>.<genexpr>   s4     YBX$!QA3aHTYY2345BXs   14rl   T)rb      z = ())rv   	itertoolschainr*   itemsr   	functoolspartialr~   r`   appendmsgrc   	traceback)r4   recordfmt_argsfmt_retss   `   r-   emitzLoggingTensorHandler.emit~   s    99OOEfkk!nEY&++a.BVBVBXY
 I--dii4H&++VW.YzVZZL(1EF+  ''(8(89 ,r/   )F)rE   rD   rL   r   rx   boolr   rg   r"   r#   intrm   objectr~   r   rK   r/   r-   r_   r_   a   sm    	# I	#DH	#	#.6tn	#AE	#%,, 3 	f 	 	# 	
:r/   r_   namevarc                 T    t        j                  d      j                  d| fi |       y )Nr   input)rA   rB   rC   )r   r   s     r-   	log_inputr      s#    o&++GdWb#Fr/   c                       e Zd ZddZd Zy)GatherTracebackc                 .    || _         || _        || _        y r8   pythonscriptcpp)r4   r   r   r   s       r-   rg   zGatherTraceback.__init__   s    r/   c                 f    t        | j                  | j                  | j                        |_        y)Nr   T)r	   r   r   r   r   )r4   r   s     r-   filterzGatherTraceback.filter   s%    +4;;t{{X\X`X`ar/   N)TTF)rE   rD   rL   rg   r   rK   r/   r-   r   r      s    
r/   r   rd   c              #   >  K   |xs |xs |}t        j                  d      }g }g }t        |d| |r|nd       }|j                  |       |j	                  t         j
                         d|_        |r|j                  t        |||             	 |r||f n| t        |      }	|j                          |j                  |	       |j                  |       y # t        |      }	|j                          |j                  |	       |j                  |       w xY ww)Nr   T)rb   ra   rc   Fr   )rA   rB   r_   
addHandlersetLevelINFO	propagate	addFilterr   r
   clearextendremoveHandler)
is_mode	python_tb	script_tbcpp_tbcollect_tracebackloggerr`   rc   handlersymbolized_tracebackss
             r-   capture_logsr      s    !8Y8&/FH!#O"$++<$	G g
OOGLL!F	)QWXY	&O++N 4_ E45W% !5_ E45W%s   BDC >D?DDc              #      K   t               5  t        d| ||      5 }| d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY ww)NT)rX   r   )r   r   r   logss       r-   %capture_logs_with_logging_tensor_moder      s:     		l4IvNRV
 O		NN		s)   A
>2>	A
;	>AA
)FFFF)FFF).r"   torch.utils._pytreer   typingr   r   r   rA   rO   r   torch.utils._python_dispatchr   torch.utils.weakr   r   torch._C._profilerr	   r
   bfloat16float64float32float16	complex32	complex64
complex128int8int16int32int64r   uint8ru   r#   r   rX   r[   rf   r_   rx   r   r   Filterr   contextmanagerr   r   rK   r/   r-   <module>r      sO    ( + +    : 4  E 
NNF	MM5	MM5	MM5	OOU	OOU	f	JJ	KK	KK	KK	JJ	KK>'ELL 'R) 8] 8':7?? ':RGC Gf Ggnn  &S[\`ad\eSf & &6  r/   