ó
    >:j  ã                   ó´   • S SK Jr  S SKrS SKJr  S SKJr  SSKJr  SSK	J
r
  \" 5       (       a   " S S	\
5      rS
\R                  R                  S\S\4S jrg)é    )ÚOptionalN)Úis_inc_available)ÚBaseTunerLayeré   )Ú
LoraConfig)ÚLinearc                   ó�   ^ • \ rS rSrS\R
                  R                  S\S\4U 4S jjr	SS\
S\\\      S	S4S
 jjrSS jrSrU =r$ )ÚIncLoraLinearé    Ú
base_layerÚadapter_nameÚconfigc                 ó,   >• [         TU ]  " X4SU0UD6  g )Nr   )ÚsuperÚ__init__)Úselfr   r   r   ÚkwargsÚ	__class__s        €ÚQ/home/mande/repo/quber/.venv/lib/python3.13/site-packages/peft/tuners/lora/inc.pyr   ÚIncLoraLinear.__init__!   s   ø€ ô ‰GÒ˜ZÑO¸fÐOÈÓOó    NÚ
safe_mergeÚadapter_namesÚreturnc                 ó   • [        S5      e)a  
Merge the active adapter weights into the base weights

Args:
    safe_merge (`bool`, *optional*):
        If True, the merge operation will be performed in a copy of the original weights and check for NaNs
        before merging the weights. This is useful if you want to check if the merge operation will produce
        NaNs. Defaults to `False`.
    adapter_names (`list[str]`, *optional*):
        The list of adapter names that should be merged. If None, all active adapters will be merged.
        Defaults to `None`.
z3Merging LoRA with INC layers is not yet implemented©ÚNotImplementedError)r   r   r   s      r   ÚmergeÚIncLoraLinear.merge*   s   € ô &Ð&[Ó\Ð\r   c                 ó   • [        S5      e)zG
This method unmerges all merged adapter layers from the base weights.
z5Unmerging LoRA from INC layers is not yet implementedr   )r   s    r   ÚunmergeÚIncLoraLinear.unmerge9   s   € ô &Ð&]Ó^Ð^r   © )FN)r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚtorchÚnnÚModuleÚstrr   r   Úboolr   Úlistr   r!   Ú__static_attributes__Ú__classcell__)r   s   @r   r
   r
       sd   ø† ð	PàŸ™Ÿ™ð	Pð ð	Pð ÷		Pñ	] Dð 	]ÀÈ$ÈsÉ)ÑATð 	]Ð`dõ 	]÷	_ò 	_r   r
   Útargetr   r   c                 óÀ   • S n[        U [        5      (       a  U R                  5       nOU n[        5       (       a$  SSKJn  [        XV5      (       a  [        X4SU0UD6nU$ )Nr   )ÚPatchedLinearr   )Ú
isinstancer   Úget_base_layerr   ÚIneural_compressor.torch.algorithms.fp8_quant._quant_common.helper_modulesr2   r
   )r0   r   r   r   Ú
new_moduleÚtarget_base_layerr2   s          r   Údispatch_incr8   @   s_   € Ø€Jä�&œ.×)Ñ)Ø"×1Ñ1Ó3Ñà"Ðä×Ñõ	
ô Ð'×7Ñ7Ü& vÑUÀFÐUÈfÑUˆJàÐr   )Útypingr   r(   Úpeft.import_utilsr   Úpeft.tuners.tuners_utilsr   r   r   Úlayerr   r
   r)   r*   r+   r8   r#   r   r   Ú<module>r=      sU   ðõ& ã å .Ý 3å Ý ñ ×Ñô_˜ô _ð@˜Ÿ™Ÿ™ð ¸ð ÀZõ r   