o
    d۷i                     @   sN   d dl mZ d dlmZ d dlmZ ddgZG dd deZG dd dZdS )	    )Enum)delete_offload_parameter)ModuleQuantizationMetadataKVCacheScaleTypec                   @   s   e Zd ZdZdZdS )r   k_scalev_scaleN)__name__
__module____qualname__KEYVALUE r   r   d/home/ubuntu/vllm_env/lib/python3.10/site-packages/compressed_tensors/quantization/quant_metadata.pyr      s    c                   @   s.   e Zd ZdZedd ZedefddZdS )r   z>
    Container class for metadata related to quantization
    c                   C   s   t jjt jjgdd dD  S )z
        All quantization parameter names that might be registered
        onto a module during lifecycle (excluding serialized parameters)
        c                 S   s$   g | ]}d D ]	}| d| qqS ))global_scalescale
zero_pointg_idx_r   ).0	base_namesuffixr   r   r   
<listcomp>(   s    z9QuantizationMetadata.all_qparam_names.<locals>.<listcomp>)inputweightoutput)r   r   valuer   r   r   r   r   all_qparam_names"   s   z%QuantizationMetadata.all_qparam_namesmodulec                 C   s&   |   D ]}t||rt|| qdS )z
        Remove all parameters related to quantization that might have
        been registered onto a module previously in lifecycle (excluding
        serialized parameters)

        :param module: Module to clear
        N)r   hasattrr   )clsr   keyr   r   r   clear_all_qparams3   s
   	

z&QuantizationMetadata.clear_all_qparamsN)	r	   r
   r   __doc__staticmethodr   classmethodr   r"   r   r   r   r   r      s    
N)	enumr   compressed_tensors.utilsr   torch.nnr   __all__r   r   r   r   r   r   <module>   s   