§
    ŒŸjfo  ã                   ó  — d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d dlmZm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z) d dl*m+Z+m,Z, d dl-m.Z. d dl/m0Z0  G d„ de(¦  «        Z1d„ Z2d„ Z3d„ Z4d„ Z5d „ Z6d!„ Z7 e0j8        ¦   «         d"„ ¦   «         Z9 G d#„ d$¦  «        Z:d%„ Z; e j<        d&¦  «        Z=d'„ Z>d(„ Z?d)„ Z@	 	 d-d+„ZAd,„ ZBdS ).é    N)Údedent)ÚAny)Ú	Parameter)ÚPythonTokenTypes)Útree)ÚLeaf)Úsplit_lines)Údebug)Úsettings)Úclasses)Úhelpers)Úkeywords)Úcomplete_dict)Úcomplete_file_name)Úimports)ÚValueSet)Úinfer_call_of_leafÚparse_dotted_names)Úget_global_filters)ÚTreeInstance)ÚDocstringModule)ÚParamNameWrapperÚSubModuleName)Úconvert_valuesÚconvert_names©Úcut_value_at_position)Úplugin_managerc                   ó   — e Zd Zd„ ZdS )ÚParamNameWithEqualsc                 ó   — | j         dz   S )Nú=)Ústring_name)Úselfs    ú`/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/jedi/api/completion.pyÚget_public_namez#ParamNameWithEquals.get_public_name   s   € ØÔ #Ñ%Ð%ó    N)Ú__name__Ú
__module__Ú__qualname__r&   © r'   r%   r    r       s#   € € € € € ð&ð &ð &ð &ð &r'   r    c              #   óö   K  — | D ]s}t          |j        ¦  «        D ]\\  }}|j        }||k     r|t          j        k    rŒ#|t          j        t          j        fv r|j        |vrt          |j        ¦  «        V — Œ]Œtd S ©N)	Ú	enumerateÚparamsÚkindr   ÚPOSITIONAL_OR_KEYWORDÚKEYWORD_ONLYÚnamer    Ú_name)Ú
signaturesÚpositional_countÚused_kwargsÚcall_sigÚiÚpr0   s          r%   Ú_get_signature_param_namesr;   #   sž   è è € àð 3ð 3ˆÝ˜hœoÑ.Ô.ð 	3ð 	3‰DˆAˆqØ”6ˆDØÐ#Ò#Ð#¨µ	Ô0OÒ(OÐ(OØØ�	Ô7½Ô9OÐPÐPÐPØœ kÐ1Ð1Ý)¨!¬'Ñ2Ô2Ð2Ð2Ð2øð	3ð3ð 3r'   c                 óÒ   — |rdS d}| D ]]}t          |j        ¦  «        D ]B\  }}|j        }|t          j        u r  dS ||k    r|t          j        t          j        fv rd} nŒC|s nŒ^|S )NTF)r.   r/   r0   r   ÚVAR_POSITIONALr1   ÚPOSITIONAL_ONLY)r5   r6   r7   Úmust_be_kwargÚ	signaturer9   r:   r0   s           r%   Ú_must_be_kwargrA   /   s¯   € Øð Øˆtà€MØð ð ˆ	Ý˜iÔ.Ñ/Ô/ð 
	ð 
	‰DˆAˆqØ”6ˆDØ•yÔ/Ð/Ð/ð �u�u�uàÐ$Ò$Ð$¨µ)Ô2QÝ2;Ô2Kð2Mð *Mð *Mà %�Ø�øØð 	ØˆEð	àÐr'   c           	   #   óü  K  — t          ¦   «         }t          j        r|                     ¦   «         }|D ]È}|j        }	|	|v r|	|k    rŒt          j        r|	                     ¦   «         }	t          j        |	||¬¦  «        r}t          j        | ||t          |¦  «        ||¬¦  «        }
|
j
        |
j        f}||vrD|                     |¦  «         |j        }|�"|                     ¦   «         }|�|j        dk    rŒÄ|
V — ŒÉd S )N©Úfuzzy)Úis_fuzzyÚcached_nameÚdel_stmt)Úsetr   Úcase_insensitive_completionÚlowerr#   r   Úmatchr   Ú
CompletionÚlenr3   ÚcompleteÚaddÚ	tree_nameÚget_definitionÚtype)Úinference_stateÚcompletion_namesÚstackÚ	like_namerD   Úimported_namesrF   Úcomp_dctr3   ÚstringÚnewÚkrP   Ú
definitions                 r%   Úfilter_namesr]   E   s)  è è € å‰uŒu€HÝÔ+ð &Ø—O’OÑ%Ô%ˆ	Ø ð ð ˆØÔ!ˆØ�^Ð#Ð#¨°)Ò(;Ð(;ØÝÔ/ð 	$Ø—\’\‘^”^ˆFÝŒ=˜ °%Ð8Ñ8Ô8ð 	ÝÔ$ØØØÝ�I‘”ØØ'ðñ ô ˆCð ”˜3œ<Ð(ˆAØ˜Ð Ð Ø—’˜Q‘”�Ø œN�	ØÐ(Ø!*×!9Ò!9Ñ!;Ô!;�JØ!Ð-°*´/ÀZÒ2OÐ2OØ Ø�	�	�	øð/ð r'   c                 ó8   ‡— d„ |D ¦   «         Šˆfd„| D ¦   «         S )Nc                 ó   — h | ]	}|j         ’Œ
S r+   ©r3   )Ú.0Úds     r%   ú	<setcomp>z%_remove_duplicates.<locals>.<setcomp>e   s   € Ð/Ð/Ð/˜ˆQŒVÐ/Ð/Ð/r'   c                 ó&   •— g | ]}|j         ‰v¯|‘ŒS r+   r`   )ra   ÚcÚnamess     €r%   ú
<listcomp>z&_remove_duplicates.<locals>.<listcomp>f   s%   ø€ Ð:Ð:Ð:�! a¤f°EÐ&9Ð&9ˆAÐ&9Ð&9Ð&9r'   r+   )ÚcompletionsÚother_completionsrf   s     @r%   Ú_remove_duplicatesrj   d   s1   ø€ Ø/Ð/Ð.Ð/Ñ/Ô/€EØ:Ð:Ð:Ð:�{Ð:Ñ:Ô:Ð:r'   c                 ód   — | j                              |d¬¦  «        }|                      |¦  «        S )zK
    Returns the scope in which the user resides. This includes flows.
    T©Úinclude_prefixes)Ú	tree_nodeÚget_leaf_for_positionÚcreate_context)Úmodule_contextÚpositionÚleafs      r%   Úget_user_contextrt   i   s4   € ð Ô#×9Ò9¸(ÐUYÐ9ÑZÔZ€DØ×(Ò(¨Ñ.Ô.Ð.r'   c                 óÚ   — |                       |d¬¦  «        }t          |t          j        t          j        f¦  «        s-|j        }t          |t          j        t          j        f¦  «        ¯-|S )NTrl   )ro   Ú
