§
    ŒŸj†  ã                   ó†   — d Z ddlmZ ddlmZ ddlmZ ddlmZ d„ Z	d„ Z
d„ Zd	„ Zedd„¦   «         Z G d„ de¦  «        ZdS )a
  
This module is responsible for inferring *args and **kwargs for signatures.

This means for example in this case::

    def foo(a, b, c): ...

    def bar(*args):
        return foo(1, *args)

The signature here for bar should be `bar(b, c)` instead of bar(*args).
é    )Ú	Parameter)Úto_list)ÚParamNameWrapper)Úis_big_annoying_libraryc              #   óª  K  — ddl m} | j        }| j                             dd¦  «        }|                     ¦   «         }|j        d         j        }|j        d         j        }| 	                    ¦   «          
                    | j        ¦  «        D ]Ã}||j        cxk    r|k     r¯n Œ|j        }|j        dk    rš|j        d         d| j        z  k    r�|                     d¦  «        }	|	�j|                     |	¦  «        }
t!          | |
|¦  «        rDt#          |
|	¦  «        }|                     |j        |
|	j        d	         |	¬
¦  «        }|D ]}||fV — Œ	ŒÄd S )Nr   )ÚTreeArgumentsÚfuncdefÚlambdeféÿÿÿÿÚargumentÚ*Útraileré   )ÚcontextÚargument_noder   )Újedi.inference.argumentsr   Úparent_contextÚ	tree_nameÚsearch_ancestorÚget_root_nodeÚchildrenÚ	start_posÚend_posÚget_used_namesÚgetÚstring_nameÚparentÚtypeÚ
star_countÚcreate_contextÚ_goes_to_param_nameÚ_to_callablesÚcreate_cachedÚinference_state)Ú
param_namer   Úexecution_contextÚfunction_nodeÚmodule_nodeÚstartÚendÚnamer   r   r   ÚvaluesÚargsÚcs                 úe/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/inference/star_args.pyÚ_iter_nodes_for_paramr0      s–  è è € Ø6Ð6Ð6Ð6Ð6Ð6à"Ô1Ðð
 Ô(×8Ò8¸ÀIÑNÔN€MØ×-Ò-Ñ/Ô/€KØÔ" 2Ô&Ô0€EØ
Ô
  Ô
$Ô
,€CØ×*Ò*Ñ,Ô,×0Ò0°Ô1GÑHÔHð *ð *ˆØ�D”NÐ(Ð(Ò(Ð( SÒ(Ð(Ð(Ð(Ð(à”{ˆHØŒ} 
Ò*Ð*Ø Ô)¨!Ô,°°jÔ6KÑ0KÒKÐKØ"×2Ò2°9Ñ=Ô=�ØÐ&Ø/×>Ò>¸wÑGÔG�GÝ*¨:°wÀÑEÔEð 
*Ý!.¨w¸Ñ!@Ô!@˜à,×:Ò:Ø-Ô=Ø$+Ø*1Ô*:¸1Ô*=Ø$+ð	  ;ñ  ô  ˜ð "(ð *ð *˜AØ"# T '˜M˜M˜M˜Møð'*ð *ó    c                 óœ   ‡ — |j         dk    rdS ddlm}  |||¦  «                             ¦   «         }t	          ˆ fd„|D ¦   «         ¦  «        S )Nr+   Fr   )ÚTreeNameDefinitionc              3   óX   •K  — | ]$}‰j         |j         k    o‰j        |j        k    V — Œ%d S ©N)r   r   )Ú.0Úpr%   s     €r/   ú	<genexpr>z&_goes_to_param_name.<locals>.<genexpr>;   sT   øè è € ð ð àð Ô(¨AÔ,<Ò<ð 7ØÔ'¨1¬;Ò6ðð ð ð ð ð r1   )r   Újedi.inference.namesr3   ÚgotoÚany)r%   r   Úpotential_namer3   Úfounds   `    r/   r!   r!   6   s~   ø€ ØÔ˜fÒ$Ð$ØˆuØ7Ð7Ð7Ð7Ð7Ð7ØÐ˜w¨Ñ7Ô7×<Ò<Ñ>Ô>€EÝð ð ð ð àðñ ô ñ ô ð r1   c                 óÖ   — ddl m} |j        }|j        d         dk    }|                      |j        |         ¦  «        }|j        |dz   d …         D ]}||k    r n || ||¦  «        }Œ|S )Nr   )Úinfer_trailerÚawaitr   )Újedi.inference.syntax_treer?   r   r   Ú
infer_node)r   r   r?   Ú	atom_exprÚindexr,   Útrailer2s          r/   r"   r"   @   s‘   € Ø8Ð8Ð8Ð8Ð8Ð8à”€IØÔ˜qÔ! WÒ,€Eà×Ò 	Ô 2°5Ô 9Ñ:Ô:€FØÔ& u¨q¡y z zÔ2ð :ð :ˆØ�hÒÐØˆEØ�˜w¨°Ñ9Ô9ˆˆØ€Mr1   c              #   ó  K  — d}t          ¦   «         }|                      ¦   «         D ]"\  }}|€|dz  }Œ|                     |¦  «         Œ#|D ]@}|r|                     ¦   «         r|dz  }Œ|j        |v r|                     ¦   «         rŒ<|V — ŒAd S )Nr   r   )ÚsetÚunpackÚaddÚmaybe_positional_argumentr   Úmaybe_keyword_argument)Ú	argumentsÚparam_namesÚcountÚ	used_keysÚkeyÚ_r7   s          r/   Ú_remove_given_paramsrR   N   sÄ   è è € Ø€EÝ‘”€IØ×"Ò"Ñ$Ô$ð ð ‰ˆˆQØˆ;Ø�Q‰JˆEˆEà�MŠM˜#ÑÔÐÐàð ð ˆØð 	�Q×0Ò0Ñ2Ô2ð 	Ø�Q‰JˆEØØŒ=˜IÐ%Ð%¨!×*BÒ*BÑ*DÔ*DÐ%ØØˆˆˆˆðð r1   é   c              #   ón	  K  — | r$t          | d         j        ¦  «        r
| E d {V —† d S t          ¦   «         }g }g }g }g }g }d }d }	| D �]?}
|
                     ¦   «         }|t          j        k    r|dz  rt          |
