
    *`i#                         d dl mZmZ d dlmZmZ d dlmZ d dlm	Z	 g dZ
e G d de                      Ze G d d	e                      Z G d
 dee	          ZdS )    )Enumunique)ListOptional)RegistryMixin)	BaseModel)SparsityCompressionConfigCompressionFormatSparsityStructurec                   :    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdS )r
   densezsparse-bitmaskzsparse-24-bitmaskzint-quantizedzfloat-quantizedznaive-quantizedzpack-quantizedz	marlin-24zmixed-precisionznvfp4-pack-quantizedzmxfp4-pack-quantizedN)__name__
__module____qualname__r   sparse_bitmasksparse_24_bitmaskint_quantizedfloat_quantizednaive_quantizedpack_quantized	marlin_24mixed_precisionnvfp4_pack_quantizedmxfp4_pack_quantized     r/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/compressed_tensors/config/base.pyr
   r
      sJ        E%N+#M'O'O%NI'O11r   r
   c                   :    e Zd ZdZdZdZdZd Zed             Z	dS )r   as  
    An enumeration to represent different sparsity structures.

    Attributes
    ----------
    TWO_FOUR : str
        Represents a 2:4 sparsity structure.
    ZERO_ZERO : str
        Represents a 0:0 sparsity structure.
    UNSTRUCTURED : str
        Represents an unstructured sparsity structure.

    Examples
    --------
    >>> SparsityStructure('2:4')
    <SparsityStructure.TWO_FOUR: '2:4'>

    >>> SparsityStructure('unstructured')
    <SparsityStructure.UNSTRUCTURED: 'unstructured'>

    >>> SparsityStructure('2:4') == SparsityStructure.TWO_FOUR
    True

    >>> SparsityStructure('UNSTRUCTURED') == SparsityStructure.UNSTRUCTURED
    True

    >>> SparsityStructure(None) == SparsityStructure.UNSTRUCTURED
    True

    >>> SparsityStructure('invalid')
    Traceback (most recent call last):
        ...
    ValueError: invalid is not a valid SparsityStructure
    z2:4unstructuredz0:0c                 t    t                               |           }||                                n||_        |S )N)object__new__lower_value_)clsvalueobjs      r   r"   zSparsityStructure.__new__Q   s0    nnS!!','8ekkmmme
r   c                     || j         S | D ]#}|j        |                                k    r|c S $t          | d| j                   )Nz is not a valid )UNSTRUCTUREDr&   r#   
ValueErrorr   )r%   r&   members      r   	_missing_zSparsityStructure._missing_V   sb     =## 	 	F|u{{}},, -EAA3<AABBBr   N)
r   r   r   __doc__TWO_FOURr)   	ZERO_ZEROr"   classmethodr,   r   r   r   r   r   (   s_        ! !F H!LI  
 C C [C C Cr   r   c                       e Zd ZU dZeed<   dZeee                  ed<   dZ	eee                  ed<   dZ
ee         ed<   dZee         ed	<   dS )
r	   a  
    Base data class for storing sparsity compression parameters

    :param format: name of compression format
    :param targets: List of layer names or layer types that aren't sparse and should
        be ignored during compression. By default, assume all layers are targeted
    :param ignore: List of layer names (unique) to ignore from targets. Defaults to None
    :param global_sparsity: average sparsity of the entire model
    :param sparsity_structure: structure of the sparsity, such as
    "unstructured", "2:4", "8:16" etc
    formatNtargetsignoreg        global_sparsityr   sparsity_structure)r   r   r   r-   str__annotations__r3   r   r   r4   r5   floatr6   r   r   r   r	   r	   a   s         
 
 KKK#'GXd3i '''"&FHT#Y&&&'*OXe_***(666666r   r	   N)enumr   r   typingr   r   compressed_tensors.registryr   pydanticr   __all__r
   r   r	   r   r   r   <module>r?      s           ! ! ! ! ! ! ! ! 5 5 5 5 5 5       R
Q
Q 2 2 2 2 2 2 2 2 5C 5C 5C 5C 5C 5C 5C 5Cp7 7 7 7 7y 7 7 7 7 7r   