
    ^h9                         S SK Jr  S SKJr  S SKJr  S SKJrJr  S SK	J
r
  S SKJr   " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      rg)    )ValueWrapper)ModuleValue)ParserTreeFilter)StubNameStubModuleName)TypingModuleFilterWrapper)ModuleContextc                   Z   ^  \ rS rSr\rU 4S jrS rU 4S jrS r	S	U 4S jjr
S rSrU =r$ )
StubModuleValue	   c                 2   > [         TU ]  " U0 UD6  Xl        g N)super__init__non_stub_value_set)selfr   argskwargs	__class__s       [/home/james-whalen/.local/lib/python3.13/site-packages/jedi/inference/gradual/stub_value.pyr   StubModuleValue.__init__   s    $)&)"4    c                     g)NT r   s    r   is_stubStubModuleValue.is_stub   s    r   c                    > 0 nU R                    H&  n UR                  nUR                  U" 5       5        M(     UR                  [        TU ]  5       5        U$ ! [         a     MV  f = f)z
We have to overwrite this, because it's possible to have stubs that
don't have code for all the child modules. At the time of writing this
there are for example no stubs for `json.tool`.
)r   sub_modules_dictupdateAttributeErrorr   )r   namesvaluemethodr   s       r   r    StubModuleValue.sub_modules_dict   si     ,,E'// VX& - 	UW-/0 " s   A
A'&A'c                 h    [        U R                  5       US9/[        U R                  5       5      -   $ )N)parent_contextorigin_scope)
StubFilter
as_contextlistiter_star_filters)r   r(   s     r   _get_stub_filters!StubModuleValue._get_stub_filters$   s9    ??,%
  $((*+, 	,r   c              #      >#    [         TU ]  U5      n[        US 5        U R                  US9nU S h  vN   U S h  vN   g  N N7fN)r(   )r   get_filtersnextr-   )r   r(   filtersstub_filtersr   s       r   r1   StubModuleValue.get_filters*   sL     '%l3Wd--<-H 	 s   0AA	AAAAc                     [        U 5      $ r   )StubModuleContextr   s    r   _as_contextStubModuleValue._as_context1   s     &&r   )r   r   )__name__
__module____qualname____firstlineno__r   _module_name_classr   r   r   r-   r1   r8   __static_attributes____classcell__r   s   @r   r   r   	   s,    '5",' 'r   r   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )r7   5   c                    > [         TU ]  US9$ r0   )r   r1   )r   until_positionr(   r   s      r   r1   StubModuleContext.get_filters6   s     w""==r   r   )NNr:   r;   r<   r=   r1   r?   r@   rA   s   @r   r7   r7   5   s    > >r   r7   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )TypingModuleWrapper<   c              /      >#    [         TU ]  " U0 UD6n[        US 5      nUc   e[        U5      v   U S h  vN   g  N7fr   )r   r1   r2   r   )r   r   r   r3   fr   s        r   r1   TypingModuleWrapper.get_filters=   sD     '%t6v6$}}'**s   4?=?c                     [        U 5      $ r   )TypingModuleContextr   s    r   r8   TypingModuleWrapper._as_contextD   s    "4((r   r   )r:   r;   r<   r=   r1   r8   r?   r@   rA   s   @r   rI   rI   <   s    ) )r   rI   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )rO   H   c              /   t   >#    [         TU ]  " U0 UD6n[        [        US 5      5      v   U S h  vN   g  N7fr   )r   r1   r   r2   )r   r   r   r3   r   s       r   r1   TypingModuleContext.get_filtersI   s5     '%t6v6'Wd(;<<s   -868r   rG   rA   s   @r   rO   rO   H   s     r   rO   c                   ,   ^  \ rS rSr\rU 4S jrSrU =r$ )r)   O   c                 L  > [         TU ]  U5      (       d  gUR                  5       nUc  gUR                  S;   a  UR                  R                  S;  a  gUR
                  nUR                  S5      (       a-  UR                  S5      (       a  UR                  S5      (       d  gg)NF)import_fromimport_name)import_as_namedotted_as_name___T)r   _is_name_reachableget_definitiontypeparentr#   
startswithendswith)r   name
definitionnr   s       r   r^   StubFilter._is_name_reachableR   s    w)$// ((*
??<<{{'KKJJ<<all4&8&8QZZ=M=Mr   r   )	r:   r;   r<   r=   r   
name_classr^   r?   r@   rA   s   @r   r)   r)   O   s    J r   r)   c                       \ rS rSrSrg)VersionInfoe   r   N)r:   r;   r<   r=   r?   r   r   r   rj   rj   e   s    r   rj   N)jedi.inference.base_valuer   jedi.inference.value.moduler   jedi.inference.filtersr   jedi.inference.namesr   r   jedi.inference.gradual.typingr   jedi.inference.contextr	   r   r7   rI   rO   r)   rj   r   r   r   <module>rr      sa    2 3 3 9 C 0)'k )'X> >	)/ 	)- ! ,	, 	r   