+
    eZ                     d   ^ RI Ht ^ RIHt ^ RIHtHt ^ RIHt ^ RI	H
t
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 R t ! R R4      t ! R R]4      t ! R R]4      t ! R R4      t  ! R R] ]4      t! ! R R]4      t" ! R R4      t# ! R R]#4      t$ ! R R]$]4      t% ! R  R!]%4      t& ! R" R#]&4      t' ! R$ R%]&4      t( ! R& R']#4      t) ! R( R)]4      t* ! R* R+]*4      t+ ! R, R-4      t, ! R. R/4      t- ! R0 R1]-]"4      t. ! R2 R3] ]4      t/ ! R4 R5]-]/4      t0R6# )7    )abstractmethod)	Parameter)OptionalTuple)search_ancestor)find_statement_documentationclean_scope_docstring)unite)ValueSet	NO_VALUES)inference_state_method_cache)
docstrings)memoize_method)deep_ast_copyinfer_call_of_leaf)plugin_managerc                 j    R pV  F*  pV'       d
   VR,          pWP                  4       ,          pK,  	  V# ) z 
------------------------------
)	py__doc__)namesdocnames   &  6/usr/lib/python3/dist-packages/jedi/inference/names.py_merge_name_docsr      s7    
C ))C~~  J    c                      a  ] tR t^t o RtRtRtRt ]R 4       t	]R 4       t
RR ltR tR tR tR	 tR
 tR t]R 4       tR tV 3R ltRtV tR# )AbstractNameDefinitionNTc                    \         hNNotImplementedErrorselfs   &r   inferAbstractNameDefinition.infer&   s    !!r   c                    V 0# r    r"   s   &r   gotoAbstractNameDefinition.goto*   s     vr   c                    V P                  4       pVe	   V'       g   V# V P                  4       P                  pVf   R # W2,           # r   )_get_qualified_namesget_root_contextstring_names)r#   include_module_namesqualified_namesmodule_namess   &&  r   get_qualified_names*AbstractNameDefinition.get_qualified_names0   sE    335"*>"",,.;;--r   c                    R # r   r'   r"   s   &r   r+   +AbstractNameDefinition._get_qualified_names:   s    r   c                6    V P                   P                  4       # r   )parent_contextr,   r"   s   &r   r,   'AbstractNameDefinition.get_root_context>   s    ""3355r   c                    V P                   # r   )string_namer"   s   &r   get_public_name&AbstractNameDefinition.get_public_nameA   s    r   c                    V P                   f*   RV P                  P                  : RV P                  : R2# RV P                  P                  : RV P                  : RV P                   : R2# )N<z: string_name=>z start_pos=)	start_pos	__class____name__r9   r"   s   &r   __repr__AbstractNameDefinition.__repr__D   sT    >>!-1^^-D-DdFVFVWW "6:nn6M6M6:6F6FX 	Xr   c                    R # Fr'   r"   s   &r   	is_import AbstractNameDefinition.is_importJ   s    r   c                    R # )r   r'   r"   s   &r   r    AbstractNameDefinition.py__doc__M   s    r   c                .    V P                   P                  # r   )r6   api_typer"   s   &r   rK   AbstractNameDefinition.api_typeP   s    ""+++r   c                    R# )z