isinstancer   ÚScopeÚFlowÚparent)Úmodule_noderr   Únodes      r%   Úget_flow_scope_noder|   q   s`   € Ø×,Ò,¨XÈÐ,ÑMÔM€DÝ˜¥¤
­D¬IÐ6Ñ7Ô7ð ØŒ{ˆõ ˜¥¤
­D¬IÐ6Ñ7Ô7ð ð €Kr'   c                 ó   — g S r-   r+   )ÚcontextÚfunction_nameÚdecorator_nodess      r%   Úcomplete_param_namesr�   y   s	   € ð €Ir'   c                   ód   — e Zd Z	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ Zdd„Zdd„Zd„ Zd„ ZdS )rL   Fc                 ó²   — || _         || _        |j        | _        || _        t          j        | j        ||¦  «        | _        || _        || _	        || _
        d S r-   )Ú_inference_stateÚ_module_contextrn   Ú_module_nodeÚ_code_linesr   Úget_on_completion_nameÚ
_like_nameÚ_original_positionÚ_signatures_callbackÚ_fuzzy)r$   rS   rq   Ú
code_linesrr   Úsignatures_callbackrD   s          r%   Ú__init__zCompletion.__init__�   s^   € à /ˆÔØ-ˆÔØ*Ô4ˆÔØ%ˆÔõ "Ô8¸Ô9JÈJÐX`ÑaÔaˆŒð #+ˆÔØ$7ˆÔ!àˆŒˆˆr'   c                 ó  ‡ — ‰ j                              ‰ j        d¬¦  «        }t          |‰ j        ¦  «        \  }}}t	          ‰ j        ‰ j        |p|‰ j        |€d n||z   ‰ j        ¬¦  «        }|�J|sHt          t          ‰ j
        ‰ j        |||‰ j        ‰ j        ‰ j        ‰ j        ‰ j        ¦
  «
        ¦  «        }|�|sd|v r‰                      ||¦  «        }|S ‰                      |¦  «        \  }}g }|j        �5|j        j        dv r'|                     t%          |j        ¦  «        ¦  «         t          t'          ‰ j
        |‰ j        ‰ j        ‰ j        ||¬¦  «        ¦  «        }	t+          ||	¦  «        t-          |	ˆ fd„¬¦  «        z   S )	NTrl   rC   ú
)Úimport_as_namesÚdotted_as_names)rF   c                 óÚ   •— | j                              ‰j        ¦  «         | j                              d¦  «        | j                              d¦  «        | j                              ¦   «         fS )NÚ__Ú_)r3   Ú
startswithr‰   rJ   )Úxr$   s    €r%   ú<lambda>z%Completion.complete.<locals>.<lambda>À   sU   ø€ °Q´V×5FÒ5FÀtÄÑ5WÔ5WÐ1WØ12´×1BÒ1BÀ4Ñ1HÔ1HØ12´×1BÒ1BÀ3Ñ1GÔ1GØ12´·²±´ð1A€ r'   )Úkey)r†   ro   rŠ   Ú_extract_string_while_in_stringr   r…   r‡   rŒ   Úlistr   r„   r‰   r‹   Ú_complete_in_stringÚ_complete_pythonry   rR   ÚextendÚextract_imported_namesr]   rU   rj   Úsorted)
r$   rs   rY   Ú
start_leafÚquoteÚprefixed_completionsrF   rT   rW   rh   s
   `         r%   rN   zCompletion.complete–   só  ø€ ØÔ ×6Ò6ØÔ#Ø!ð 7ñ 
ô 
ˆõ %DÀDÈ$ÔJaÑ$bÔ$bÑ!ˆ�
˜Eå,ØÔ ØÔØÐ˜$ØÔ#Ø�NˆDˆD¨°©Ø”+ð 
ñ  
ô  
Ðð ÐÐ&:ÐÝ#'Õ(:ØÔ% tÔ';¸ZÈÐPVØ” Ô!:ØÔ  $Ô"9Ø”ñ	)ô )ñ $ô $Ð ð ÐØ'ð T¨D°F¨N¨Nà'+×'?Ò'?À
ÈFÑ'SÔ'SÐ$Ø'Ð'à(,×(=Ò(=¸dÑ(CÔ(CÑ%ˆÐ%àˆØŒ;Ð" t¤{Ô'7Ð;aÐ'aÐ'aØ×!Ò!Õ"8¸¼Ñ"EÔ"EÑFÔFÐFå�<¨Ô(=Ð?OØ(,¬
°D´OØ(,¬°^ÐQ\ð^ñ ^ô ^ñ _ô _ˆõ Ð3°[ÑAÔAÝ�[ð 'Að 'Að 'Að 'Að Bñ Bô BñBð	
r'   c                 ób	  ‡— | j         j        }dx| _        }| j        d         | j        d         t	          | j        ¦  «        z
  f| _        d}	 t          j        || j	        || j        ¦  «        x| _        }nM# t          j
        $ r;}|j        j        }|dk    r	|g fcY d}~S ||                      ¦   «         fcY d}~S d}~ww xY wt          |                     ¦   «         ¦  «        Šd‰v �r| j                             | j        d¬¦  «        }|                     ¦   «         }| j        d         }|j        | j        cxk    r|j        k    sn |j        d         }|�¡|}		 |	                     dd	d
dd¦  «        }	|	€n‚|	j        }
|
dk    r,|	j        d         }t1          |t2          ¦  «        r
|j        dz   }
|	j        d         |k    r7|
dk    r‰ddgz  Šn)|
dk    r‰g d¢z  Šn|
d	k    r‰                     d¦  «         Œžg }d}t7          ˆfd„t8          j        t8          j        fD ¦   «         ¦  «        �rd„ |D ¦   «         }t?          |¦  «        }|r/|d         dv r%|t          |                       d¬¦  «        ¦  «        fS d|v r;tC          |d|v ¦  «        \  }}d|v od|v  }||  "                    |||¬¦  «        z  }�nŽ|d         dv r™|d         dk    r�| j                             | j        ¦  «        }|j        dk    r|                     ¦   «         }|j        dk    r|                     ¦   «         }|  #                    |                     ¦   «         ¦  «        \  }}||z  }në|  $                    ¦   «         r||  %                    |¦  «        z  }n¾|d         dv r‚|d         dv rx | j&        | j        Ž }|rg|d         j'        }t          | (                    ¦   «         ¦  «        }| )                    ¦   «         }|tU          |||¦  «        z  }tW          |||¦  «        }|s0||                      ¦   «         z  }||                       d¬¦  «        z  }|sb| j	        | j        d         dz
           d| j        d         …         }||  ,                    ‰| p|d         d v o|d!d…         d"k     ¬#¦  «        z  }||fS )$aÕ  
        Analyzes the current context of a completion and decides what to
        return.

        Technically this works by generating a parser stack and analysing the
        current stack for possible grammar nodes.

        Possible enhancements:
        - global/nonlocal search global
        - yield from / raise from <- could be only exceptions/generators
        - In args: */**: no completion
        - In params (also lambda): no completion before =
        Nr   é   ú.ÚifTrl   Úif_stmtÚfor_stmtÚ
while_stmtÚtry_stmtÚ
error_nodeÚ_stmtÚelifÚelse)ÚexceptÚfinallyr°   Fc              3   ó    •K  — | ]}|‰v V — Œ	d S r-   r+   )ra   ÚtÚallowed_transitionss     €r%   ú	<genexpr>z.Completion._complete_python.<locals>.<genexpr>  sA   øè è € ð Lð L¨AˆqÐ'Ð'ð Lð Lð Lð Lð Lð Lr'   c                 ó   — g | ]	}|j         ‘Œ
S r+   )Únonterminal)ra   Ú
stack_nodes     r%   rg   z/Completion._complete_python.<locals>.<listcomp>  s   € ÐKÐKÐK°z˜JÔ2ÐKÐKÐKr'   éÿÿÿÿ)ÚasÚdefÚclass)Úis_functionÚimport_stmtÚimport_fromÚimport©Úonly_modules)ÚtrailerÚdotted_nameÚnewlineÚ	endmarker)ú(ú,)rÄ   ÚarglistÚ	decoratorz 	.;éýÿÿÿz...)Úonly_values)-r„   ÚgrammarrU   rŠ   rM   r‰   Ú	_positionr   Úget_stack_at_positionr‡   ÚOnErrorLeafÚ
error_leafÚvalueÚ_complete_global_scoperœ   Ú)_allowed_transition_names_and_token_typesr†   ro   Úget_previous_leafÚ	start_posÚend_posÚsearch_ancestorrR   Úchildrenrv   r   ÚappendÚanyr   ÚNAMEÚINDENTÚ_gather_nodesÚ_complete_inheritedr   Ú_get_importer_namesÚ_complete_trailerÚ_is_parameter_completionÚ_complete_paramsr‹   Ú_call_detailsÚiter_used_keyword_argumentsÚcount_positional_argumentsr;   rA   Ú_complete_keywords)r$   rs   rÎ   rU   rF   ÚerÓ   Úprevious_leafÚindentÚstmtÚtype_ÚfirstrT   Úkwargs_onlyÚnonterminalsÚnodesÚlevelrf   rÃ   ÚdotÚnr5   Úcall_detailsr7   r6   Úcurrent_linerµ   s                             @r%   rž   zCompletion._complete_pythonÆ   s  ø€ ð Ô'Ô/ˆØ!Ð!ˆŒ
�UàÔ# AÔ&ØÔ# AÔ&­¨T¬_Ñ)=Ô)=Ñ=ð
ˆŒð ˆð	>Ý!(Ô!>Ø˜Ô)¨4°´ñ"ô "ð ˆDŒJ˜˜øõ Ô"ð 	>ð 	>ð 	>Ø”LÔ&ˆEØ˜Š|ˆ|ð # B�Ð&Ð&Ð&Ð&Ð&Ð&ð  × ;Ò ;Ñ =Ô =Ð=Ð=Ð=Ð=Ð=Ð=Ð=øøøøð	>øøøõ �×@Ò@ÑBÔBÑCÔCð 	ð Ð&Ð&Ñ&ØÔ$×:Ò:¸4¼>Ð\`Ð:ÑaÔaˆDØ ×2Ò2Ñ4Ô4ˆMà”^ AÔ&ˆFØ”N d¤nÐDÐDÒDÐD¸¼ÒDÐDÐDÐDØœ¨Ô*�àÐ(Ø$�ð?Ø×/Ò/Ø! :¨|¸ZØ$ñô �Dð �|Øà œI�EØ Ò,Ð,Ø $¤¨aÔ 0˜Ý% e­TÑ2Ô2ð :Ø$)¤K°'Ñ$9˜Eà”~ aÔ(¨FÒ2Ð2Ø  IÒ-Ð-Ø/°F¸FÐ3CÑCÐ/Ð/Ø" jÒ0Ð0Ø/Ð3PÐ3PÐ3PÑPÐ/Ð/Ø" jÒ0Ð0Ø/×6Ò6°vÑ>Ô>Ð>ð)?ð, ')ÐàˆÝð Lð Lð Lð LÕ2BÔ2GÝ2BÔ2Ið2Kð Lñ Lô Lñ Lô Lñ ;	Tð LÐKÀUÐKÑKÔKˆLå! %Ñ(Ô(ˆEØð 4T˜˜rœÐ&<Ð<Ð<ð #¥D¨×)AÒ)AÈdÐ)AÑ)SÔ)SÑ$TÔ$TÐTÐTØ ,Ð.Ð.Ý1°%¸È,Ð9VÑWÔW‘��uà$1°\Ð$AÐ$WÀhÐRWÐFWÐX�Ø  D×$<Ò$<ØØØ!-ð %=ñ %ô %ñ Ð Ñ ð
 ˜bÔ!Ð%?Ð?Ð?ÀEÈ"ÄIÐQTÒDTÐDTØÔ'×=Ò=¸d¼nÑMÔM�Ø”8˜yÒ(Ð(Ø×/Ò/Ñ1Ô1�CØ”8˜{Ò*Ð*ð ×0Ò0Ñ2Ô2�CØ!%×!7Ò!7¸×8MÒ8MÑ8OÔ8OÑ!PÔ!P‘�˜QØ  AÑ%Ð Ð Ø×.Ò.Ñ0Ô0ð TØ  D×$9Ò$9¸$Ñ$?Ô$?Ñ?Ð Ð ð ˜”9 
Ð*Ð*Ø(¨Ô,Ð0SÐSÐSØ!: Ô!:¸D¼NÐ!K�JØ!ð `Ø'1°!¤}Ô'B˜Ý&*¨<×+SÒ+SÑ+UÔ+UÑ&VÔ&V˜Ø+7×+RÒ+RÑ+TÔ+TÐ(à(Õ,FØ&Ø,Ø'ñ-ô -ñ Ð(õ '5°ZÐAQÐS^Ñ&_Ô&_˜à"ð TØ$¨×(CÒ(CÑ(EÔ(EÑEÐ$Ø$¨×(@Ò(@ÈUÐ(@Ñ(SÔ(SÑSÐ$àð 	ØÔ+¨D¬N¸1Ô,=ÀÑ,AÔBÐCUÀDÄNÐSTÔDUÐCUÔVˆLØ × 7Ò 7Ø#Ø%1Ð!1ð "@°\À"Ô5EÈÐ5Pð 6@Ø%1°"°#°#Ô%6¸%Ò%?ðAð !8ñ !ô !ñ Ðð Ð,Ð,Ð,s*   Á(A7 Á7CÂB<ÂCÂ!B<Â6CÂ<Cc                 ó°   — | j         d         }|j        dk    rt          |j        ¦  «        dk    rdS |j        dv rdS |j        dv o|j        d         dk    S )Nrº   Úlambdefr¦   TÚ
parameters)ÚtypedargslistÚvarargslistrÉ   )rU   r¸   rM   rñ   )r$   Útoss     r%   rã   z#Completion._is_parameter_completionW  sg   € ØŒj˜ŒnˆØŒ?˜iÒ'Ð'­C°´	©N¬N¸aÒ,?Ð,?ð �4ØŒ?˜lÐ*Ð*ð �4àŒÐ"BÐBÐ[ÀsÄyÐQSÄ}ÐX[ÒG[Ð[r'   c                 ó²  — | j         d         }|j        dk    r| j         d         }|j        dk    r¦t          | j        | j        ¦  «        }|                     dd¦  «        }|�t|j        dk    r2|j        d         }|j        dk    r|j        }n&|j        dk    r|g}ng }n|                     ¦   «         }|j	        d	         }t          ||j        |¦  «        S g S )
Néþÿÿÿrù   rÌ   Úfuncdefr­   r   Ú
decoratorsrË   r¦   )rU   r¸   rt   r…   rÏ   rÙ   rR   rÚ   Úget_decoratorsrñ   r�   rÓ   )r$   rs   r¹   r~   r{   rô   r   r   s           r%   rä   zCompletion._complete_paramsd  sç   € Ø”Z ”^ˆ
ØÔ! \Ò1Ð1Øœ BœˆJØÔ! YÒ.Ð.Ý& tÔ';¸T¼^ÑLÔLˆGØ×'Ò'¨°iÑ@Ô@ˆDØÐØ”9 Ò,Ð,Øœ aÔ(�AØ”v Ò-Ð-Ø%&¤Z˜
˜
Øœ ;Ò.Ð.Ø&' S˜
˜
à%'˜
˜
à!%×!4Ò!4Ñ!6Ô!6�JØ *Ô 0°Ô 3�å+¨G°]Ô5HÈ*ÑUÔUÐUØˆ	r'   c              #   óª   K  — |D ]M}t          |t          ¦  «        r6|                     ¦   «         r"|r|dv rt          j        | j        |¦  «        V — ŒNd S )N)ÚTrueÚFalseÚNone)rv   ÚstrÚisalphar   ÚKeywordNamer„   )r$   rµ   rÍ   r[   s       r%   rè   zCompletion._complete_keywords{  sw   è è € Ø$ð 	Ið 	IˆAÝ˜!�SÑ!Ô!ð I a§i¢i¡k¤kð IØ"ð I aÐ+DÐ&DÐ&DÝ"Ô.¨tÔ/DÀaÑHÔHÐHÐHÐHøð	Ið 	Ir'   c                 ó   — t          | j        | j        ¦  «        }t          j        d|¦  «         t          | j        | j        ¦  «        }t          || j        |¦  «        }g }|D ]}||                     ¦   «         z  }Œ|S )Nzglobal completion scope: %s)	rt   r…   rÏ   r
   Údbgr|   r†   r   Úvalues)r$   r~   Úflow_scope_nodeÚfiltersrT   Úfilters         r%   rÔ   z!Completion._complete_global_scope�  sŠ   € Ý" 4Ô#7¸¼ÑHÔHˆÝŒ	Ð/°Ñ9Ô9Ð9Ý-¨dÔ.?ÀÄÑPÔPˆÝ$ØØŒNØñ
