o
    j9:jÉ  ã                   @   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__© úf/home/nk/hobo-godmode/plappi-mvp/.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                    s4   t ƒ  ¡  || _|| _tdd ƒ| _tjjj	 | _
d S )NÚ )r   r   r   r   r   r   r   ÚfxÚconfigÚdo_not_emit_stack_tracesÚ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    ÿÿ")Úcollections.abcr   r   Útorch.ao.nn.intrinsicr   Útorch.fx._symbolic_tracer   Útorch.fx.proxyr   Ú__all__r   Úproxyr   r   r   r   r   r   Ú<module>   s    ÿ