Returns either None or the value that is public and qualified. Won't
return a function, because a name in a function is never public.
Nr'   r"   s   &r   get_defining_qualified_value3AbstractNameDefinition.get_defining_qualified_valueT   s    
 r   c                X   < V ^8  d   Qh/ S[ S[S[S[3,          ,          ;R&   S[;R&   # )   r?   r9   )r   r   intstr)format__classdict__s   "r   __annotate__#AbstractNameDefinition.__annotate__   s(     c3h(/  r   r'   rE   )rA   
__module____qualname____firstlineno__r?   r6   	tree_nameis_value_namer   r$   r(   r1   r+   r,   r:   rB   rF   r   propertyrK   rN   __annotate_func____static_attributes____classdictcell__rU   s   @r   r   r      s     +/INIM " "  
.6 X , ,q  r   r   c                   4   a  ] tR t^\t o RtRtR tR tRtV t	R# )AbstractArbitraryNamez
When you e.g. want to complete dicts keys, you probably want to complete
string literals, which is not really a name, but for Jedi we use this
concept of Name for completions as well.
Fc                @    Wn         W n        VP                  V n        R # r   )inference_stater9   builtins_moduler6   )r#   re   strings   &&&r   __init__AbstractArbitraryName.__init__d   s    .!-==r   c                    \         # r   r   r"   s   &r   r$   AbstractArbitraryName.inferi       r   )re   r6   r9   N)
rA   rX   rY   rZ   __doc__r\   rh   r$   r_   r`   ra   s   @r   rc   rc   \   s      
 M>
 r   rc   c                   t   a a ] tR t^mt oR tR
V 3R lltR tR tR tR t	]
R 4       t]
R 4       tR	tVtV ;t# )AbstractTreeNamec                    Wn         W n        R # r   r6   r[   )r#   r6   r[   s   &&&r   rh   AbstractTreeName.__init__n   s    ,"r   c                  < \        V P                  R R4      pVe   VP                  ^8X  d3   V P                  4       P	                  4       P                  4       '       g{   V'       dq   VP                  '       g_   \        ;QJ d-    . R VP                  V P                  4       4       F  NK  	  5# ! R VP                  V P                  4       4       4      # R# \        SV `%  V4      # )import_nameimport_fromNc              3   8   "   T F  qP                   x  K  	  R # 5ir   )value).0ns   & r   	<genexpr>7AbstractTreeName.get_qualified_names.<locals>.<genexpr>|   s     \.[WW.[s   )
r   r[   levelr,   	get_value
is_packagetupleget_path_for_namesuperr1   )r#   r.   import_noder@   s   && r   r1   $AbstractTreeName.get_qualified_namesr   s    %dnnm]S
 "K,=,=,B040E0E0G0Q0Q0S0^0^0`0`#K,=,=,=u\k.K.KDNN.[\u\u\k.K.KDNN.[\\\w*+?@@r   c                |    V P                   P                  4       pVf   R # WP                  P                  3,           # r   )r6   r1   r[   rx   )r#   parent_namess   & r   r+   %AbstractTreeName._get_qualified_names   s5    **>>@~~33555r   c                    V P                  4       '       d   \        R 4      hV P                  '       d   V P                  P                  4       # R# )z&Shouldn't really happen, please reportN)rF   r!   r6   r~   r"   s   &r   rN   -AbstractTreeName.get_defining_qualified_value   s?    >>%&NOO   &&0022r   c                  aa V P                   oV P                  oSP                  R R7      pVeT   VP                  pVR8X  d&   SP                  P                  R9  pV'       d   V .# MIVR9   d   ^ RIHp V! SS4      pV# V .# ^ RIHp V! SS4      pVe   V Uu. uF  qP                  NK  	  up# SP                  p	V	P                  p
V
R8X  Ed   V	P                  ^,          R8X  Ed   V	P                  ^ ,          S8X  Edn   V	P                  pVP                  R	8X  d   VP                  pVP                  R
8w  Ed2   VP                  R8X  d$   SP                  VP                  ^,          4      pMVP                  P                  P                  V4      pVP                  P                  RV pV^ ,          R8X  d   VP                  ^ 4       SP                  V^ ,          4      p^ RIHp VR,           F  pV! SW4      pK  	  . pV F_  pVP                  4        FH  pVP!                  4        F1  pVP"                  SP$                  8X  g   K   VP'                  V4       K3  	  KJ  	  Ka  	  V# MqV
R8X  dk   V	P                  P                  S4      pV^ 8  dI   \)        V	4      p. VP                  V^,
          R% SP                  V4      p\+        VV3R lV 4       4      # V
R8X  d:   V	P                  ^ ,          R8X  d"   \-        SSR R7      pVP/                  SSR7      # \1        SRR4      ;'       g    SpVP                  R8X  d   SpSP/                  SVP2                  R7      # u upi )Timport_name_alwaysN	expr_stmttrailer)goto_import)%follow_error_node_imports_if_possibleargument=arglistclassdef	decoratorawait)infer_trailer:   NNdotted_namec              3   J   <"   T F  pVP                  SSR 7      x  K  	  R# 5i)name_contextN)r(   )ry   rx   contextr   s   & r   r{   (AbstractTreeName.goto.<locals>.<genexpr>   s(      !' JJt'J::!'s    #.)cut_own_trailerr   lambdef)position)powerr   )rv   ru   )r6   r[   get_definitiontypeparentjedi.inference.importsr   r   r   children
infer_nodeindexpopjedi.inference.syntax_treer   get_signaturesget_param_namesr9   rx   appendr   r
   r   r(   r   r?   )r#   
definitiontype_is_simple_namer   r0   r   valuesrx   par	node_typer   	value_setito_inferr   param_names	signature
param_namer   
new_dottedstmtr   r   s   &                     @@r   r(   AbstractTreeName.goto   s   %%~~((D(A
!OOE# "&!1!19M!M! 6M "88>*7D9##vT:7DIF!067u

77kkHH	
"s||A#'=#,,q/UYBYjjG||y(!..||z)<<;. ' 2 273C3CA3F GI//55g>A&~~66r:H{g- Q ' 2 28A; ?IH#+B<<$1'9$N	 $0 &E%*%9%9%;	*3*C*C*EJ)55C + 2 2: > +F &< '
 #"% *& -'LL&&t,Eqy*3/
24
##EAIJ/ ++J7 !'  
 	!cll1o&<'tLF;;t';::"k9    yyI%<<t~~<>>a 8s   M)c                8    \        V P                  R R4      pVRJ# )rv   ru   Nr   r[   )r#   imps   & r   rF   AbstractTreeName.is_import   s    dnnm]K$r   c                .    V P                   P                  # r   )r[   rx   r"   s   &r   r9   AbstractTreeName.string_name   s    ~~###r   c                .    V P                   P                  # r   )r[   r?   r"   s   &r   r?   AbstractTreeName.start_pos   s    ~~'''r   rr   rE   )rA   rX   rY   rZ   rh   r1   r+   rN   r(   rF   r]   r9   r?   r_   r`   __classcell__r@   rU   s   @@r   rp   rp   m   sS     #A 6F?P $ $ ( ( (r   rp   c                   Z   a a ] tR t^t oR tR tR tV 3R ltR t]	R 4       t
RtVtV ;t# )ValueNameMixinc                .    \        V P                  .4      # r   )r   _valuer"   s   &r   r$   ValueNameMixin.infer   s    &&r   c                    V P                   P                  4       pV'       gC   V P                   P                  4       '       d#   ^ RIHp V! V .RR7      pW9  d   \        V4      # V# )r   convert_namesFprefer_stub_to_compiled)r   r   is_stub!jedi.inference.gradual.conversionr   r   )r#   r   r   r   s   &   r   r   ValueNameMixin.py__doc__   sP    kk##%t{{**,,G!4&%HE '..
r   c                6    V P                   P                  4       # r   )r   r1   r"   s   &r   r+   #ValueNameMixin._get_qualified_names   s    {{..00r   c                p   < V P                   f   V P                  P                  4       # \        SV `  4       # r   )r6   r   
as_contextr   r,   r#   r@   s   &r   r,   ValueNameMixin.get_root_context   s0    &;;))++w'))r   c                    V P                   pVeG   VP                  4       '       g   VP                  4       '       d   V P                   P                  4       # R # r   )r6   	is_moduleis_classr~   )r#   r   s   & r   rN   +ValueNameMixin.get_defining_qualified_value   sG    %%G$5$5$7$77;K;K;M;M&&0022r   c                .    V P                   P                  # r   )r   rK   r"   s   &r   rK   ValueNameMixin.api_type   s    {{###r   r'   )rA   rX   rY   rZ   r$   r   r+   r,   rN   r]   rK   r_   r`   r   r   s   @@r   r   r      s7     '1*
 $ $ $r   r   c                   8   a a ] tR tRt oV 3R ltR tRtVtV ;t# )	ValueNamei  c                H   < \         SV `  VP                  V4       Wn        R # r   )r   rh   r6   r   )r#   rx   r[   r@   s   &&&r   rh   ValueName.__init__  s    --y9r   c                B    \        V P                  P                  .4      # r   )r   r   r   r"   s   &r   r(   ValueName.goto	  s    ))*++r   )r   )	rA   rX   rY   rZ   rh   r(   r_   r`   r   r   s   @@r   r   r     s     , ,r   r   c                      a  ] tR tRt o ]! RRRRRR7      tR t]R 4       tR	 t	]R
 4       t
]! RR7      R 4       tRtV tR# )TreeNameDefinitioni  modulefunctionparamclass)ru   rv   funcdefr   r   c                r    ^ RI Hp V! V P                  P                  V P                  V P                  4      # )r   )tree_name_to_values)r   r   r6   re   r[   )r#   r   s   & r   r$   TreeNameDefinition.infer  s1    B"//NN
 	
r   c                    V P                   P                  R R7      pVf   R# V P                  P                  VP                  R4      # )Tr   	statement)r[   r   
_API_TYPESgetr   )r#   r   s   & r   rK   TreeNameDefinition.api_type  s=    ^^22d2K
"":??K@@r   c                   . pRpV P                   P                  pV P                   pVe   VP                  R9   d   \        VP                  4       Fr  w  rVWd8X  g   K  \        V^,          4      pV'       d9   \        \        VP                  4      V,
          ^,          4      p\        Wx) 4      pVP                  ^ Ws34        M	  \        R4      hRpM(VP                  R8X  d   RpMVP                  R9   d    V# TpVP                  pK  V# )aF  
Returns an array of tuple(int, node) of the indexes that are used in
tuple assignments.

For example if the name is ``y`` in the following code::

    x, (y, z) = 2, ''

would result in ``[(1, xyz_node), (0, yz_node)]``.

When searching for b in the case ``a, *b, c = [...]`` it will return::

    [(slice(1, -1), abc_node)]
FzCouldn't find the assignment.	star_exprT)testlisttestlist_comptestlist_star_exprexprlist)r   sync_comp_for)
r[   r   r   	enumerater   rR   lensliceinsertLookupError)	r#   indexesis_star_exprnodecomparer   childr   from_ends	   &        r   assignment_indexes%TreeNameDefinition.assignment_indexes&  s     ~~$$..yy[[ )$-- 8HA' #AE
''*C,>,Ba+G'HH$)%$;Eq5-8 !9 &&EFF$k)#<<  G;;Dr   c                .    V P                   P                  # r   )r6   re   r"   s   &r   re   "TreeNameDefinition.inference_stateO  s     ""222r   r   )defaultc                   V P                   pVR9   dt   V P                  P                  4       P                  4       '       d#   ^ RIHp V! V .RR7      pW9  d   \        V4      # \        V P                  P                  4       4      # VR8X  d"   V P                  4       pW9  d   \        V4      # VR8X  dD   V P                  P                  4       '       d$   \        V P                  P                  4       4      # R# )r   r   Fr   r   r   r   )r   r   r]   )rK   r6   r,   r   r   r   r   r	   r[   r   r(   is_definitionr   )r#   rK   r   r   s   &   r   r   TreeNameDefinition.py__doc__T  s    ==88""335==??K%tfeL$+E22 ))F)F)HIIxIIKE '..{"t~~'C'C'E'E/0M0M0OPPr   r'   N)rA   rX   rY   rZ   dictr   r$   r]   rK   r	  re   r   r   r_   r`   ra   s   @r   r   r     sl     J
 A A'R 3 3 ""- .r   r   c                   D   a  ] tR tRt o RR ltRR ltR tR	R ltRtV t	R# )
_ParamMixinik  c                    \         P                  \         P                  .pV'       d    VP                  \         P                  4       V P                  4       V9   # r   )r   POSITIONAL_ONLYPOSITIONAL_OR_KEYWORDr   VAR_POSITIONALget_kind)r#   include_staroptionss   && r   maybe_positional_argument%_ParamMixin.maybe_positional_argumentl  s>    ,,i.M.MNNN9334}}'))r   c                    \         P                  \         P                  .pV'       d    VP                  \         P                  4       V P                  4       V9   # r   )r   KEYWORD_ONLYr  r   VAR_KEYWORDr  )r#   include_starsr  s   && r   maybe_keyword_argument"_ParamMixin.maybe_keyword_argumentr  s>    ))9+J+JKNN9001}}'))r   c                    V P                  4       pV\        P                  8X  d   R # V\        P                  8X  d   R# R# )*z**r   r  r   r  r  r#   kinds   & r   _kind_string_ParamMixin._kind_stringx  s2    }}9+++9(((r   c                    R # r   r'   )r#   r.   s   &&r   r1   _ParamMixin.get_qualified_names  s    r   r'   N)TrE   )
rA   rX   rY   rZ   r  r!  r(  r1   r_   r`   ra   s   @r   r  r  k  s     ** r   r  c                   L   a  ] tR tRt o RtR tR tR t]R 4       t	R t
RtV tR	# )
ParamNameInterfacei  r   c                    \         hr   r    r"   s   &r   r  ParamNameInterface.get_kind      !!r   c                    \         hr   r    r"   s   &r   	to_stringParamNameInterface.to_string  r0  r   c                    R# )aC  
For dealing with type inference and working around the graph, we
sometimes want to have the param name of the execution. This feels a
bit strange and we might have to refactor at some point.

For now however it exists to avoid infering params when we don't really
need them (e.g. when we can just instead use annotations.
Nr'   r"   s   &r   get_executed_param_name*ParamNameInterface.get_executed_param_name  s     r   c                    V P                  4       pV\        P                  8X  d   ^# V\        P                  8X  d   ^# ^ # )r   r%  r&  s   & r   
star_countParamNameInterface.star_count  s2    }}9+++9(((r   c                    \         # r   rk   r"   s   &r   infer_default ParamNameInterface.infer_default  rm   r   r'   N)rA   rX   rY   rZ   rK   r  r2  r5  r]   r8  r;  r_   r`   ra   s   @r   r-  r-    s7     H""	   r   r-  c                   :   a  ] tR tRt o RtRtR tR tR tRt	V t
R# )BaseTreeParamNamei  Nc                   V P                  4       V P                  4       ,           pV P                  pV P                  pVe!   VRVP	                  RR7      ,           ,          pVe!   VRVP	                  RR7      ,           ,          pV# )N: F)include_prefixr   )r(  r:   annotation_nodedefault_nodeget_code)r#   output
annotationr  s   &   r   r2  BaseTreeParamName.to_string  s    ""$t';';'==))
##!dZ000FFFFcG,,E,BBBFr   c                ^    V P                   pVP                  R 4      '       d
   VR,          pV# )__:rQ   NN)r9   
startswithr#   r   s   & r   r:   !BaseTreeParamName.get_public_name  s,    ??4   8Dr   c                    V .# r   r'   )r#   kwargss   &,r   r(   BaseTreeParamName.goto  s	    vr   r'   )rA   rX   rY   rZ   rB  rC  r2  r:   r(   r_   r`   ra   s   @r   r>  r>    s#     OL r   r>  c                   t   a a ] tR tRt oV 3R ltR t]R 4       tRR ltR t	]R 4       t
R tR	 tR
tVtV ;t# )_ActualTreeParamNamei  c                P   < \         SV `  VP                  4       V4       Wn        R # r   )r   rh   get_default_param_contextfunction_value)r#   rT  r[   r@   s   &&&r   rh   _ActualTreeParamName.__init__  s%    446		C,r   c                .    \        V P                  R 4      # )r   r   r"   s   &r   _get_param_node$_ActualTreeParamName._get_param_node  s    t~~w77r   c                6    V P                  4       P                  # r   )rW  rF  r"   s   &r   rB  $_ActualTreeParamName.annotation_node  s    ##%000r   c                    ^ RI Hp V! V P                  V P                  4       VR7      pV'       d   VP	                  4       pV# )r   )infer_param)ignore_stars)!jedi.inference.gradual.annotationr\  rT  rW  execute_annotation)r#   r_  r]  r\  r   s   &&&  r   infer_annotation%_ActualTreeParamName.infer_annotation  s>    A!5!5!7%' ..0Fr   c                d    V P                   pVf   \        # V P                  P                  V4      # r   )rC  r   r6   r   )r#   r  s   & r   r;  "_ActualTreeParamName.infer_default  s/      <""--d33r   c                6    V P                  4       P                  # r   )rW  r  r"   s   &r   rC  !_ActualTreeParamName.default_node  s    ##%---r   c                x   V P                  4       pVP                  ^8X  d   \        P                  # VP                  ^8X  d   \        P                  # VP
                  P                  P                  R4      '       d   \        P                  # VP                  pRpVP                   F  pV'       d   VR8X  d   \        P                  u # K&  VR8X  d   \        P                  u # VP                  R8X  g   KR  VP                  '       d   \        P                  u # WA8X  g   K~  RpK  	  \        P                  # )r   rI  F/r$  r   T)rW  r8  r   r  r  r   rx   rJ  r  r   r   r  r   r  )r#   
tree_paramr   param_appearedps   &    r   r  _ActualTreeParamName.get_kind  s    ))+
  A%+++  A%((( ??  ++D11,,,""A8$444  8$11166W$|||(555)- ! ...r   c                    V P                  4       pV'       d   V# \        P                  ! V P                  V P	                  4       4      pV# r   )r`  r   r\  rT  rW  )r#   r   
doc_paramss   &  r   r$   _ActualTreeParamName.infer  s?    &&(M++D,?,?AUAUAWX
r   )rT  )TF)rA   rX   rY   rZ   rh   rW  r]   rB  r`  r;  rC  r  r$   r_   r`   r   r   s   @@r   rQ  rQ    sP     -
8 1 14 . ./8 r   rQ  c                      a a ] tR tRt o]P
                  ! RR7      V 3R l4       t]P
                  ! RR7      V 3R l4       tRtVt	V ;t
