
    ^hD                        S SK Jr  S SKJr  S SKJrJr  S SKJr  S SKJ	r	  S SKJ
r
  S SKJr  S SKJr  S S	KJrJrJr  S S
KJrJrJrJrJr  S SKJrJrJrJrJr  S SKJrJ r J!r!  S SK"J#r#J$r$  S SK%J&r&  S SKJ'r'  S SK(J)r)  S SK*J+r+  S SK,J-r-   " S S\5      r. " S S\5      r/ " S S5      r0 " S S\0\/\S9r1 " S S\5      r2 " S S\15      r3 " S  S!\#\$5      r4 " S" S#\45      r5 " S$ S%\45      r6 " S& S'\0\5      r7S( r8g))*    )tree)debug)inference_state_method_cacheCachedMetaClass)compiled)	recursion)
docstrings)flow_analysis)TreeSignature)ParserTreeFilterFunctionExecutionFilter AnonymousFunctionExecutionFilter)	ValueNameAbstractNameDefinitionAnonymousParamName	ParamNameNameWrapper)ContextualizedNode	NO_VALUESValueSet	TreeValueValueWrapper)LazyKnownValuesLazyKnownValueLazyTreeValue)ValueContextTreeContextMixin)iterable)parser_utils)get_yield_exprs)values_from_qualified_namesTupleGenericManagerc                   8    \ rS rSrSrSrS r\S 5       rS r	Sr
g)	
LambdaName   z<lambda>functionc                 2    Xl         UR                  U l        g N_lambda_valueparent_context)selflambda_values     W/home/james-whalen/.local/lib/python3.13/site-packages/jedi/inference/value/function.py__init__LambdaName.__init__   s    )*99    c                 B    U R                   R                  R                  $ r)   )r+   	tree_node	start_posr-   s    r/   r5   LambdaName.start_pos"   s    !!++555r2   c                 .    [        U R                  /5      $ r)   )r   r+   r6   s    r/   inferLambdaName.infer&   s    ++,--r2   r*   N)__name__
__module____qualname____firstlineno__string_nameapi_typer0   propertyr5   r9   __static_attributes__ r2   r/   r%   r%      s*    KH: 6 6.r2   r%   c                       \ rS rSrS rSrg)FunctionAndClassBase*   c                    U R                   R                  5       (       a1  U R                   R                  5       nUc  g XR                  5       4-   $ U R                   R	                  5       (       a  U R                  5       4$ g r)   )r,   is_classget_qualified_names
py__name__	is_module)r-   ns     r/   rI   (FunctionAndClassBase.get_qualified_names+   sn    ''))##779Ay)+++  **,,OO%''r2   rC   N)r;   r<   r=   r>   rI   rB   rC   r2   r/   rE   rE   *   s    
r2   rE   c                   j    \ rS rSrSrSS jrS rS r\S 5       r	S r
S	 rSS
 jrS rSS jrS rSrg)FunctionMixin8   r'   Nc              #      #    U R                  5       nUR                  5        H  nUR                  US9 S h  vN   M     g  N	7f)N)origin_scope)py__class__execute_with_valuesget_filters)r-   rR   clsinstances       r/   rU   FunctionMixin.get_filters;   s@      //1H+++FFF 2Fs   6AA
