o
    i                     @   sh   d dl 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 dej
jjZG d	d deZdS )
    )CallableN)_FusedModule)Tracer)ScopeQuantizationTracerc                       s.   e Zd Zdedejjdef fddZ  Z	S )ScopeContextManagerscopecurrent_modulecurrent_module_pathc                    s   t  |t|t| d S )N)super__init__r   type)selfr   r	   r
   	__class__ \/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/torch/ao/quantization/fx/tracer.pyr      s   zScopeContextManager.__init__)
__name__
__module____qualname__r   torchnnModulestrr   __classcell__r   r   r   r   r      s    r   c                       sH   e Zd Zdee dee f fddZdejj	dede
fdd	Z  ZS )
r   skipped_module_namesskipped_module_classesc                    s,   t    || _|| _tdd | _d| _d S )N T)r   r   r   r   r   r   record_stack_traces)r   r   r   r   r   r   r      s
   

zQuantizationTracer.__init__mmodule_qualified_namereturnc                 C   sJ   |j dp|j dot|tjj p$|| jv p$t|| jv p$t|t	S )Nztorch.nnztorch.ao.nn)
r   
startswith
isinstancer   r   
Sequentialr   r   r   r   )r   r   r    r   r   r   is_leaf_module$   s   
	z!QuantizationTracer.is_leaf_module)r   r   r   listr   r   r   r   r   r   boolr%   r   r   r   r   r   r      s    ")typingr   r   torch.ao.nn.intrinsicr   torch.fx._symbolic_tracer   torch.fx.proxyr   __all__fxproxyr   r   r   r   r   r   <module>   s    