
    ^h                     r    S SK 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 rS	 rSS
 jrS rg)    N)classes)
StringNameget_quote_ending)match)get_str_or_nonec                       \ rS rSrSrSrg)PathName	   path N)__name__
__module____qualname____firstlineno__api_type__static_attributes__r       L/home/james-whalen/.local/lib/python3.13/site-packages/jedi/api/file_name.pyr	   r	   	   s    Hr   r	   c
              #     #    [        [        R                  R                  U5      5      n
[	        X5      nUR                  S5      (       a  [        R                  R                  U5      nUc  g X-   n[        R                  R                  U5      n[        R                  R                  U5      nU" U6 nU=(       a    [        S U 5       5      nU(       a#  [        XUS   R                  5      nUc  SnOX-   n[        R                  R                  U R                  R                  U5      n [        [        R                  " U5      S S9n[#        X7U5      nU H  nUR$                  n['        UXS9(       d  M   U(       d  UR)                  5       (       d  UU-  nOU[        R                  R*                  -  n[,        R.                  " U [1        U U[        U5      U
-
  S  5      S U
U	S9v   M     g ! [        [         4 a     g f = f7f)	N~c              3   >   #    U  H  oR                   S :H  v   M     g7f)zos.path.joinN)	full_name).0ss     r   	<genexpr>%complete_file_name.<locals>.<genexpr>   s     %RTkk^&CTs   r   Fc                     U R                   $ )N)name)es    r   <lambda>$complete_file_name.<locals>.<lambda>(   s    QVVr   )key)fuzzy)stacklike_name_lengthis_fuzzy)lenosr   basename_get_string_additions
startswith
expanduserdirnameall_add_os_path_joinbracket_startjoinprojectsortedscandirFileNotFoundErrorOSErrorr   r   r   is_dirsepr   
Completionr	   )inference_statemodule_context
start_leafquotestring	like_namesignatures_callback
code_linespositionr#   r%   additionmust_start_withsigsis_in_os_path_jointo_be_added	base_pathlistedquote_endingentryr   s                        r   complete_file_namerL      s     277++F34$^@H##F+F gg&&v.OWW__V$F)DR#%RT%R"R'DGDYDYZ!& )F_44996BI

9-3CD $Ex@Lzz44!$#$$$s?/CFV/V/W*XY!1   w' s1   D-H
0G4 *H
=A7H
4HH
HH
c           	         ^ U4S jnUR                  5       mTS:w  a  gU R                  U5      n[        U[        [	        U" 5       5      5      5      $ )Nc               3      >#    TR                   n Sn[        U R                  S U R                  R                  T5       5       H  nU(       a  SnUv   M  US:w  a    g SnM     g 7f)NTF+)parentreversedchildrenindex)nodewas_addition
child_noderC   s      r   iterate_nodes,_get_string_additions.<locals>.iterate_nodes?   s`     "4==1O$--2E2Eh2O#PQJ$  S L Rs   A!A$rO    )get_previous_leafcreate_context_add_stringsrQ   list)r;   r<   rW   contextrC   s       @r   r*   r*   >   sK      ++-H3++J7G$}*?!@AAr   c                     SnSnU Hj  nU R                  U5      n[        U5      S:w  a    g Uu  n[        U5      nUc    g U(       d$  U(       a  U[        R                  R
                  -  nX8-  nSnMl     U$ )NrY   T   F)
infer_noder'   r   r(   r   r8   )	r^   nodes	add_slashr>   firstrV   valuescr   s	            r   r\   r\   S   sx    FE
##J/v;!A9bggkk!F  Mr   c                   ^ ^ UU 4S jnUR                   S:X  a  UR                  nUR                  R                  U5      nUS:  a  UR                  US-
     nUR                   S:X  ax  [	        UR                  5      S:  a_  SnUR                  S   R                   S	:X  a  UR                  S   R                  nUS-  nO/ nU" UR                  US-      US S S2   5      $ g UnUR                  bO  UR                  R                   S
;  a5  UR                  nUR                  b  UR                  R                   S
;  a  M5  UR                  5       ULa  g UR                  n	U	c  g U	R                  R                  U5      nU	R                  S U nU	R                   S	:X  a  U	R                  n
U
R                   S:X  aZ  U
R                  R                  U	5      nUS:  d   eU
R                  US-
     S:X  d   eU" U
R                  US-
     US S S2   5      $ U
R                   S:X  a  U" U
R                  S   US S S2   5      $ g U	R                   S:X  a  U" U	R                  S   / 5      $ U	R                   S:X  a  U" US   / 5      $ g )Nc                    > U R                   T:w  a  g U(       d  gTR                  US   5      n[        X!SS9=(       d    S$ )NrY   r   T)rc   )	start_posr[   r\   )maybe_bracketrb   r^   r0   r;   s      r   check _add_os_path_join.<locals>.checkf   s@    ""m3 //a9Gd;ArAr   
error_leafr   r`   
error_node   arglist)rr   trailerrn   (rs   )typerP   rR   rS   r'   get_first_leaf)r;   r<   r0   rk   
value_noderS   rn   arglist_nodessearched_node_childsearched_noders   trailer_indexs   ` `         r   r/   r/   e   s   B ,&&&
##))*519#,,UQY7J,.3z7J7J3Kq3P&&r*//9<$.$7$7$;$D$DMQJE$&MZ00;]3Q3=OPP %

$
$
0#**//7[[188 
$
$
0#**//7[[ ))+:='..M""(()<=E!**6E2MY&&&<<<'#,,22=AM A%%%##MA$56#===))-!*;<mCaC>PQQ\\Y&))!,mCaC.@AA '			y	(]++A.33			|	+]2&++ 
,r   )F)r(   jedi.apir   jedi.api.stringsr   r   jedi.api.helpersr   jedi.inference.helpersr   r	   rL   r*   r\   r/   r   r   r   <module>r      s6    	  9 " 2z .bB*$6,r   