+
    e7j                        ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHtHt ^ RI H!t! ^ RI"H#t# ^ RI$H%t% ^ RI&H't'H(t( ^ RI)H*t*H+t+ ^ RI,H-t- ^ RI.H/t/  ! R R]'4      t0R t1R t2R t3R t4R t5R  t6]/Pn                  ! 4       R! 4       t8 ! R" R#4      t9R$ t:] Pv                  ! R%4      t<R& t=R' t>R( t?R*R) lt@R# )+    N)dedent)	Parameter)PythonTokenTypes)tree)search_ancestor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                   &   a  ] tR t^t o R tRtV tR# )ParamNameWithEqualsc                (    V P                   R ,           # )=)string_name)selfs   &5/usr/lib/python3/dist-packages/jedi/api/completion.pyget_public_name#ParamNameWithEquals.get_public_name   s    #%%     N)__name__
__module____qualname____firstlineno__r&   __static_attributes____classdictcell____classdict__s   @r%   r    r       s     & &r(   r    c              #   P  "   V  F  p\        VP                  4       F  w  rEVP                  pWA8  d   V\        P                  8X  d   K.  V\        P                  \        P
                  39   g   KU  VP                  V9  g   Kh  \        VP                  4      x  K  	  K  	  R # 5iN)		enumerateparamskindr   POSITIONAL_OR_KEYWORDKEYWORD_ONLYnamer    _name)
signaturespositional_countused_kwargscall_sigipr6   s   &&&    r%   _get_signature_param_namesrA   "   sw     hoo.DA66D#	0O0O(O	779O9OPPk1)!''22 / s   A+B&2B&!B&c                 ,   V'       d   R # R pV  F  p\        VP                  4       FZ  w  rVVP                  pV\        P                  J d     R# WQ8  g   K1  V\        P
                  \        P                  39   g   KX  Rp M	  V'       d   K   V# 	  V# )TF)r4   r5   r6   r   VAR_POSITIONALr7   POSITIONAL_ONLY)r;   r<   r=   must_be_kwarg	signaturer?   r@   r6   s   &&&     r%   _must_be_kwargrG   .   s    M	i../DA66Dy/// $)2Q2Q2;2K2K2M *M % 0 }   r(   c           
   #   F  "   \        4       p\        P                  '       d   VP                  4       pV F  pVP                  p\        P                  '       d   VP                  4       p\
        P                  ! WVR 7      '       g   KU  \        P                  ! V VV\        V4      VVR7      p	V	P                  V	P                  3p
W9  g   K  VP                  V
4       VP                  pVe(   VP                  4       pVe   VP                  R8X  d   K  V	x  K  	  R# 5i)fuzzy)is_fuzzycached_nameNdel_stmt)setr   case_insensitive_completionlowerr#   r   matchr   
Completionlenr9   completeadd	tree_nameget_definitiontype)inference_statecompletion_namesstack	like_namerJ   rL   comp_dctr9   stringnewkrV   
definitions   &&&&&&       r%   filter_namesrb   D   s     uH+++OO%	 !!///\\^F==%88$$I'C 3<<(A Q NN	(!*!9!9!;J!-*//Z2O 	+ !s   BD!
A D!AD!c                     V Uu0 uF  q"P                   kK  	  ppV  Uu. uF  qDP                   V9  g   K  VNK  	  up# u upi u upi r3   )r9   )completionsother_completionsdnamescs   &&   r%   _remove_duplicatesri   `   sB    ./.VV.E/":{!ffE&9AA{:: 0:s   ?AAc                ^    V P                   P                  VRR7      pV P                  V4      # )zC
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_contextrs   e   s1     ##99(UY9ZD((..r(   c                     V P                  VR R7      p\        V\        P                  \        P                  34      '       g   VP
                  pK>  V# )Trk   )rn   
isinstancer   ScopeFlowparent)module_noderq   nodes   && r%   get_flow_scope_noder{   m   s?    ,,X,MD

DII677{{Kr(   c                     . # r3   r)   )contextfunction_namedecorator_nodess   &&&r%   complete_param_namesr   u   s	     Ir(   c                   z   a  ] tR t^|t o RR ltR tR tR tR tR t	R t
R tR	 tRR
 ltRR ltR tR tRtV tR# )rR   c                    Wn         W n        VP                  V n        W0n        \
        P                  ! V P                  W44      V n        W@n        WPn	        W`n
        R # r3   )_inference_state_module_contextrm   _module_node_code_linesr   get_on_completion_name
_like_name_original_position_signatures_callback_fuzzy)r$   rY   rp   
code_linesrq   signatures_callbackrJ   s   &&&&&&&r%   __init__Completion.__init__}   sQ     /-*44% "889J9JJa #+$7!r(   c                ,   V P                   P                  V P                  R R7      p\        WP                  4      w  r#p\	        V P
                  V P                  T;'       g    TV P                  Vf   RMWB,           V P                  R7      pVek   V'       gc   \        \        V P                  V P
                  W4VV P                  V P                  V P                  V P                  V P                  4
      4      pVe#   V'       g   RV9   d   V P                  W24      pV# V P                  V4      w  rg\        \        V P                  VV P                   V P                  V P                  VR7      4      p\#        WX4      \%        VR R7      ,           # )Trk   NrI   
)rL   c                     V P                   P                  R 4      V P                   P                  R4      V P                   P                  4       3# )___)r9   
startswithrP   )xs   &r%   <lambda>%Completion.complete.<locals>.<lambda>   s8    1B1B41H121B1B31G121Ar(   )key)r   rn   r   _extract_string_while_in_stringr   r   r   r   listr   r   r   r   _complete_in_string_complete_pythonrb   r[   ri   sorted)	r$   rr   r^   
start_leafquoteprefixed_completionsrL   rZ   rd   s	   &        r%   rT   Completion.complete   su     66##! 7 
 %DDJaJa$b!E,  $##ND++ 
 &:#'(:%%t';';ZPV!:!:  $"9"9	) $  'DFN'+'?'?
'S$''(,(=(=d(C%<(=(=?O(,

DOO(,N O 3A[ 'A BB	
r(   c                d  a V P                   P                  pR;V n        pV P                  ^ ,          V P                  ^,          \	        V P
                  4      ,
          3V n        Rp \        P                  ! W P                  WP                  4      ;V n        p\        TP                  4       4      oRS9   EdV   T P                   P#                  T P                  RR7      pTP%                  4       pT P                  ^,          pTP&                  T P                  u;8:  d   TP(                  8:  g   M TP&                  ^,          pTe   Tp	 \+        T	RRRR	R
4      p	T	f   MT	P,                  p
T
R
8X  d=   T	P.                  ^ ,          p\1        T\2        4      '       d   TP                  R,           p
T	P&                  ^,          T8X  g   K  T
R8X  d   SRR.,          oK  T
R	8X  d   S. RO,          oK  T
R8X  g   K  SP5                  R4       K  . pRp\6        ;QJ d=    T3R l\8        P:                  \8        P<                  3 4       F  '       g   K   RM2	  RM.! T3R l\8        P:                  \8        P<                  3 4       4      '       Ed2   T Uu. uF  qP>                  NK  	  pp\A        T4      pT'       d,   TR,          R9   d   T\        T PC                  RR7      4      3# RT9   dF   \E        TRT9   4      w  ppRT9   ;'       d    RT9   '       * pYPG                  TTTR7      ,          pEMTR,          R9   d   TR,          R8X  ds   T P                   P#                  T P                  4      pTP,                  R8X  d   TP%                  4       pT PI                  TP%                  4       4      w  ppTT,          pMT PK                  4       '       d   YPM                  T4      ,          pMTR,          R9   d   TR,          R9   d   T PN                  ! T P                  !  pT'       d^   T^ ,          PP                  p\        TPS                  4       4      pTPU                  4       pT\W        TTT4      ,          p\Y        TTT4      pT'       g/   YP                  4       ,          pYPC                  RR7      ,          pT'       g   T P                  T P                  ^ ,          ^,
          ,          RT P                  ^,           pYP[                  ST'       * ;'       g    TR,          R9   ;'       d	    TRR R8g  '       * R7      ,          pYL3#   \        P                   dB   pTP                  P                  pTR8X  d
   T. 3u Rp?# Y@P                  4       3u Rp?# Rp?ii ; iu upi ) 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 =
N.ifTrk   if_stmtfor_stmt
while_stmttry_stmt
error_node_stmtelifelseFc              3   ,   <"   T F	  qS9   x  K  	  R # 5ir3   r)   ).0tallowed_transitionss   & r%   	<genexpr>.Completion._complete_python.<locals>.<genexpr>  s       L 2KA'' 2Ks   )is_functionimport_stmtimport_fromimportonly_modules	endmarkerz 	.;z...)only_values)exceptfinallyr   )asdefclass)trailerdotted_name)(,)r   arglist	decorator).r   grammarr[   r   rS   r   	_positionr   get_stack_at_positionr   OnErrorLeaf
error_leafvalue_complete_global_scoper   )_allowed_transition_names_and_token_typesr   rn   get_previous_leaf	start_posend_posr   rX   childrenru   r   appendanyr   NAMEINDENTnonterminal_gather_nodes_complete_inheritedr   _get_importer_names_complete_trailer_is_parameter_completion_complete_paramsr   _call_detailsiter_used_keyword_argumentscount_positional_argumentsrA   rG   _complete_keywords)r$   rr   r   r[   rL   er   previous_leafindentstmttype_firstrZ   kwargs_only
stack_nodenonterminalsnodeslevelrg   r   dotnr;   call_detailsr=   r<   current_liner   s   &&                         @r%   r   Completion._complete_python   s2    ''//!!
U##A&##A&T__)==
 	>!(!>!>))4" DJ @@BC 	 &&$$::4>>\`:aD 224M^^A&FNNdnnDD*($*i\:$D | IIE, $a 0%eT22$)KK'$9E~~a(F2 I-/FF3CC/"j0/3PP/"j0/66v>3 L2B2G2G2B2I2I2K L333 L2B2G2G2B2I2I2K L L L FKKUz22ULK!%(Er&<< #D)A)Ad)A)S$TTT,.1%,9VWu$1\$A$W$WhRWFWX $<$<!- %= %  
 b!%??E"IQTDT''==dnnM88{* 002C!%!7!78M8M8O!PQ A% ..00 $9$9$$??  9
*(,0SS!%!:!:DNN!KJ!'1!}'B'B&*<+S+S+U&V+7+R+R+T((,F&,'- ( '5ZAQS^&_"$(C(C(EE$$(@(@U(@(SS$++DNN1,=,ABCUDNNSTDUVL 7 7#%1!1 "@ "@\"5E5P 6@ 6@%1"#%6%%?A !8 !  ,,g "" 	>LL&&E| #B&  ; ; ===	>h Ls0   )2U V-V*) V%	V*V%V*%V*c                   V P                   R,          pVP                  R8X  d   \        VP                  4      ^8X  d   R# VP                  R9   d   R# VP                  R9   ;'       d    VP                  R,          R8H  # )   lambdefT
parametersr   r   )typedargslistvarargslist)r[   r   rS   r   )r$   toss   & r%   r   #Completion._is_parameter_completionG  sg    jjn??i'C		Na,? ??l* "BB[[syyQS}X[G[[r(   c                   V P                   R,          pVP                  R8X  d   V P                   R,          pVP                  R8X  d   \        V P                  V P                  4      p\        VRR4      pVe   VP                  R8X  dJ   VP                  ^ ,          pVP                  R8X  d   VP                  pM(VP                  R8X  d   V.pM. pMVP                  4       pVP                  ^,          p\        W7P                  V4      # . # )   r   funcdefr   
decoratorsr   r   )r[   r   rs   r   r   r   rX   r   get_decoratorsr   r   r   )r$   rr   r   r}   rz   r   r   r~   s   &&      r%   r   Completion._complete_paramsT  s    ZZ^
!!\1BJ!!Y.&t';';T^^LG"4yAD99,a(Avv-%&ZZ
;.&'S
%'
!%!4!4!6J * 0 0 3+G5H5H*UU	r(   c              #     "   V Fg  p\        V\        4      '       g   K  VP                  4       '       g   K3  V'       d
   VR9   g   KD  \        P                  ! V P
                  V4      x  Ki  	  R# 5i)TrueN)r  FalseNone)ru   strisalphar   KeywordNamer   )r$   r   r   r`   s   &&& r%   r   Completion._complete_keywordsk  sJ     $A!S!!aiikk"a+D&D"..t/D/DaHH %s   A2A2A2 A2	)A2c                $   \        V P                  V P                  4      p\        P                  ! R V4       \        V P                  V P                  4      p\        VV P                  V4      p. pV F  pWEP                  4       ,          pK  	  V# )zglobal completion scope: %s)	rs   r   r   r
   dbgr{   r   r   values)r$   r}   flow_scope_nodefiltersrZ   filters   &     r%   r   !Completion._complete_global_scopeq  s{    "4#7#7H		/9-d.?.?P$NN

 F/ r(   c                h   V P                   P                  V4      p\        W!4      p\        P                  ! R VRR7       Rp\        V4      ^8X  dQ   Vw  pVP                  4       '       d7   \        VP                  4      ^8X  d   VP                  ^ ,          pVR9   d   TpW@P                  V4      3# )ztrailer completion values: %sMAGENTA)colorN)numpy
tensorflow
matplotlibpandas)	r   ro   r   r
   r  rS   	is_modulestring_names_complete_trailer_for_values)r$   r   inferred_contextr  rL   vmodule_names   &&     r%   r   Completion._complete_trailer  s    //>>}M#$4D		16K v;!BA{{}}q~~&!+"#.."3K"&UU&1==fEEEr(   c                X    \        V P                  V P                  4      p\        W!4      # r3   )rs   r   r   complete_trailer)r$   r  user_contexts   && r%   r  'Completion._complete_trailer_for_values  s#    '(<(<dnnM55r(   c                    V Uu. uF  qDP                   NK  	  pp\        P                  ! V P                  WP                  V4      pVP                  V P                  VR 7      # u upi )r   )r   r   Importerr   r   rZ   )r$   rg   r   r   r   r?   s   &&&&  r%   r   Completion._get_importer_names  sZ    "'(%Q%(T22E;O;OQVW!!$"7"7l!SS )s   A$c              #    "   V P                   P                  V P                  RR7      p\        P                  ! VR4      pVf   R# V P
                  P                  V4      pVP                  ^,          VP                  ^,          8  d   R# VP                  RR7      p\        V4       V F4  pVP                  4        F  pVP                  R8H  V8X  g   K  Vx  K  	  K6  	  R# 5i)z@
Autocomplete inherited methods when overriding in child class.
Trk   classdefN)is_instancefunction)r   rn   r   r   r   r   create_valuer   get_filtersnextr  api_type)r$   r   rr   clsclass_valuer  r  r9   s   &&      r%   r   Completion._complete_inherited  s        66t~~X\6]""44; **77<==t~~a00))d);WFMMZ/K?J ( s   CC&C&c                b  a V3R lp\        V4      p\        VRR7      o\        V! S4      4      pVR,          e(   V Uu. uF
  qUf   RMTNK  	  ppV P                  V4      # \        P
                  ! RSR,          4      pV'       d"   V P                  VP                  ^4      .4      # . # u upi )a  
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     <"   R pS Fx  pV'       g/   VP                  R4      '       g   VP                  R4      '       d   \        P                  ! RRV4      x  MRx  \        \        P                  ! RV4      4      pKz  	  R# 5i)Fz>>> z^( *>>> ?| +) Nz *>>>)r   resubboolrQ   )linesinclude_next_linelr   s   &  r%   iter_relevant_lines;Completion._complete_in_string.<locals>.iter_relevant_lines  sd      %$U(;(;q||C?P?P&&!12q99J$('1)=$>!  s   &BBABT)keependsr   z
`([^`\s]+)r   )r   r	   r   _complete_code_linesr6  searchgroup)r$   r   r^   r<  relevant_code_linesrh   rQ   r   s   &&&    @r%   r   Completion._complete_in_string  s    	?  $7
"#6z#BCr".EX"YEX94!#;EX"Y,,-@AA		-B8,,ekk!n-=>>	 #Zs    B,c           	     H   V P                   P                  P                  R P                  V4      4      p\	        V P
                  V P                   VVR7      p\        V P                   VP                  4       VVP                  R V P                  R7      P                  4       # )r5  )in_module_contextrY   ry   r   c                      . # r3   r)   )argskwargss   *,r%   r   1Completion._complete_code_lines.<locals>.<lambda>  s    r(   )r   rq   r   rJ   )r   r   parsejoinr   r   rR   