# )AnonymousParamNamei  goto_anonymous_param)r   c                    < \         SV `  4       # r   )r   r(   r   s   &r   r(   AnonymousParamName.goto  s    w|~r   infer_anonymous_paramc                   < \         SV `  4       pV'       d   V# ^ RIHp V P	                  4       pV! V P
                  VP                  4      pV'       d   V# VP                  ^8X  d%   ^ RIH	p V! V P
                  P                  . 4      pMxVP                  ^8X  d%   ^ RIHp V! V P
                  P                  / 4      pMCVP                  f   \        # V P
                  P                  P                  VP                  4      # \!        V04      # )r   )dynamic_param_lookup)	FakeTuple)FakeDict)r   r$   jedi.inference.dynamic_paramsrv  rW  rT  position_indexr8  jedi.inference.value.iterablerw  re   rx  r  r   r6   r   r   )r#   r   rv  r   rw  rx   rx  r@   s   &      r   r$   AnonymousParamName.infer	  s    MF$$&%d&9&95;O;OPMq ?d11AA2FE">T00@@"EE]]"&&55@@OO  r   r'   )rA   rX   rY   rZ   r   decorater(   r$   r_   r`   r   r   s   @@r   rp  rp    sH     "89 : "9:! ;! !r   rp  c                   D   a a ] tR tRt oV 3R ltV 3R ltR tRtVtV ;t	# )	ParamNamei!  c                2   < \         SV `  W4       W0n        R # r   )r   rh   	arguments)r#   rT  r[   r  r@   s   &&&&r   rh   ParamName.__init__"  s    3"r   c                p   < \         SV `  4       pV'       d   V# V P                  4       P                  4       # r   )r   r$   r5  )r#   r   r@   s   & r   r$   ParamName.infer&  s.    M++-3355r   c                    ^ RI Hp V! V P                  V P                  4      pW P	                  4       P
                  ,          # )r   )get_executed_param_names)jedi.inference.paramr  rT  r  rW  rz  )r#   r  params_namess   &  r   r5  !ParamName.get_executed_param_name-  s3    A/0C0CT^^T002AABBr   )r  )