ô 
ˆð
 ÐØð 	0ð 	0ˆFØ §¢¡¤Ñ/ÐÐØÐr'   c                 ób  — | j                              |¦  «        }t          ||¦  «        }t          j        d|d¬¦  «         d }t          |¦  «        dk    rC|\  }|                     ¦   «         r+t          |j        ¦  «        dk    r|j        d         }|dv r|}||                      |¦  «        fS )Nztrailer completion values: %sÚMAGENTA)Úcolorr¦   r   )ÚnumpyÚ
tensorflowÚ
matplotlibÚpandas)	r…   rp   r   r
   r
  rM   Ú	is_moduleÚstring_namesÚ_complete_trailer_for_values)r$   rê   Úinferred_contextr  rF   ÚvÚmodule_names          r%   râ   zCompletion._complete_trailer�  s»   € ØÔ/×>Ò>¸}ÑMÔMÐÝ#Ð$4°mÑDÔDˆÝŒ	Ð1°6ÀÐKÑKÔKÐKð ˆÝˆv‰;Œ;˜!ÒÐØ‰BˆAØ�{Š{‰}Œ}ð 2Ý�q”~Ñ&Ô&¨!Ò+Ð+Ø"#¤.°Ô"3�KØ"Ð&UÐUÐUØ&1˜à˜D×=Ò=¸fÑEÔEÐEÐEr'   c                 óV   — t          | j        | j        ¦  «        }t          ||¦  «        S r-   )rt   r…   rÏ   Úcomplete_trailer)r$   r  Úuser_contexts      r%   r  z'Completion._complete_trailer_for_values¡  s&   € Ý'¨Ô(<¸d¼nÑMÔMˆå ¨fÑ5Ô5Ð5r'   r   Tc                 ó”   — d„ |D ¦   «         }t          j        | j        || j        |¦  «        }|                     | j        |¬¦  «        S )Nc                 ó   — g | ]	}|j         ‘Œ
