
    sg                         d dl mZmZ d dlZd dlmZ d dlmZ d dlm	Z	 dgZ
 G d dej                  j                  j                        Z G d	 de      Zy)
    )CallableListN)_FusedModule)Tracer)ScopeQuantizationTracerc                   T     e Zd Zdedej
                  j                  def fdZ xZ	S )ScopeContextManagerscopecurrent_modulecurrent_module_pathc           	      L    t         |   |t        |t        |                   y )N)super__init__r   type)selfr   r   r   	__class__s       R/var/www/html/venv/lib/python3.12/site-packages/torch/ao/quantization/fx/tracer.pyr   zScopeContextManager.__init__   s!     	&94;O PQ    )
__name__
__module____qualname__r   torchnnModulestrr   __classcell__r   s   @r   r
   r
      s2    RR,1HHOORRUR Rr   r
   c                   p     e Zd Zdee   dee   f fdZdej                  j                  dede
fdZ xZS )r   skipped_module_namesskipped_module_classesc                 n    t         |           || _        || _        t	        dd       | _        d| _        y )N T)r   r   r    r!   r   r   record_stack_traces)r   r    r!   r   s      r   r   zQuantizationTracer.__init__   s7     	$8!&<# 2t_
#' r   mmodule_qualified_namereturnc                 6   |j                   j                  d      xs |j                   j                  d      xr% t        |t        j                  j
                         xs9 || j                  v xs) t        |      | j                  v xs t        |t              S )Nztorch.nnztorch.ao.nn)
r   
startswith
isinstancer   r   
Sequentialr    r   r!   r   )r   r%   r&   s      r   is_leaf_modulez!QuantizationTracer.is_leaf_module$   s     LL++J7 >||..}=; #1ehh&9&9::	+ %(A(AA	+ Aw$555	+ !\*	
r   )r   r   r   r   r   r   r   r   r   r   boolr,   r   r   s   @r   r   r      sC    ($(I(GKH~(
 
 
PT 
r   )typingr   r   r   torch.ao.nn.intrinsicr   torch.fx._symbolic_tracer   torch.fx.proxyr   __all__fxproxyr
   r    r   r   <module>r6      sH    !  . +   
R%((..<< R
 
r   