rA   rX   rY   rZ   rh   r$   r5  r_   r`   r   r   s   @@r   r  r  !  s     #6C Cr   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )ParamNameWrapperi3  c                    Wn         R # r   _wrapped_param_name)r#   r   s   &&r   rh   ParamNameWrapper.__init__4  s    #- r   c                .    \        V P                  V4      # r   )getattrr  rK  s   &&r   __getattr__ParamNameWrapper.__getattr__7  s    t//66r   c                T    R V P                   P                  : RV P                  : R2# )r=   r@  r>   )r@   rA   r  r"   s   &r   rB   ParamNameWrapper.__repr__:  s    !^^44d6N6NOOr   r  N	rA   rX   rY   rZ   rh   r  rB   r_   r`   ra   s   @r   r  r  3  s     .7P Pr   r  c                   t   a  ] tR tRt o Rt^ tR tRR lt]R 4       t	]
R 4       tR t]R 4       tR tR	tV tR
# )
ImportNamei>  c                    Wn         W n        R # r   _from_module_contextr9   )r#   r6   r9   s   &&&r   rh   ImportName.__init__B  s    $2!&r   c                    V'       dg   V P                   '       dH   V P                   ^8X  g   Q R4       hV P                  P                  pVf   V# W P                  3,           # V P                  3# R# )r   z(Everything else is not supported for nowr'   )_levelr  r-   r9   )r#   r.   r0   s   && r   r1   ImportName.get_qualified_namesF  si    {{{{{a'S)SS'#88EE'''#'7'7&999$$&&	r   c                    V P                   pV P                  4       pV'       g   V# \        \        V4      4      P	                  4       # r   )r  r$   nextiterr   )r#   mimport_valuess   &  r   r6   ImportName.parent_contextQ  s;    %%