S r+   )rÓ   ©ra   rô   s     r%   rg   z2Completion._get_importer_names.<locals>.<listcomp>§  s   € Ð(Ð(Ð(˜Q�”Ð(Ð(Ð(r'   rÂ   )r   ÚImporterr„   r…   rT   )r$   rf   rò   rÃ   r9   s        r%   rá   zCompletion._get_importer_names¦  sN   € Ø(Ð( %Ð(Ñ(Ô(ˆÝÔ˜TÔ2°E¸4Ô;OÐQVÑWÔWˆØ×!Ò! $Ô"7ÀlÐ!ÑSÔSÐSr'   c              #   ó–  K  — | j                              | j        d¬¦  «        }|                     d¦  «        }|€dS | j                             |¦  «        }|j        d         |j        d         k    rdS |                     d¬¦  «        }t          |¦  «         |D ],}| 	                    ¦   «         D ]}|j
        dk    |k    r|V — ŒŒ-dS )zP
        Autocomplete inherited methods when overriding in child class.
        Trl   ÚclassdefNr¦   )Úis_instanceÚfunction)r†   ro   rÏ   rÙ   r…   Úcreate_valuer×   Úget_filtersÚnextr  Úapi_type)r$   r¾   rs   ÚclsÚclass_valuer  r  r3   s           r%   rà   zCompletion._complete_inherited«  së   è è € ð Ô ×6Ò6°t´~ÐX\Ð6Ñ]Ô]ˆØ×"Ò" :Ñ.Ô.ˆØˆ;ØˆFð Ô*×7Ò7¸Ñ<Ô<ˆàŒ=˜Ô˜tœ~¨aÔ0Ò0Ð0ØˆFà×)Ò)°dÐ)Ñ;Ô;ˆåˆW‰ŒˆØð 	ð 	ˆFØŸš™œð ð �à”M ZÒ/°KÒ?Ð?Ø�J�J�Jøðð	ð 	r'   c                 ó`  ‡— ˆfd„}t          |¦  «        }t          |d¬¦  «        Št           |‰¦  «        ¦  «        }|d         �!d„ |D ¦   «         }|                      |¦  «        S t	          j        d‰d         ¦  «        }|r)|                      |                     d¦  «        g¦  «        S g S )	aU  
        To make it possible for people to have completions in doctests or
        generally in "Python" code in docstrings, we use the following
        heuristic:

        - Having an indented block of code
        - Having some doctest code that starts with `>>>`
        - Having backticks that doesn't have whitespace inside it
        c              3   óð   •K  — d}‰D ]m}|s*|                      d¦  «        s|                      d¦  «        rt          j        dd|¦  «        V — nd V — t          t          j        d|¦  «        ¦  «        }Œnd S )NFz>>>ú z^( *>>> ?| +)Ú z *>>>)r—   ÚreÚsubÚboolrK   )ÚlinesÚinclude_next_lineÚlr�   s      €r%   Úiter_relevant_linesz;Completion._complete_in_string.<locals>.iter_relevant_linesÎ  s˜   øè è € Ø %ÐØð ?ð ?�Ø$ð ¨¯ª°UÑ(;Ô(;ð ¸q¿|º|ÈCÑ?PÔ?Pð Ýœ&Ð!1°2°qÑ9Ô9Ð9Ð9Ð9Ð9à�J�J�Jå$(­¬°'¸1Ñ)=Ô)=Ñ$>Ô$>Ð!Ð!ð?ð ?r'   T)Úkeependsrº   Nc                 ó   — g | ]}|€dn|‘Œ	S )Nr‘   r+   ©ra   re   s     r%   rg   z2Completion._complete_in_string.<locals>.<listcomp>Ý  s    € Ð"YÐ"YÐ"YÀ¨1¨9 4 4¸!Ð"YÐ"YÐ"Yr'   z
