
    f                     p    d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	  G d de      Z
d Zd	 Zdd
Zd Zy)    N)classes)
StringNameget_quote_ending)match)get_str_or_nonec                       e Zd ZdZy)PathNamepathN)__name__
__module____qualname__api_type     M/var/www/cvtools/html/venv/lib/python3.12/site-packages/jedi/api/file_name.pyr	   r	   	   s    Hr   r	   c
              #     K   t        t        j                  j                  |            }
t	        ||      }|j                  d      rt        j                  j                  |      }|y ||z   }t        j                  j                  |      }t        j                  j                  |      } || }|xr t        d |D              }|r$t        |||d   j                        }|d}n||z   }t        j                  j                  | j                  j                  |      }	 t        t        j                  |      d       }t#        |||      }|D ]  }|j$                  }t'        |||	      s|s|j)                         s||z  }n|t        j                  j*                  z  }t-        j.                  | t1        | |t        |      |
z
  d        d |
|	        y # t        t         f$ r Y y w xY ww)	N~c              3   :   K   | ]  }|j                   d k(    yw)zos.path.joinN)	full_name).0ss     r   	<genexpr>z%complete_file_name.<locals>.<genexpr>   s     %Rakk^&C%Rs   r   Fc                     | j                   S )N)name)es    r   <lambda>z$complete_file_name.<locals>.<lambda>(   s
    QVV r   )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_namerG      s     277++F34$^Z@H##F+F gg&&v.OWW__V$F)DR#%RT%R"R'
DGDYDYZ!& 6)F_44996BI

9-3CD $E:x@L zze4!$#$$$s?/CFV/V/W*XY!1  w' s1   D G3#!G ,G31A-G3G0-G3/G00G3c           	          fd}|j                         dk7  ry| j                  |      }t        |t        t	         |                         S )Nc               3      K   j                   } d}t        | j                  d | j                  j                               D ]  }|rd}| |dk7  r y d} y w)NTF+)parentreversedchildrenindex)nodewas_addition
child_noder>   s      r   iterate_nodesz,_get_string_additions.<locals>.iterate_nodes?   se     "4==1O$--2E2Eh2O#PQ 	 J$  S L	 s   AArJ    )get_previous_leafcreate_context_add_stringsrL   list)r6   r7   rR   contextr>   s       @r   r%   r%   >   sK      ++-H3++J7G$}*?!@AAr   c                     d}d}|D ]^  }| j                  |      }t        |      dk7  r y |\  }t        |      }| y |s|r|t        j                  j
                  z  }||z  }d}` |S )NrS   T   F)
infer_noder"   r   r#   r
   r3   )	rX   nodes	add_slashr9   firstrQ   valuescr   s	            r   rV   rV   S   s    FE 
##J/v;!A9bggkk!F! Mr   c                      fd}|j                   dk(  r|j                  }|j                  j                  |      }|dkD  r|j                  |dz
     }|j                   dk(  rvt	        |j                        dk\  r^d}|j                  d   j                   d	k(  r|j                  d   j                  }|dz  }ng } ||j                  |dz      |d d d         S y |}|j                  I|j                  j                   d
vr1|j                  }|j                  |j                  j                   d
vr1|j                         |ury |j                  }	|	y |	j                  j                  |      }|	j                  d | }|	j                   d	k(  r|	j                  }
|
j                   dk(  rX|
j                  j                  |	      }|dk\  sJ |
j                  |dz
     dk(  sJ  ||
j                  |dz
     |d d d         S |
j                   dk(  r ||
j                  d   |d d d         S y |	j                   dk(  r ||	j                  d   g       S |	j                   dk(  r ||d   g       S y )Nc                 v    | j                   k7  ry |syj                  |d         }t        ||d      xs dS )NrS   r   T)r]   )	start_posrU   rV   )maybe_bracketr\   rX   r+   r6   s      r   checkz _add_os_path_join.<locals>.checkf   sB    ""m3 //a9GUd;ArAr   
error_leafr   rZ   
error_node   arglist)rk   trailerrg   (rl   )typerK   rM   rN   r"   get_first_leaf)r6   r7   r+   re   
value_noderN   rg   arglist_nodessearched_node_childsearched_noderl   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	   rG   r%   rV   r*   r   r   r   <module>ry      s6    	  9 " 2z .bB*$6,r   