¦  «        }|
}Œ>|
                     ¦   «         t          j        k    r$|dz  rt          t          |
¦  «        ¦  «        }|
}	Œ„|t          j	        k    r|dz  r| 
                    |
¦  «         Œ¯|t          j        k    r
|dz  r|
V — ŒÉ|dk    rt          |
t          j        ¦  «        V — Œì|dk    r/| 
                    t          |
t          j	        ¦  «        ¦  «         �Œ!|                     |
j        ¦  «         |
V — �ŒAd}d}d}|D �]l}|\  }}|}||v r|                     |¦  «         nd}|                     ¦   «         D �]0}d}|dk    rd}g }t#          t          t%          ||                     d¬¦  «        ¦  «        ¦  «        |¦  «        D ]¿}
|
                     ¦   «         t          j        k    r| 
                    |
¦  «         Œ:|
                     ¦   «         t          j        k    r| 
                    |
¦  «         Œr|
                     ¦   «         t          j	        k    r| 
                    |
¦  «         Œª| 
                    |
¦  «         ŒÀt)          |¦  «        t)          |¦  «        k    r|}�Œ2�Œn|D ]‡}
|dk    r?|
                     ¦   «         t          j        k    rt          |
t          j        ¦  «        V — ŒG|
                     ¦   «         t          j        k    r|                     |
j        ¦  «         |
V — Œˆ|s|�|V — n|r
|d         V — |D ]Ð\  }}|                     ¦   «         D ]¶}d}t#          t          t%          ||                     d¬¦  «        ¦  «        ¦  «        d¬	¦  «        D ]q}
|
                     ¦   «         t          j        k    r| 
                    |
¦  «         Œ:|
                     ¦   «         t          j	        k    r| 
                    |