`([^`\s]+)r¦   )r   r	   rœ   Ú_complete_code_linesr1  ÚsearchÚgroup)r$   r¢   rY   r7  Úrelevant_code_linesrK   r�   s         @r%   r�   zCompletion._complete_in_stringÃ  sÍ   ø€ ð	?ð 	?ð 	?ð 	?ð 	?õ ˜‘”ˆÝ  °$Ð7Ñ7Ô7ˆ
Ý"Ð#6Ð#6°zÑ#BÔ#BÑCÔCÐØ˜rÔ"Ð.à"YÐ"YÐEXÐ"YÑ"YÔ"YÐØ×,Ò,Ð-@ÑAÔAÐAÝ”	˜-¨°B¬Ñ8Ô8ˆØð 	?Ø×,Ò,¨e¯kªk¸!©n¬nÐ-=Ñ>Ô>Ð>Øˆ	r'   c                 ó2  — | j         j                             d                     |¦  «        ¦  «        }t	          | j        | j         ||¬¦  «        }t          | j         |                     ¦   «         ||j        d„ | j	        ¬¦  «         
                    ¦   «         S )Nr0  )Úin_module_contextrS   rz   r�   c                  ó   — g S r-   r+   )ÚargsÚkwargss     r%   r™   z1Completion._complete_code_lines.<locals>.<lambda>ñ  s   € ¸€ r'   )r�   rr   rŽ   rD   )r„   rÎ   ÚparseÚjoinr   r…   rL   Ú