as_contextr   r   rT   )r$   r   ry   module_values   &&  r%   r?  Completion._complete_code_lines  s    ++3399"''*:MN&"22 11#!	
 !!##%! (( :++
 (*	r(   )
r   r   r   r   r   r   r   r   r   r[   N)F)r   T)T)r*   r+   r,   r-   r   rT   r   r   r   r   r   r   r  r   r   r   r?  r.   r/   r0   s   @r%   rR   rR   |   sS      )
VM-^\.I F$6
T
0@ r(   rR   c                 ~    . pV  F4  pVP                   P                  R 8X  d   . pK"  WP                  ,          pK6  	  V# )
small_stmt)dfa	from_ruler   )r[   r   r   s   &  r%   r   r     s=    E
>>##|3E%%%E	 
 Lr(   z^\w*(\'{3}|"{3}|\'|")c                   a V3R  lpSV P                   8  d   R# V P                  R8X  d	   V! V 4      # . pV Ee   V P                  R8X  Ed4   RV P                  9   g   RV P                  9   Ed   \        V P                  4      ^8  d	   V! V 4      # RpV P                  '       g   V P                  4       pVe|   VP                  R8w  gk   \        ;QJ d4    R VP                  P                  4        4       F  '       d   K   RM)	  R	M%! R VP                  P                  4        4       4      '       g   RpR
P                  V3R lV 4       4      T;'       g    T Vf   R
MVP                  \        V S4      ,           3# V P                  S^ ,          8w  d   M%VP                  ^ V 4       V P                  4       p EK  R# )c                   < / pV P                   S^ ,          8X  d   S^,          V P                  ,
          VR&   \        P                  ! V P                  3/ VB pV'       g   R# VP                  ^ 4      pV P                   S^ ,          8X  d0   S^,          V P                  VP                  4       ,           8  d   R# \        V S4      VP                  4       R W3# )r   endposNNNN)linecolumn_string_startrQ   r   rA  endr   )rr   rH  rQ   startrq   s   &   r%   return_part_of_leaf<_extract_string_while_in_string.<locals>.return_part_of_leaf  s    99#'{T[[8F8##DJJ9&9##A99#dkkEIIK6O(O##$T84UYY[\BDOOr(   Nr^   r   "'r9   c              3   *   "   T F	  qR 9   x  K  	  R# 5i)rubfNr)   )r   rh   s   & r%   r   2_extract_string_while_in_string.<locals>.<genexpr>  s     "R8Q1;8Qs   FTr5  c              3   <   <"   T F  p\        VS4      x  K  	  R # 5ir3   r   )r   r;  rq   s   & r%   r   rb    s     KFq-a::Fs   rV  )r   rX   r   rS   prefixr   allrP   rK  r   rW  insert)rr   rq   r\  leavesprefix_leafs   &f   r%   r   r     sp   
P $.. yyH"4((F

99$#*;sdjj?P4::"*400K;;;"446&+*:*:f*D"s"R8I8I8O8O8Q"Rsss"R8I8I8O8O8Q"RRR"&K KFKK##t"*0A0A'h78  99#
 a%%'r(   c                    . pV F~  pVP                  V P                  R 7       F  pW$P                  4       ,          pK  	  VP                  4       '       d   KT  \	        V\
        4      '       g   Kl  V\        W4      ,          pK  	  \        V4      pV FD  pWa9  g   K  VP                  V P                  R 7       F  pW$P                  4       ,          pK  	  KF  	  V# ))origin_scope)r,  rm   r  is_stubru   r   _complete_getattrr   )r"  r  rZ   r   r  python_valuesrh   s   &&     r%   r!  r!  "  s    ''\5K5K'LF/ M }}:e\#B#B 1, FF  #6*M?--\5K5K-L MMO3  M  r(   c                2   VP                  R4      ;'       g    VP                  R4      p\        P                  ! R V 4       4      pV EF  pVP                  pVe   VP                  R8w  d   K'  VP                  4        EF  pVP                  R8w  d   K  VP                  ^,          pVP                  R8w  d   K=  VP                  ^ ,          pVP                  ^,          p	\        VP                  4      ^8w  g#   VP                  R8w  g   VP                  R8w  d   K  V	P                  ^,          p
V
P                  R	8w  g   \        V
P                  4      ^8  d   K  VP                  4       pV
P                  ^ ,          pV
P                  ^,          pVP                  WP                  4      p\        ;QJ d    R
 V 4       F  '       g   K   RM	  RM! R
 V 4       4      '       g   EKo  VP                  V4      p\        W4      u u # 	  EK  	  . # )a  
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   B   "   T F  pVP                  4       x  K  	  R # 5ir3   )infer)r   r9   s   & r%   r   $_complete_getattr.<locals>.<genexpr>I  s      #D 	

s   r   return_stmt	atom_exprr9   getattrr   c              3   >   "   T F  qP                   R 8H  x  K  	  R# 5i)paramN)r.  )r   r   s   & r%   r   rs  h  s     @izzW,is   TF)get_function_slot_namesr   	from_setsrm   rX   iter_return_stmtsr   rS   r   rL  gotor   r   
infer_noder!  )r"  instancerg   	functionsfuncrm   rt  ru  atomr   r   r}   object_node	name_node	name_listobjectss   &&              r%   rl  rl  3  s   ( --m< E E001CD 
"" ## I NN		) ;$668K =0#,,Q/I~~,%%a(D((+G9%%&!+tyyF/BzzY.&&q)G||y(C0@0@,AA,Eoo'G!**1-K  ((+IY0C0CDI3@i@333@i@@@
 ((5G#L::; 9 F Ir(   c	           
   #     "   VR R  F  p	. p
V F_  pWP                   8X  g   K  VP                  e   VP                  R9   d   V'       d   K>  V
\        VVP	                  4       4      ,          p
Ka  	  \
        P                  ! RWR,          4       T
pK  	  VR,          P                  4       pV EF  pVP                   P                  4       pV'       d   \        P                  ! WVR7      '       g   V'       d   KN  W8X  g   KV  \        V\        4      '       d*   VP	                  4        Uu. uF  qP                  NK  	  ppMV.pV'       d   \        V4      pV Fd  pV'       d%   \        P                  ! WR \!        V4      VR7      pM\        P"                  ! W4      pV'       d   VVP$                  8X  g   K`  Vx  Kf  	  EK  	  R # u upi 5i)Nzdot lookup on search %s from %s:N
   NrI   )r[   like_name_lengthrK   r   )module	namespace)r#   rV   r.  r!  rr  r
   r  rP   r   rQ   ru   r   r9   r   r   rR   rS   NamerX   )rY   rp   rg   wanted_nameswanted_typerT   rJ   ignore_importsconverts	new_namesr   	last_namer^   r  n2def_s   &&&&&&&&&        r%   search_in_moduler  s  sg     #2	AMM!;;*qzz=T/T*-"GGI 	  			3Yc
K  R &&(I$$&fuEExF$7!]++)*3A3%e,"--'"),Y!&	D #<<<D"kTYY&>J  
 4s<   G&GB-G=G(G-GGAG)G<G)FFFF)Ar6  textwrapr   inspectr   parso.python.tokenr   parso.pythonr   
parso.treer   r   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    rA   rG   rb   ri   rs   r{   decorater   rR   r   compilerY  r   r!  rl  r  r)   r(   r%   <module>r     s    	   /  ,       * 1 " . I 5 - : @ K 3 '&* &
	3,8;
/  f fR 

34-`"=@'r(   