¦  «         ŒrŒ·ŒÑ|D ]*}
|
j        |v rŒ|
V — |                     |
j        ¦  «         Œ+|s|	�|	V — d S |r|d         V — d S d S )
Nr   r   é   © FTrS   )Úresolve_stars)r   )r   r   rG   Úget_kindr   ÚVAR_POSITIONALr0   ÚVAR_KEYWORDÚlistÚKEYWORD_ONLYÚappendÚPOSITIONAL_ONLYÚParamNameFixedKindrI   r   ÚremoveÚget_signaturesÚprocess_paramsrR   Úget_param_namesÚlenÚPOSITIONAL_OR_KEYWORD)rM   r   Ú
used_namesÚarg_callablesÚkwarg_callablesÚkw_only_namesÚkwarg_namesÚ	arg_namesÚoriginal_arg_nameÚoriginal_kwarg_namer7   ÚkindÚlongest_param_namesÚfound_arg_signatureÚfound_kwarg_signatureÚfunc_and_argumentÚfuncrL   Únew_star_countÚ	signatureÚargs_for_this_funcs                        r/   rb   rb   `   s–  è è € àð Ý" ;¨q¤>Ô#@ÑAÔAð 	ð #Ð"Ð"Ð"Ð"Ð"Ð"Ð"ØˆFå‘”€JØ€MØ€Oà€MØ€KØ€IØÐØÐØð ñ ˆØ�zŠz‰|Œ|ˆØ•9Ô+Ò+Ð+Ø˜A‰~ð &Ý 5°aÑ 8Ô 8�Ø$%Ð!øØ�ZŠZ‰\Œ\�YÔ2Ò2Ð2Ø˜A‰~ð (Ý"&Õ'<¸QÑ'?Ô'?Ñ"@Ô"@�Ø&'Ð#øØ•YÔ+Ò+Ð+Ø˜A‰~ð (Ø×$Ò$ QÑ'Ô'Ð'øØ•YÔ.Ò.Ð.Ø˜A‰~ð Ø���øà˜QŠˆÝ(¨­IÔ,EÑFÔFÐFÐFÐFÐFØ˜q’�Ø×$Ò$Õ%7¸½9Ô;QÑ%RÔ%RÑSÔSÐSÑSà—’˜qœ}Ñ-Ô-Ð-Ø���‘ð ÐØÐØ!ÐØ*ð 9ñ 9ÐØ+‰ˆˆiØ#ˆØ Ð/Ð/Ø×"Ò"Ð#4Ñ5Ô5Ð5Ð5àˆNà×,Ò,Ñ.Ô.ð 	9ñ 	9ˆIØ"&ÐØ Ò"Ð"Ø(,Ð%Ø!#ÐÝ#ÝÕ-Ø!Ø!×1Ò1ÀÐ1ÑFÔFñô ñ ô ð 'ñ	(ô (ð 1ð 1�ð
 —:’:‘<”<¥9Ô#8Ò8Ð8Ø×&Ò& qÑ)Ô)Ð)Ð)Ø—Z’Z‘\”\¥YÔ%=Ò=Ð=Ø×$Ò$ QÑ'Ô'Ð'Ð'Ø—Z’Z‘\”\¥YÔ%;Ò;Ð;Ø!×(Ò(¨Ñ+Ô+Ð+Ð+à&×-Ò-¨aÑ0Ô0Ð0Ð0ÝÐ%Ñ&Ô&­Ð-@Ñ)AÔ)AÒAÐAØ&8Ð#ùñ'	9ð* !ð ð ˆØ˜Š?ˆ?˜qŸzšz™|œ|­yÔ/GÒGÐGÝ$ Q­	Ô(AÑBÔBÐBÐBÐBÐBà�zŠz‰|Œ|�yÔ>Ò>Ð>Ø—’˜qœ}Ñ-Ô-Ð-ØˆGˆGˆGˆGàð Ð#4Ð#@ØÐÐÐÐØ	ð Ø˜ŒlÐÐÐð +ð ,ð ,‰ˆˆiØ×,Ò,Ñ.Ô.ð 
	,ð 
	,ˆIØ$(Ð!Ý#ÝÕ-Ø!Ø!×1Ò1ÀÐ1ÑFÔFñô ñ ô ð $%ð	&ñ &ô &ð ,ð ,�ð
 —:’:‘<”<¥9Ô#8Ò8Ð8Ø×&Ò& qÑ)Ô)Ð)Ð)Ø—Z’Z‘\”\¥YÔ%;Ò;Ð;Ø!×(Ò(¨Ñ+Ô+Ð+øð,ð
	,ð ð &ð &ˆØŒ=˜JÐ&Ð&ØØˆˆˆØ�Š�q”}Ñ%Ô%Ð%Ð%à ð Ð%8Ð%DØ!Ð!Ð!Ð!Ð!Ð!Ø	ð Ø˜!ŒnÐÐÐÐÐðð r1   c                   ó$   ‡ — e Zd Zˆ fd„Zd„ Zˆ xZS )r_   c                 óX   •— t          ¦   «                              |¦  «         || _        d S r5   )ÚsuperÚ__init__Ú	_new_kind)Úselfr%   Únew_kindÚ	__class__s      €r/   rz   zParamNameFixedKind.__init__Ô   s&   ø€ Ý‰Œ×Ò˜Ñ$Ô$Ð$Ø!ˆŒˆˆr1   c                 ó   — | j         S r5   )r{   )r|   s    r/   rX   zParamNameFixedKind.get_kindØ   s
   € ØŒ~Ðr1   )Ú__name__Ú
__module__Ú__qualname__rz   rX   Ú__classcell__)r~   s   @r/   r_   r_   Ó   sG   ø€ € € € € ð"ð "ð "ð "ð "ðð ð ð ð ð ð r1   r_   N)rS   )Ú__doc__Úinspectr   Újedi.inference.utilsr   r9   r   Újedi.inference.helpersr   r0   r!   r"   rR   rb   r_   rV   r1   r/   ú<module>rˆ      sð   ððð ð Ð Ð Ð Ð Ð à (Ð (Ð (Ð (Ð (Ð (Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø :Ð :Ð :Ð :Ð :Ð :ð*ð *ð *ðDð ð ðð ð ðð ð ð$ 	ðoð oð oñ 	„ðoðdð ð ð ð Ð)ñ ô ð ð ð r1   