ó
    >:j%  ã                   ó$  • S SK Jr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KJr   " S	 S
\R                  R                  \5      rS\R                  R                  S\S\S\S\\R                  R                     4
S jrg)é    )ÚAnyÚOptionalN)Úis_eetq_available)Ú	LoraLayer)ÚBaseTunerLayeré   )Ú
LoraConfig)Ú
EetqLinearc                   ó¦   ^ • \ rS rSr  SS\S\S\4U 4S jjjrS\R                  4S jr	SS	\
S
\\\      SS4S jjrSS jrS\4U 4S jjrSrU =r$ )ÚEetqLoraLinearé   ÚconfigÚrÚ
lora_alphac                 óð   >• UR                   (       a"  [        U R                  R                   S35      e[        TU ]  5         [        R
                  " X5        Xl        X l        U R                  UUUUS9  g )Nz2 does not support DoRA yet, please set it to False)r   r   )
Úuse_doraÚ
ValueErrorÚ	__class__Ú__name__ÚsuperÚ__init__r   Úquant_linear_moduleÚ_active_adapterÚupdate_layer)ÚselfÚ
base_layerÚadapter_namer   r   r   Úkwargsr   s          €ÚR/home/mande/repo/quber/.venv/lib/python3.13/site-packages/peft/tuners/lora/eetq.pyr   ÚEetqLoraLinear.__init__   sp   ø€ ð ��Ü  D§N¡N×$;Ñ$;Ð#<Ð<nÐ!oÓpÐpä‰GÑÔÜ×Ò˜tÔ0ð (2Ô$à#/Ô Ø×ÑØØØ%Øð	 ò ó    Úxc                 ó6  • U R                  U5      nU R                  (       a  U$ U R                   Hä  nX0R                  R	                  5       ;  a  M"  U R                  U   nU R
                  U   nU R                  U   nU R                  U   n[        R                  " 5       (       + nU(       a1  UR                  n	U R                  XR                  R                  5      nU" U" U" U5      5      5      n
U(       a  U
R                  W	5      n
X§-  n
X*-   nMæ     U$ )N)r   Údisable_adaptersÚactive_adaptersÚlora_AÚkeysÚlora_BÚlora_dropoutÚscalingÚtorchÚis_autocast_enabledÚdtypeÚ_cast_input_dtypeÚweightÚto)r   r"   ÚresultÚactive_adapterr&   r(   Údropoutr*   Úrequires_conversionÚexpected_dtypeÚoutputs              r   ÚforwardÚEetqLoraLinear.forward8   sò   € Ø×-Ñ-¨aÓ0ˆFà×$×$Ø�à"&×"6Ô"6�Ø!¯©×)9Ñ)9Ó);Ó;ÙØŸ™ ^Ñ4�ØŸ™ ^Ñ4�Ø×+Ñ+¨NÑ;�ØŸ,™, ~Ñ6�ä*/×*CÒ*CÓ*EÔ&EÐ#Þ&Ø%+§\¡\�NØ×.Ñ.¨q·-±-×2EÑ2EÓF�Aá¡¡w¨q£zÓ 2Ó3�Þ&Ø#ŸY™Y ~Ó6�FØÑ)�Ø™’ñ# #7ð$ ˆMr!   NÚ
safe_mergeÚadapter_namesÚreturnc                 ó   • [        S5      e)Nz5Merging LoRA layers is not supported for Eetq layers.©ÚAttributeError)r   r9   r:   s      r   ÚmergeÚEetqLoraLinear.mergeR   s   € Ü Ð!XÓYÐYr!   c                 ó   • [        S5      e)Nz7Unmerging LoRA layers is not supported for Eetq layers.r=   )r   s    r   ÚunmergeÚEetqLoraLinear.unmergeU   s   € Ü Ð!ZÓ[Ð[r!   c                 ó*   >• [         TU ]  5       nSU-   $ )Nzlora.)r   Ú__repr__)r   Úrepr   s     €r   rE   ÚEetqLoraLinear.__repr__X   s   ø€ Ü‘'Ñ"Ó$ˆCØ˜S‘=Ð r!   )r   r   )r   r   )FN)r;   N)r   Ú
__module__Ú__qualname__Ú__firstlineno__r	   Úintr   r+   ÚTensorr7   Úboolr   ÚlistÚstrr?   rB   rE   Ú__static_attributes__Ú__classcell__)r   s   @r   r   r      s‚   ø† ð Øñ	ð ð		ð
 ð	ð ÷	ð 	ð6	˜UŸ\™\ô 	ñ4	Z Dð 	ZÀÈ$ÈsÉ)ÑATð 	ZÐ`dõ 	Zô	\ð	!˜c÷ 	!õ 	!r!   r   Útargetr   r   r   r;   c                 ó$  • S n[        U [        5      (       a  U R                  5       nOU n[        5       (       aV  [        U[        5      (       aA  [        X4SU0UD6nUR                  U l        [        U S5      (       a  UR                  U l        U$ )Nr   Úbias)	Ú
isinstancer   Úget_base_layerr   r
   r   r/   ÚhasattrrT   )rR   r   r   r   Ú
new_moduleÚtarget_base_layers         r   Údispatch_eetqrZ   ]   s‚   € ð €Jä�&œ.×)Ñ)Ø"×1Ñ1Ó3Ñà"Ðä×ÑœzÐ*;¼Z×HÑHÜ# FÑRÀÐRÈ6ÑRˆ
Ø)×0Ñ0ˆŒä�6˜6×"Ñ"Ø+×0Ñ0ˆFŒKàÐr!   )Útypingr   r   r+   Úpeft.import_utilsr   Úpeft.tuners.lora.layerr   Úpeft.tuners.tuners_utilsr   r   r	   Úeetqr
   ÚnnÚModuler   rO   rZ   © r!   r   Ú<module>rc      s†   ð÷ !ã å /Ý ,Ý 3å ñ ×ÑÝô>!˜Ÿ™Ÿ™¨)ô >!ðBØ�H‰H�O‰Oðàðð ðð ð	ð
 ˆe�h‰h�o‰oÑõr!   