Ac                 n    SSK Jn  Uc  [        U /5      $ [        U" XR                  5       U 5      /5      $ )Nr   )BoundMethod)jedi.inference.value.instancerZ   r   
as_context)r-   rW   class_valuerZ   s       r/   	py__get__FunctionMixin.py__get__@   s6    =TF##X/E/E/GNOPPr2   c                     U R                   R                  5        Vs/ s H  n[        XR                  5      PM     sn$ s  snf r)   )r4   
get_paramsr   namer-   params     r/   get_param_namesFunctionMixin.get_param_namesG   s=    !^^668:8E #448: 	: :s   ?c                     U R                   R                  S:X  a  [        U 5      $ [        X R                   R                  5      $ )Nlambdef)r4   typer%   r   rb   r6   s    r/   rb   FunctionMixin.nameK   s4    >>)+d##~~2233r2   c                     g)NTrC   r6   s    r/   is_functionFunctionMixin.is_functionQ   s    r2   c                 .    U R                   R                  $ r)   )rb   r?   r6   s    r/   rJ   FunctionMixin.py__name__T   s    yy$$$r2   c           
         U R                   R                  nUc  S nU R                  5       nUR                  5       nUR	                  5       nU R                  5       SSR                  UR                  5        Vs/ s H  nU" U5      PM     sn5      -  -   nUc  U$ OFUR                  SS9nU R                  5       U R                   R                  S   R                  SS9-   nUS-   U-   $ s  snf )Nc                     U R                   nU R                  5       R                  5       nUb  USU-   -  nU R                  b  USU R                  R	                  SS9-   -  nU$ )Nz: =Finclude_prefix)r?   r9   get_type_hintdefault_nodeget_code)rL   s
annotations      r/   param_name_to_str6FunctionMixin.get_type_hint.<locals>.param_name_to_strZ   sd    MMWWY446
)
**A>>-q~~66e6LLLAr2   z(%s), Frs      z -> )
r4   ry   r\   r9   ru   rJ   joinre   rw   children)	r-   add_class_inforeturn_annotationrz   function_executionresultreturn_hintrL   bodys	            r/   ru   FunctionMixin.get_type_hintW   s     NN55$ "&!2'--/F ..0K??$v		+;;=;=A "!$=; 1 ( D " # ,44E4JK??$t~~'>'>q'A'J'JZ_'J'``Df}{**;s   :C+c                 D    U R                  U5      nUR                  5       $ r)   )r\   r9   )r-   	argumentsr   s      r/   
py__call__FunctionMixin.py__call__r   s     !__Y7!''))r2   c                 4    Uc  [        U 5      $ [        X5      $ r)   )AnonymousFunctionExecutionFunctionExecutionContext)r-   r   s     r/   _as_contextFunctionMixin._as_contextv   s    -d33'88r2   c                 `    U R                  5        Vs/ s H  n[        U5      PM     sn$ s  snf r)   )get_signature_functionsr   )r-   fs     r/   get_signaturesFunctionMixin.get_signatures{   s*    *.*F*F*HI*HQa *HIIIs   +rC   r)   T)r;   r<   r=   r>   r@   rU   r^   re   rA   rb   rl   rJ   ru   r   r   r   rB   rC   r2   r/   rO   rO   8   sK    HG
Q: 4 4
%+6*9
Jr2   rO   c                   6    \ rS rSr\S 5       rS rS rS rSr	g)FunctionValue   c                   ^ ^^ U UU4S jn[        [        TU5      5      nTmTR                  5       (       d  TR                  5       (       a:  TR                  mTR                  5       (       a  M#  TR                  5       (       a  M:  U" U5      nU(       a4  [        U[        [        U Vs/ s H
  oc" U5      PM     sn5      5      5      $ U$ s  snf )Nc                 ~   > TR                  5       (       a  [        TR                  TTU S9$ T" TR                  TU S9$ )N)r,   r4   )rH   MethodValueinference_state)r4   rV   contextr,   s    r/   create*FunctionValue.from_context.<locals>.create   sO    !!"++#1'	  ++#1' r2   )list_find_overload_functionsrH   is_instancer,   OverloadedFunctionValuereversed)rV   r   r4   r   overloaded_funcsr'   r   r,   s   ``     @r/   from_contextFunctionValue.from_context   s    	   8) LM %%''>+E+E+G+G+::N %%''>+E+E+G+G )$*X2BC2BQvay2BCDE 
  Ds   *Cc                 8    [        U R                  SS5      u  nU$ )NtypesFunctionType)r!   r   )r-   cs     r/   rS   FunctionValue.py__class__   s    ()=)=wWr2   c                     U R                   $ r)   )r,   r6   s    r/   get_default_param_context'FunctionValue.get_default_param_context   s    """r2   c                     U /$ r)   rC   r6   s    r/   r   %FunctionValue.get_signature_functions   s	    vr2   rC   N)