as_contextrØ   rŒ   rN   )r$   r�   rz   Úmodule_values       r%   r;  zCompletion._complete_code_linesä  sš   € ØÔ+Ô3×9Ò9¸"¿'º'À*Ñ:MÔ:MÑNÔNˆÝ&Ø"Ô2Ø Ô1Ø#Ø!ð	
ñ 
ô 
ˆõ ØÔ!Ø×#Ò#Ñ%Ô%Ø!Ø Ô(Ø :Ð :Ø”+ð
ñ 
ô 
÷ Š(‰*Œ*ð	r'   N)F)r   T)T)r(   r)   r*   r�   rN   rž   rã   rä   rè   rÔ   râ   r  rá   rà   r�   r;  r+   r'   r%   rL   rL   €   sü   € € € € € à,1ðð ð ð ð*.
ð .
ð .
ð`O-ð O-ð O-ðb\ð \ð \ðð ð ð.Ið Ið Ið ð  ð  ðFð Fð Fð$6ð 6ð 6ð
Tð Tð Tð Tð
ð ð ð ð0ð ð ðBð ð ð ð r'   rL   c                 óN   — g }| D ]}|j         j        dk    rg }Œ||j        z  }Œ |S )NÚ
small_stmt)ÚdfaÚ	from_rulerñ   )rU   rñ   r¹   s      r%   rß   rß   ö  sA   € Ø€EØð &ð &ˆ
ØŒ>Ô# |Ò3Ð3ØˆEˆEà�ZÔ%Ñ%ˆEˆEØ€Lr'   z^\w*(\'{3}|"{3}|\'|")c                 ó˜  ‡— ˆfd„}‰| j         k     rdS | j        dk    r || ¦  «        S g }| ��| j        dk    rÑd| j        v s	d| j        v r¿t          | j        ¦  «        dk    r || ¦  «        S d }| j        sS|                      ¦   «         }|�;|j        dk    s0t          d	„ |j                             ¦   «         D ¦   «         ¦  «        sd }d
                     ˆfd„|D ¦   «         ¦  «        |p| |€d
n|j        t          | ‰¦  «        z   fS | j
        ‰d         k    rn-|                     d| ¦  «         |                      ¦   «         } | �­dS )Nc                 ó|  •— i }| j         ‰d         k    r‰d         | j        z
  |d<   t          j        | j        fi |¤Ž}|sdS |                     d¦  «        }| j         ‰d         k    r(‰d         | j        |                     ¦   «         z   k     rdS t          | ‰¦  «        |                     ¦   «         d …         | |fS )Nr   r¦   Úendpos©NNN)ÚlineÚcolumnÚ_string_startrK   rÓ   r=  Úendr   )rs   rC  rK   Ústartrr   s       €r%   Úreturn_part_of_leafz<_extract_string_while_in_string.<locals>.return_part_of_leaf  sÁ   ø€ ØˆØŒ9˜ œÒ#Ð#Ø'¨œ{¨T¬[Ñ8ˆF�8ÑÝÔ# D¤JÐ9Ð9°&Ð9Ð9ˆØð 	$Ø#Ð#Ø—’˜A‘”ˆØŒ9˜ œÒ#Ð#¨°¬°d´kÀEÇIÂIÁKÄKÑ6OÒ(OÐ(OØ#Ð#Ý$ T¨8Ñ4Ô4°U·Y²Y±[´[°\°\ÔBÀDÈ%ÐOÐOr'   rO  rY   rÒ   ú"ú'r¦   r3   c              3   ó   K  — | ]}|d v V — Œ	dS )ÚrubfNr+   r:  s     r%   r¶   z2_extract_string_while_in_string.<locals>.<genexpr>  s&   è è € Ð"RÐ"R°1 1¨ ;Ð"RÐ"RÐ"RÐ"RÐ"RÐ"Rr'   r0  c              3   ó8   •K  — | ]}t          |‰¦  «        V — Œd S r-   r   )ra   r6  rr   s     €r%   r¶   z2_extract_string_while_in_string.<locals>.<genexpr>#  s.   øè è € ÐKÐK¸qÕ-¨a°Ñ:Ô:ÐKÐKÐKÐKÐKÐKr'   r   )r×   rR   rÓ   rM   ÚprefixrÖ   ÚallrJ   rE  r   rP  Úinsert)rs   rr   rU  ÚleavesÚprefix_leafs    `   r%   r›   r›     sµ  ø€ ð
Pð 
Pð 
Pð 
Pð 
Pð �$”.Ò Ð ØÐà„y�HÒÐØ"Ð" 4Ñ(Ô(Ð(à€FØ
Ñ
ØŒ9˜Ò$Ð$¨#°´Ð*;Ð*;¸sÀdÄjÐ?PÐ?PÝ�4”:‰Œ Ò"Ð"Ø*Ð*¨4Ñ0Ô0Ð0ØˆKØ”;ð 'Ø"×4Ò4Ñ6Ô6�ØÐ&¨+Ô*:¸fÒ*DÐ*DÝ"Ð"RÐ"R¸Ô8I×8OÒ8OÑ8QÔ8QÐ"RÑ"RÔ"RÑRÔRð +Eà"&�Kð —’ÐKÐKÐKÐKÀFÐKÑKÔKÑKÔKØÐ#˜tØ"Ð*��°Ô0AÝ'¨¨hÑ7Ô7ñ8ðð ð Œ9˜ œÒ#Ð#ð
 Ø�Š�a˜ÑÔÐØ×%Ò%Ñ'Ô'ˆð1 Ñ
ð2 Ðr'   c                 ó�  — g }|D ]s}|                      | j        ¬¦  «        D ]}||                     ¦   «         z  }Œ|                     ¦   «         s(t	          |t
          ¦  «        r|t          | |¦  «        z  }Œtt          |¦  «        }|D ];}||vr5|                      | j        ¬¦  «        D ]}||                     ¦   «         z  }ŒŒ<|S )N)Úorigin_scope)r(  rn   r  Úis_stubrv   r   Ú_complete_getattrr   )r  r  rT   rÓ   r  Úpython_valuesre   s          r%   r  r  3  sî   € ØÐØð Gð GˆØ×'Ò'°\Ô5KÐ'ÑLÔLð 	0ð 	0ˆFØ §¢¡¤Ñ/ÐÐà�}Š}‰Œð 	G¥:¨eµ\Ñ#BÔ#Bð 	GØÕ 1°,ÀÑ FÔ FÑFÐøå" 6Ñ*Ô*€MØð 4ð 4ˆØ�Fˆ?ˆ?ØŸ-š-°\Ô5K˜-ÑLÔLð 4ð 4�Ø  F§M¢M¡O¤OÑ3Ð Ð øØÐr'   c                 óT  — |                      d¦  «        p|                      d¦  «        }t          j        d„ |D ¦   «         ¦  «        }|D �][}|j        }|�|j        dk    rŒ|                     ¦   «         D �]-}|j        dk    rŒ|j        d         }|j        dk    rŒ(|j        d	         }|j        d         }	t          |j        ¦  «        d