H D'(3355r   c                    ^ RI Hp V P                  pV! VP                  V P                  .W P
                  R7      P                  4       # )r   )Importer)r}   )r   r  r  re   r9   r  follow)r#   r  r  s   &  r   r$   ImportName.infer[  s;    3%%))D,<,<+=qT[[]]r   c                ^    V P                  4        Uu. uF  qP                  NK  	  up# u upi r   )r$   r   )r#   r  s   & r   r(   ImportName.gotoa  s"     $

-1---s   *c                    R # )r   r'   r"   s   &r   rK   ImportName.api_typed  s    r   c                4    \        V P                  4       4      # r   )r   r(   r"   s   &r   r   ImportName.py__doc__h  s    		,,r   r  Nr   r   rE   )rA   rX   rY   rZ   r?   r  rh   r1   r]   r6   r   r$   r(   rK   r   r_   r`   ra   s   @r   r  r  >  sf     IF'	 6 6 ^ ^
.  - -r   r  c                       ] tR tRt^tRtR# )SubModuleNameil  r'   N)rA   rX   rY   rZ   r  r_   r'   r   r   r  r  l  s    Fr   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )NameWrapperip  c                    Wn         R # r   _wrapped_name)r#   wrapped_names   &&r   rh   NameWrapper.__init__q  s    )r   c                .    \        V P                  V4      # r   )r  r  rK  s   &&r   r  NameWrapper.__getattr__t  s    t))400r   c                R    V P                   P                  : R V P                  : R2# )())r@   rA   r  r"   s   &r   rB   NameWrapper.__repr__w  s    >>22D4F4FGGr   r  Nr  ra   s   @r   r  r  p  s     *1H Hr   r  c                   2   a a ] tR tRt oV 3R ltRtVtV ;t# )StubNameMixini{  c                6  < ^ RI Hp V .pV P                  R8X  dR   RV P                  P	                  4       P
                  9   d)   V P                  4        Uu. uF  q3P                  NK  	  ppV! VRR7      pW9   d   \        SV `%  4       # \        V4      # u upi )r   r   r   r   Fr   )r   r   rK   r[   r   r   r$   r   r   r   r   )r#   r   r   vr@   s   &   r   r   StubNameMixin.py__doc__|  s    C ==K'C4>>3P3P3R3[3[,[%)ZZ\2\VV\E2eUC=7$&& $E** 3s   Br'   )rA   rX   rY   rZ   r   r_   r`   r   r   s   @@r   r  r  {  s     + +r   r  c                   2   a a ] tR tRt oV 3R ltRtVtV ;t# )StubNamei  c                   <a \         SV `  4       pV P                  R 8X  d?   V P                  4       P	                  4       R8X  d   ^ RIHo \        V3R lV 4       4      # V# )version_infosys)VersionInfoc              3   4   <"   T F  pS! V4      x  K  	  R # 5ir   r'   )ry   cr  s   & r   r{   !StubName.infer.<locals>.<genexpr>  s     =HqKNNHs   )r   r$   r9   r,   