r;   r<   r=   r>   classmethodr   rS   r   r   rB   rC   r2   r/   r   r      s$     @#r2   r   )	metaclassc                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )FunctionNameInClass   c                 0   > [         TU ]  U5        Xl        g r)   )superr0   _class_context)r-   class_contextrb   	__class__s      r/   r0   FunctionNameInClass.__init__   s    +r2   c                 6    U R                   R                  5       $ r)   )r   	get_valuer6   s    r/   get_defining_qualified_value0FunctionNameInClass.get_defining_qualified_value   s    "",,..r2   )r   )r;   r<   r=   r>   r0   r   rB   __classcell__r   s   @r/   r   r      s    ,/ /r2   r   c                   J   ^  \ rS rSrU 4S jrS rS r\U 4S j5       rSr	U =r
$ )r      c                 :   > [         TU ]  " U/UQ70 UD6  X l        g r)   )r   r0   r   )r-   r   r   argskwargsr   s        r/   r0   MethodValue.__init__   s     :4:6:*r2   c                     U R                   $ r)   r   r6   s    r/   r   %MethodValue.get_default_param_context   s    !!!r2   c                 d    U R                   R                  5       nUc  g XR                  5       4-   $ r)   )r   rI   rJ   )r-   namess     r/   rI   MethodValue.get_qualified_names   s3     ""668=)+++r2   c                 @   > [        U R                  [        TU ]  5      $ r)   )r   r   r   rb   )r-   r   s    r/   rb   MethodValue.name   s    "4#5#5uw|DDr2   r   )r;   r<   r=   r>   r0   r   rI   rA   rb   rB   r   r   s   @r/   r   r      s(    +", E Er2   r   c                       \ rS rSrS r\" \S9\R                  " 5       SS j5       5       r	S r
\R                  " \" / 5      S9SS j5       rSS jrS rS	 rS
rg)BaseFunctionExecutionContext   c                     [         er)   )NotImplementedErrorr6   s    r/   infer_annotations.BaseFunctionExecutionContext.infer_annotations   s    !!r2   )defaultc                    U R                   nUR                  S:X  a  U R                  UR                  S   5      $ U(       a  [        n[        U R                  U5      nOLU R                  5       nU(       a  U$ U[        R                  " U R                  5      -  nUR                  5       nU H  nU(       a1  U[        R                  " S U R                  U5       5       5      -  nM;  [        R                   " XU5      nU[        R"                  L a  [$        R&                  " SU5        O# UR                  nX0R                  US   5      -  nU[        R.                  L d  M  [$        R&                  " SU5          U$    U$ ! [(         a3    [*        R,                  " U R                  S5      nU[        U/5      -  n Nof = f)Nrh   c              3   B   #    U  H  nUR                  5       v   M     g 7fr)   r9   .0
lazy_values     r/   	<genexpr>ABaseFunctionExecutionContext.get_return_values.<locals>.<genexpr>   s#      0&C
 $$&&&C   zReturn unreachable: %s   NonezReturn reachable: %s)r4   ri   
infer_noder   r   r    r   r   r	   infer_return_types_valueiter_return_stmtsr   	from_sets_get_yield_lazy_valuer
   reachability_checkUNREACHABLEr   dbgAttributeErrorr   builtin_from_name	REACHABLE)	r-   check_yieldsfuncdef	value_setreturnsrcheckr   ctxs	            r/   get_return_values.BaseFunctionExecutionContext.get_return_values   s    ..<<9$??7#3#3B#788!I%d&:&:GDG..0I ! 66t{{CCI//1GAX// 0&*&@&@&C0  	
 &88JM555II6:B#$::
 "__Xa[%AA	M333II4a8+ *  * 5&889M9MvV!Xse_4	5s   +F  :F=<F=c              #   f  #    UR                   S:X  a/  [        R                  " U R                  S5      n[	        U5      v   g UR
                  S   nUR                   S:X  a@  [        XR
                  S   5      nUR                  5       R                  U5       S h  vN   g [        X5      v   g  N7f)Nkeywordr   r   	yield_arg)
ri   r   r   r   r   r   r   r9   iterater   )r-   
yield_exprr   nodecns        r/   r   2BaseFunctionExecutionContext._get_yield_lazy_value   s     ??i',,T-A-A6JC %%""1%99##D--*:;Bxxz))"---++ .s   BB1B/B1c              #     #    [        U R                  U R                  5       Vs/ s H  nU[        R                  " USSSS5      4PM!     nn/ nS nU H  u  pgUR
                  nUR                  S:X  a  UR
                  nUR                  S:X  a[  XR                  :X  aL  [        R                  " U5      (       a1  Xu:X  a  US   S   R                  U5        OfUR                  Xv/45        ORXpR                  :X  a  UR                  S U/45        O.U R                  SS	9n	U	(       a  [        U	S
[        S5      S9v     g UnM     U H  u  pzUc$  U
 H  nU R                  U5       S h  vN   M     M,  UR                  5       n[        X5      nUR!                  5       R#                  U5      n[%        U5      nU Hq  n['        UR(                  S   R*                  5      UR!                  5       0nU R-                  X5         U
 H  nU R                  U5       S h  vN   M     S S S 5        Ms     M     g s  snf  N N ! , (       d  f       M  = f7f)Nfor_stmtr   
while_stmtif_stmtsuiter   r   T)r   r   inf)minmax)r    r   r4   r   search_ancestorparentri   r   for_stmt_defines_one_nameappendr   r   floatr   get_testlistr   r9   r   r   strr   valuepredefine_names)r-   is_asyncyfor_parentsyields_orderlast_for_stmtyield_r  r  r   yields
input_noder   orderedr   dctyield_in_same_for_stmts                    r/   get_yield_lazy_values2BaseFunctionExecutionContext.get_yield_lazy_values  s)    
 !00D0Ddnn UW U1 4//:y0<iI J U 	 W
  +F __F{{g%}}
*v/G$>>xHH, $Q'..v6 ''8(<=^^+##TF8$45..D.A)%QE%LII$M' !,* !-H$F#99&AAA % &224
'9((*,,R0w-")Jx00399:J<L<L<NOC--h<6<2'+'A'ABX'YYY 7= =< #* !-9W@ B Z =<sH   #I&H2DI&H7'BI>H;H9H;!I9H;;
I
Ic                 X    [         R                  " S U R                  5        5       5      $ )Nc              3   B   #    U  H  nUR                  5       v   M     g 7fr)   r   r   s     r/   r   BBaseFunctionExecutionContext.merge_yield_values.<locals>.<genexpr>6  s#      "
:
 :r   )r   r   r  )r-   r  s     r/   merge_yield_values/BaseFunctionExecutionContext.merge_yield_values5  s+    !! "
"88:"
 
 	
r2   c                 T    [        [        U R                  U R                  5      5      $ r)   )boolr    r   r4   r6   s    r/   is_generator)BaseFunctionExecutionContext.is_generator;  s    OD$8$8$..IJJr2   c                   ^^ U R                   nU R                  R                  R                  S;   nSSKJm  U(       a  U R                  5       (       ad  UR                  R                  S5      nU R                  SS9nUR                  5       [        4m[        UU4S jU 5       5      R                  5       $ UR                  R                  S5      nU R                  5       nUR                  5       [        [        4m[        UU4S	 jU 5       5      R                  5       $ U R                  5       (       a5  U R                  5       (       d   [        [         R"                  " X5      /5      $ U R                  5       $ )
z$
Created to be used by inheritance.
)
async_stmtasync_funcdefr   )GenericClassAsyncGeneratorT)r  c              3   H   >#    U  H  nT" U[        T5      5      v   M     g 7fr)   r"   r   r   r,  genericss     r/   r   5BaseFunctionExecutionContext.infer.<locals>.<genexpr>N  s(       4 !$7$ABB4   "	Coroutinec              3   H   >#    U  H  nT" U[        T5      5      v   M     g 7fr)   r"   r/  s     r/   r   r1  W  s$       LYqL$7$ABBMr2  )r   r4   r  ri   jedi.inference.gradual.baser,  r'  typing_modulepy__getattribute__r#  rS   r   r   execute_annotationr   r   r   	Generator)	r-   r   is_coroutineasync_generator_classesyield_valuesasync_classesreturn_valuesr,  r0  s	          @@r/   r9   "BaseFunctionExecutionContext.infer>  sM    ..~~,,115TT<  ""*9*G*G''(89 (  $666E(446	B  4   %$&'
 !0 = = P PQ\ ] $ 6 6 8)557IN  LY  $$&'
   ""4+A+A+C+C!3!3O!J KLL--//r2   rC   N)F)r;   r<   r=   r>   r   r   r   r   execution_recursion_decoratorr   r   iterr  r#  r'  r9   rB   rC   r2   r/   r   r      sm    " ")4,,.& / 5&P, ,,T"X>,Z ?,Z\
K!0r2   r   c                   >   ^  \ rS rSrU 4S jrSS jrS rS rSrU =r	$ )r   ib  c                 0   > [         TU ]  U5        X l        g r)   )r   r0   
_arguments)r-   function_valuer   r   s      r/   r0   !FunctionExecutionContext.__init__c  s    (#r2   c              #   P   #    [        X R                  UUU R                  S9v   g 7f)N)until_positionrR   r   )r   r   rD  r-   rH  rR   s      r/   rU   $FunctionExecutionContext.get_filtersg  s&     %++)%oo	
 	
s   $&c                 H    SSK Jn  U" U R                  U R                  5      $ )Nr   )r   )!jedi.inference.gradual.annotationr   r   rD  )r-   r   s     r/   r   *FunctionExecutionContext.infer_annotationso  s    H!$++t??r2   c                     U R                   R                  R                  5        Vs/ s H.  n[        U R                   UR                  U R
                  5      PM0     sn$ s  snf r)   )r   r4   ra   r   rb   rD  rc   s     r/   re   (FunctionExecutionContext.get_param_namess  sQ     ..99;
; dkk5::t?;
 	
 
s   5A)rD  NN)
r;   r<   r=   r>   r0   rU   r   re   rB   r   r   s   @r/   r   r   b  s    $
@
 
r2   r   c                   *    \ rS rSrS rSS jrS rSrg)r   iz  c                     [         $ r)   )r   r6   s    r/   r   ,AnonymousFunctionExecution.infer_annotations{  s
     r2   Nc              #   :   #    [        X R                  UUS9v   g 7f)N)rH  rR   )r   r   rI  s      r/   rU   &AnonymousFunctionExecution.get_filters  s     .++)%
 	
s   c                 6    U R                   R                  5       $ r)   )r   re   r6   s    r/   re   *AnonymousFunctionExecution.get_param_names  s    {{**,,r2   rC   rP  )r;   r<   r=   r>   r   rU   re   rB   rC   r2   r/   r   r   z  s    

-r2   r   c                   >   ^  \ rS rSrU 4S jrS rS rSS jrSrU =r	$ )r   i  c                 0   > [         TU ]  U5        X l        g r)   )r   r0   _overloaded_functions)r-   r'   overloaded_functionsr   s      r/   r0    OverloadedFunctionValue.__init__  s    "%9"r2   c                    [         R                  " SU R                  SS9  / nU R                  5        HW  nUR                  R                  U5      nUR                  U5        UR                  U5      (       d  MG  UR                  5       s  $    U R                  R                  (       a  [        $ [        R                  " S U 5       5      $ )NzExecute overloaded function %sBLUE)colorc              3   @   #    U  H  oR                  5       v   M     g 7fr)   r   )r   fes     r/   r   5OverloadedFunctionValue.py__call__.<locals>.<genexpr>  s     !K7J((**7J   )r   r   _wrapped_valuer   r  r\   r  matches_signaturer9   r   is_analysisr   r   r   )r-   r   function_executions	signaturer   s        r/   r   "OverloadedFunctionValue.py__call__  s    		2D4G4GvV ,,.I!*!;!;I!F&&'9:**955)//11	 / ++!!!K7J!KKKr2   c                     U R                   $ r)   rZ  r6   s    r/   r   /OverloadedFunctionValue.get_signature_functions  s    )))r2   c                 L    SSR                  S U R                   5       5      -  $ )Nz	Union[%s]r|   c              3   @   #    U  H  oR                  5       v   M     g 7fr)   )ru   )r   r   s     r/   r   8OverloadedFunctionValue.get_type_hint.<locals>.<genexpr>  s     &]B\Q'8'8B\rc  )r~   rZ  )r-   r   s     r/   ru   %OverloadedFunctionValue.get_type_hint  s"    TYY&]$B\B\&]]]]r2   rk  r   )
r;   r<   r=   r>   r0   r   r   ru   rB   r   r   s   @r/   r   r     s    :L*^ ^r2   r   c              #     #    S nUR                   S:X  a  g U" U5      (       a  Uv    [        U UR                  S9nUR                  UR                  R
                  5      n[        U[        5      (       d   eU(       d  g SnU HB  nUR                  R                  nUR                   S:X  d  M+  U" U5      (       d  M:  UnSnUv   MD     U(       d  g M  7f)Nc                 "   U R                   R                  S:X  au  U R                   R                  S   nUR                  S:X  a  U/nOUR                  nU H6  nUR                  S   nUR                  S:X  d  M$  UR                  S:X  d  M6    g   g)	N	decoratedr   	decoratorr   rb   overloadTF)r  ri   r   r  )r   
decoratorsrt  dotted_names       r/   _is_overload_decorated8_find_overload_functions.<locals>._is_overload_decorated  s    >>+- 003J+-(\
'00
'	'003##v-+2C2Cz2Q	 (
 r2   rh   T)rH  Fr   )
ri   r   r5   getrb   r  
isinstancer   	tree_namer  )r   r4   rx  filterr   foundrb   r   s           r/   r   r     s      ~~"i((
!$..
 

9>>//0%&&&&Dnn++G||y(-CG-L-L#	  ' s   B*C0C?CN)9parso.pythonr   jedir   jedi.inference.cacher   r   jedi.inferencer   r   r	   r
   jedi.inference.signaturer   jedi.inference.filtersr   r   r   jedi.inference.namesr   r   r   r   r   jedi.inference.base_valuer   r   r   r   r   jedi.inference.lazy_valuer   r   r   jedi.inference.contextr   r   jedi.inference.valuer   r   jedi.inference.parser_cacher    jedi.inference.helpersr!   jedi.inference.gradual.genericsr#   r%   rE   rO   r   r   r   r   r   r   r   r   rC   r2   r/   <module>r     s      N # $ % ( 2% %/ /& &  A )  7 > ?.' . 9 DJ DJN*M#7? *Z/+ /E- E*U0<1A U0p
; 
0-!= -"^m\ ^4(r2   