k    s|j        dk    s|j        dk    rŒq|	j        d         }
|
j        dk    st          |
j        ¦  «        dk     rŒ¢| 	                    ¦   «         }|
j        d	         }|
j        d
         }| 
                    ||j        ¦  «        }t          d„ |D ¦   «         ¦  «        s�Œ|                     |¦  «        }t          | |¦  «        c c S �Œ]g S )aV  
    A heuristic to make completion for proxy objects work. This is not
    intended to work in all cases. It works exactly in this case:

        def __getattr__(self, name):
            ...
            return getattr(any_object, name)

    It is important that the return contains getattr directly, otherwise it
    won't work anymore. It's really just a stupid heuristic. It will not
    work if you write e.g. `return (getatr(o, name))`, because of the
    additional parentheses. It will also not work if you move the getattr
    to some other place that is not the return statement itself.

    It is intentional that it doesn't work in all cases. Generally it's
    really hard to do even this case (as you can see below). Most people
    will write it like this anyway and the other ones, well they are just
    out of luck I guess :) ~dave.
    Ú__getattr__Ú__getattribute__c              3   ó>   K  — | ]}|                      ¦   «         V — Œd S r-   )Úinfer)ra   r3   s     r%   r¶   z$_complete_getattr.<locals>.<genexpr>Z  s>   è è € ð #ð #àð 	�
Š
‰Œð#ð #ð #ð #ð #ð #r'   Nrÿ   Úreturn_stmtr¦   Ú	atom_exprr   é   r3   ÚgetattrrÊ   é   c              3   ó,   K  — | ]}|j         d k    V — ŒdS )ÚparamN)r*  r!  s     r%   r¶   z$_complete_getattr.<locals>.<genexpr>y  s)   è è € Ð@Ð@°�q”z WÒ,Ð@Ð@Ð@Ð@Ð@Ð@r'   )Úget_function_slot_namesr   Ú	from_setsrn   rR   Úiter_return_stmtsrÚ   rM   rÓ   rF  Úgotor×   rÜ   Ú
infer_noder  )r  Úinstancerf   Ú	functionsÚfuncrn   rj  rk  ÚatomrÄ   rÊ   r~   Úobject_nodeÚ	name_nodeÚ	name_listÚobjectss                   r%   rc  rc  D  sö  € ð( ×-Ò-¨mÑ<Ô<ð EØ×0Ò0Ð1CÑDÔDð 
åÔ"ð #ð #àð#ñ #ô #ñ ô €Ið ð ";ñ ";ˆØ”Nˆ	ØÐ 	¤°)Ò ;Ð ;Øà$×6Ò6Ñ8Ô8ð 	;ñ 	;ˆKð Ô =Ò0Ð0ØØ#Ô,¨QÔ/ˆIØŒ~ Ò,Ð,ØØÔ% aÔ(ˆDØÔ(¨Ô+ˆGÝ�9Ô%Ñ&Ô&¨!Ò+Ð+¨t¬y¸FÒ/BÐ/BØ”z YÒ.Ð.ØØÔ& qÔ)ˆGØŒ|˜yÒ(Ð(­C°Ô0@Ñ,AÔ,AÀAÒ,EÐ,EØØ—o’oÑ'Ô'ˆGØ!Ô*¨1Ô-ˆKð  Ô(¨Ô+ˆIØŸš Y°	Ô0CÑDÔDˆIÝÐ@Ð@°iÐ@Ñ@Ô@Ñ@Ô@ð Ùð
 ×(Ò(¨Ñ5Ô5ˆGÝ# L°'Ñ:Ô:Ð:Ð:Ð:Ð:Ð:ñ;	;ð< €Ir'   Fc	           
   #   óâ  K  — |d d…         D ]l}	g }
|D ]E}|	|j         k    r8|j        �|j        dv r|rŒ |
t          ||                     ¦   «         ¦  «        z  }
ŒFt          j        d|
|d d…         ¦  «         |
}Œm|d                              ¦   «         }|D ]Ø}|j                              ¦   «         }|rt          j	        |||¬¦  «        s|s¢||k    rœt          |t          ¦  «        rd„ |                     ¦   «         D ¦   «         }n|g}|rt          |¦  «        }|D ]Q}|r't          j        | |d t          |¦  «        |¬¦  «        }nt          j        | |¦  «        }|r||j        k    r|V — ŒRŒÙd S )Nrº   )ÚmoduleÚ	namespacezdot lookup on search %s from %sé
   rC   c                 ó   — g | ]	}|j         ‘Œ