py__name__!jedi.inference.gradual.stub_valuer  r   )r#   inferredr  r@   s   & @r   r$   StubName.infer  sO    7=?~-$2G2G2I2T2T2VZ_2_E=H===r   r'   )rA   rX   rY   rZ   r$   r_   r`   r   r   s   @@r   r  r    s      r   r  c                   :   a  ] tR tRt o RtR t]R 4       tRtV t	R# )
ModuleNamei  c                    Wn         W n        R # r   )r   _name)r#   rx   r   s   &&&r   rh   ModuleName.__init__  s    
r   c                    V P                   # r   )r  r"   s   &r   r9   ModuleName.string_name  s    zzr   )r  r   Nr  )
rA   rX   rY   rZ   r?   rh   r]   r9   r_   r`   ra   s   @r   r  r    s#     I  r   r  c                       ] tR tRtRtR# )StubModuleNamei  r'   N)rA   rX   rY   rZ   r_   r'   r   r   r  r    s    r   r  N)1abcr   inspectr   typingr   r   
parso.treer   jedi.parser_utilsr   r	   jedi.inference.utilsr
   jedi.inference.base_valuer   r   jedi.inference.cacher   jedi.inferencer   
jedi.cacher   jedi.inference.helpersr   r   jedi.pluginsr   r   r   rc   rp   r   r   r   r  r-  r>  rQ  rp  r  r  r  r  r  r  r  r  r  r'   r   r   <module>r     s=     " & Q & 9 = % % D '= =@2 "t(- t(n$ $@, 0 ,[) [| 2 B*,< 4B, BJ!- !:C$ C$P{ P+-' +-\J H H+ +(}0 	!7 		]J 	r   