o
    ‡ZŽh˜  ã                   @   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__© úN/var/www/auris/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   Z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   Z
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   Ztorch.ao.nn.intrinsicr   Ztorch.fx._symbolic_tracer   Ztorch.fx.proxyr   Ú__all__ZfxÚproxyr   r   r   r   r   r   Ú<module>   s    ÿ