
    Mh                     x    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dS )    N)classes)
StringNameget_quote_ending)match)get_str_or_nonec                       e Zd ZdZdS )PathNamepathN)__name__
__module____qualname__api_type     R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jedi/api/file_name.pyr	   r	   	   s        HHHr   r	   c
              #     K   t          t          j                            |                    }
t	          ||          }|                    d          rt          j                            |          }|d S ||z   }t          j                            |          }t          j                            |          } || }|ot          d |D                       }|r&t          |||d         j
                  }|d}n||z   }t          j                            | j        j        |          }	 t          t          j        |          d           }n# t          t           f$ r Y d S w xY wt#          |||          }|D ]}|j        }t'          |||	          rq|s|                                s||z  }n|t          j        j        z  }t-          j        | t1          | |t          |          |
z
  d                    d |
|	          V  d S )	N~c              3   ,   K   | ]}|j         d k    V  dS )zos.path.joinN)	full_name).0ss     r   	<genexpr>z%complete_file_name.<locals>.<genexpr>   s)      %R%Rak^&C%R%R%R%R%R%Rr   r   Fc                     | j         S )N)name)es    r   <lambda>z$complete_file_name.<locals>.<lambda>(   s    QV 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@      27++F3344$^Z@@H ,##F++F g&&v..OW__V$$F)DR#%R%RT%R%R%R"R"R *'
DGDYZZ!& 6)F_496BBI
9--3C3CDDDw'   #E:x@@L  ze444 	! $ $$#$$s?/C/CFV/V/W/W*XYY!1      s   -$E E'&E'c           	          fd}|                                 dk    rdS |                     |          }t          |t          t	           |                                          S )Nc               3      K   j         } d}t          | j        d | j                                                         D ]}|rd}|V  |dk    r d S d}d S )NTF+)parentreversedchildrenindex)nodewas_addition
child_noder>   s      r   iterate_nodesz,_get_string_additions.<locals>.iterate_nodes?   s      "4=1O$-2E2Eh2O2O1O#PQQ 	  	 J $    S  LL	  	 r   rJ    )get_previous_leafcreate_context_add_stringsrL   list)r6   r7   rR   contextr>   s       @r   r%   r%   >   sv              ++--H3r++J77G$}}*?*?!@!@AAAr   Fc                     d}d}|D ]d}|                      |          }t          |          dk    r d S |\  }t          |          }| d S |s|r|t          j        j        z  }||z  }d}e|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;;!44A944 	" 	"bgk!F!Mr   c                 T     fd}|j         dk    r|j        }|j                            |          }|dk    r|j        |dz
           }|j         dk    rmt	          |j                  dk    rUd}|j        d         j         d	k    r|j        d         j        }|dz  }ng } ||j        |dz            |d d d                   S d S |}|j        *|j        j         d
vr|j        }|j        |j        j         d
v|                                |urd S |j        }	|	d S |	j                            |          }|	j        d |         }|	j         d	k    r|	j        }
|
j         dk    r[|
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 d S |	j         dk    r ||	j        d         g           S |	j         dk    r ||d         g           S d S )Nc                     | j         k    rd S |sdS                     |d                   }t          ||d          pdS )NrS   r   T)r]   )	start_posrU   rV   )maybe_bracketr\   rX   r+   r6   s      r   checkz _add_os_path_join.<locals>.checkf   sT    "m334 	2 //a9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 B B B B B ,&&&
#))*55199#,UQY7J,..3z7J3K3Kq3P3P&r*/9<<$.$7$;$DMQJEE$&MuZ0;]33Q3=OPPPt %

$
0#*/7[[[18 
$
0#*/7[[[ ))++:==t'.Mt"(()<==E!*6E62MY&&&<<''#,22=AAM A%%%%#MA$56#====5)-!*;<mCCaC>PQQQ\Y&&5)!,mCCaC.@AAA '&		y	(	(u]+A.333		|	+	+u]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      s    				       9 9 9 9 9 9 9 9 " " " " " " 2 2 2 2 2 2    z   . . .bB B B*   $6, 6, 6, 6, 6,r   