S r+   r`   )ra   r  s     r%   rg   z$search_in_module.<locals>.<listcomp>›  s   € Ð3Ð3Ð3 A˜œÐ3Ð3Ð3r'   )rU   Úlike_name_lengthrE   )r#   rP   r*  r  ri  r
   r
  rJ   r   rK   rv   r   r   r   rL   rM   ÚNamerR   )rS   rq   rf   Úwanted_namesÚwanted_typerN   rD   Úignore_importsÚconvertÚsÚ	new_namesrô   Ú	last_namerY   Ún2Údef_s                   r%   Úsearch_in_modulerŽ  „  sä  è è € ð ˜#˜2˜#Ôð ð ˆØˆ	Øð 	ð 	ˆAØ�A”MÒ!Ð!Ø”;Ð*¨q¬zÐ=TÐ/TÐ/TØ*ð 0UàØÕ-Ø"Ø—G’G‘I”Iñô ñ �	øõ 	Œ	Ð3°YÀÀcÀrÀcÄ
ÑKÔKÐKØˆˆà˜RÔ ×&Ò&Ñ(Ô(€IØð ð ˆØ”×$Ò$Ñ&Ô&ˆØð 	�œ f¨i¸uÐEÑEÔEð 	Øð	Ø$*¨iÒ$7Ð$7Ý˜!�]Ñ+Ô+ð Ø3Ð3¨¯ª©¬Ð3Ñ3Ô3��à˜�Øð -Ý% eÑ,Ô,�Øð ð �Øð =Ý"Ô-Ø'¨Ø"Ý),¨Y©¬Ø!&ð	ñ ô �D�Dõ #œ<¨¸Ñ<Ô<�DØ"ð  k°T´YÒ&>Ð&>Ø�J�J�Jøøð+ð r'   c                 ód  — g }| j         dv r¤t          | j        ¦  «        D ]�\  }}|j         dk    rT|dk    r3| j        |dz
           j         dk    r| j        |dz
           j        dk    rŒI|                     |j        ¦  «         Œd|j         dv r"|                     t          |¦  «        ¦  «         Œ�|S )N)r’   r“   Údotted_as_nameÚimport_as_namer3   r¦   Úkeywordr»   )r‘  r�  )rR   r.   rÚ   rÓ   rÛ   rŸ   r    )r{   rW   ÚindexÚchilds       r%   r    r    ®  sÉ   € Ø€Nà„yÐ^Ð^Ð^Ý% d¤mÑ4Ô4ð 	Eð 	E‰LˆE�5ØŒz˜VÒ#Ð#Ø˜A’I�I $¤-°¸±	Ô":Ô"?À9Ò"LÐ"LØ œM¨%°!©)Ô4Ô:¸dÒBÐBØØ×%Ò% e¤kÑ2Ô2Ð2Ð2Ø”ÐCÐCÐCØ×%Ò%Õ&<¸UÑ&CÔ&CÑDÔDÐDøàÐr'   )FFFF)Cr1  Útextwrapr   Útypingr   Úinspectr   Úparso.python.tokenr   Úparso.pythonr   Ú
parso.treer   Úparsor	   Újedir
   r   Újedi.apir   r   r   Újedi.api.stringsr   Újedi.api.file_namer   Újedi.inferencer   Újedi.inference.base_valuer   Újedi.inference.helpersr   r   Újedi.inference.contextr   Újedi.inference.valuer   Újedi.inference.docstring_utilsr   Újedi.inference.namesr   r   Ú!jedi.inference.gradual.conversionr   r   Újedi.parser_utilsr   Újedi.pluginsr   r    r;   rA   r]   rj   rt   r|   Údecorater�   rL   rß   ÚcompilerR  r›   r  rc  rŽ  r    r+   r'   r%   ú<module>r¬     s5  ðØ 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à /Ð /Ð /Ð /Ð /Ð /Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø "Ð "Ð "Ð "Ð "Ð "Ø .Ð .Ð .Ð .Ð .Ð .Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ IØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø -Ð -Ð -Ð -Ð -Ð -Ø :Ð :Ð :Ð :Ð :Ð :Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð&ð &ð &ð &ð &Ð*ñ &ô &ð &ð
	3ð 	3ð 	3ðð ð ð,ð ð ð>;ð ;ð ;ð
/ð /ð /ðð ð ð €ÔÑÔðð ñ Ôððsð sð sð sð sñ sô sð sðlð ð ð �”
Ð3Ñ4Ô4€ð-ð -ð -ð`ð ð ð"=ð =ð =ðB 9>Ø38ð'ð 'ð 'ð 'ðTð ð ð ð r'   