
    h,                         d dl mZmZmZmZ d dlZd dlZd dlmZ d dl	Z	d Z
d Zd Zd Zd Zd	 Zd
 Zd Zd Zd Zedk(  r e        yy)    )unicode_literalsabsolute_importprint_functiondivisionN)defaultdictc                 R    t        | d         dkD  r| d   d   dv r| d   dd  S | d   S )Nr   "'   )leninputs    G/var/www/html/venv/lib/python3.12/site-packages/pythonpy/pycompleter.pycurrent_rawr      s;    
59~eBile3Ry}9    c                 @    t        j                  dt        |             S )Nz[^a-zA-Z0-9_\.])resplitr   r   s    r   current_listr      s    88&E(:;;r   c                     t        |       d   S Nr	   )r   r   s    r   current_prefixr      s    r""r   c                     | d d S r    r   s    r   priorr      s    ":r   c                     dj                  | D cg c]  }|s|	 c}      }t        j                  d      }|j                  |      }|D ]y  }t        j                  d|      rt        j
                  dd|      }n0t        j                  d|      rt        j
                  dd|      }n|}	 t        |      }|t               |<   { y c c}w # t        $ r
}Y d }~d }~ww xY w)	N z([a-zA-Z_][a-zA-Z0-9_]*)\.?z
np(\..*)?$z^npnumpyz
pd(\..*)?$z^pdpandas)	joinr   compilefindallmatchsub
__import__globalsImportError)	argsxqueryregexmatchesraw_module_namemodule_namemodulees	            r   lazy_importsr1      s    HH+Aa+,EJJ45EmmE"G" 88L/2&&AKXXlO4&&/BK)K	,F)/GIo& ,  		s   CC-C	C C c                    t        | |d          |rP|d   r
t               }|d   r
t               }|d   r-t        |d   j	                  d      j                  dd             t               }|j                  t                      t        j                  |      }d}t               }|j                  | |      r9|j                  |j                  | |             |dz  }|j                  | |      r9t               \  }}		  |d	| z         xs g }
|
r0|
D cg c]%  }|j                  |       s|j!                  d
      ' }
}|
t        |      z   S #  g }
Y FxY wc c}w )Nc_argx_argl_argr
   `'r   r   import r   )r1   strlistexecstripreplacelocalsupdater&   rlcompleter	Completersetcompleteaddget_completerlib
startswithrstrip)prefixcompletion_argsr)   lcontext	completeridxoptions_setmodule_completionmodule_listoptionss              r   complete_allrR   /   sF   127#A7#A7#)//6>>sCHIhGNN79%%g.I
C%K


VS
)	**6378q 

VS
) &6%7"{#I$67=2 *1JQQ\\&5I188C=JJT+&&&Js   ?E E+EEc                    t        |       j                  d      rg dS t        |       j                  d      rg dS t        t        |             dkD  rt        |       d   dk(  rdj                  t        |             rd	g}|S t        |       j                  d
      st        |       j                  d      r_t	               \  }} |t        |             xs g }|r9|D cg c].  }|j                  t        |             s|j                  d      0 }}|S t        t        |       t        d             }t        |       j                  d      r|D cg c]	  }d|vs| }}|S t        |       dk(  r%g d}d| d d v sd| d d v r|dz  }d| d d v r|dz  }|S t        d       }dt        |       v sdt        |       v rd|d<   dt        |       v rd|d<   dt        |       v rHt        |       j                  d      }|dz   t        t        |             k  rt        |       |dz      |d<   t        t        |       |      }t        |       j                  d      r|D cg c]	  }d|vs| }}|S c c}w c c}w c c}w )Nz--)z--siz--soz--jiz--joz--i-)z-h-x-fx-l-cz-Cr   r	   rX   importz'importr8   zfrom r   c                       y Nr   r   r   r   <lambda>zparse_string.<locals>.<lambda>Z       r   .z._ )sysjsonr   csvdatetimehashlib	itertoolsmathosrandomshutilrU   rV   r)   rW   rJ   c                       y r[   r   r   r   r   r\   zparse_string.<locals>.<lambda>f   r]   r   Tr4   r5   r   r3   )r   rF   r   r   rE   r   rG   rR   r   endswithindex)r   rQ   rO   rP   r)   rI   c_indexs          r   parse_stringrn   L   sq   5$$T*66	U		&	&s	+44	U5\	Q	5<#3t#;{512 kG  **95U9K9V9VW^9_-=-?*{'E(:;ArG29aQQ\\.Y^J_=`188C=aa
  #>%#8+l:STGe$--c2&-?Q1??	U	r	!t5":%*!4sNG5":sNG%l35<5E%L#8'+OG$5<'+OG$5<El((.G!s5<00+0<!+D(~e4oF% ))#.");QT]q;G;5 b @* <s$   "I2I2	I7 I7 	I<*I<c                    	
 ddl 
ddl	 ddlm}   |        }ddlm ddlm	 ddt        j                  d	d
j                  d |D              z        	t        j                  d      }	fdfd
fddfd	fd}|fS # t        $ r& ddlm}  |       D cg c]  }|d   	 nc c}w }}Y w xY w)zdImplementations for various useful completers.

    These are all loaded by default by IPython.
    r   N)all_suffixes)get_suffixes)time)zipimporter      zK(?P<name>[a-zA-Z_][a-zA-Z0-9_]*?)(?P<package>[/\\]__init__)?(?P<suffix>%s)$|c              3   F   K   | ]  }t        j                  |        y wr[   )r   escape).0ss     r   	<genexpr>z#get_completerlib.<locals>.<genexpr>   s     $EaRYYq\$Es   !z.*(\.ipy|\.ipynb|\.py[w]?)$c                 D  	 | dk(  rd} j                   j                  j                   j                  |       rbg }j                  |       D ]K  \  }}}|t	        |       dz   d 		r!|j                  	fd|D               g |dd ;|j                  |       M n*	 t         |       j                  j                               }g }|D ]6  }
j                  |      }|s|j                  |j                  d             8 t        t        |            S #  g }Y WxY w)zl
        Return the list containing the names of the modules available in the given
        folder.
        r_   r^   r   Nc              3   0   K   | ]  } |        y wr[   r   )ry   fpjoinsubdirs     r   r{   z8get_completerlib.<locals>.module_list.<locals>.<genexpr>   s      Cavq!1 Cs   name)pathr    isdirwalkr   extendr:   _fileskeysr#   appendgrouprB   )r   filesrootdirsnondirsmodulesr~   mr   r   	import_rerg   rs   s           @@r   rP   z%get_completerlib.<locals>.module_list   s    2:D 77== E')wwt} *#dGc$ikl+LL C7 CC DGLL)*[.55::<=
  	0A"Aqwwv/	0 CL!!s   )D Dc                     i } t        t        j                        }        }t        j                  D ]  }	 | |   }|j                  |        t        t        |            }|S # t        $ r  |      }	 |j                  d       n# t        $ r Y nw xY w|dvr|| |<           |z
  kD  r$t        st        j                  j                                  |z
  kD  rt        d       g cY c S Y w xY w)z
        Returns a list containing the names of all the modules available in the
        folders of the pythonpath.

        ip.db['rootmodules_cache'] maps sys.path entries to list of modules.
        __init__)r_   r^   z%This is taking too long, we give up.
)r:   r`   builtin_module_namesr   KeyErrorremove
ValueErrorstorestdoutflushprintr   rB   )	rootmodules_cacherootmodules
start_timer   r   TIMEOUT_GIVEUPTIMEOUT_STORAGErP   rr   s	        r   get_root_modulesz*get_completerlib.<locals>.get_root_modules   s    3334V
HH 	(D+D1$ w')	(. 3{+,+  %d+NN:.! y(.5%d+6J&8
 JJ$$&6J&7BCI 8s6   A&&C48B
	C4
	BC4BAC43C4c                 d    |rj                  t        | |            S |d d dk(  xr |dd  dk(   S )Nrt   __)ismodulegetattr)r/   attronly_modulesinspects      r   is_importablez'get_completerlib.<locals>.is_importable   sB    ##GFD$9::BQx4'=DI,=>>r   c           
      L   	 t        |       }| j                  d      }|dd  D ]  }t        ||      } t        |d      xr d|j                  v }g }t        |d      r|r|r2|j                  t        |      D cg c]  } |||      r| c}       |j                  t        |dg              |r:|j                   	
j                  j                  |j                                     t        |      }d|v r|j                  d       t        |      S #  g cY S xY wc c}w )Nr^   r   __file__r   __all__)r%   r   r   hasattrr   r   dirr   dirnamerB   r   r:   )modr   r   modsr/   	m_is_initcompletionsr   r   rP   rg   s           r   
try_importz$get_completerlib.<locals>.try_import   s!   	3A yy~12h 	#F6"A	# Az*GzQZZ/G	:&#a& !G$!.q$!E "& !G H 	71i45{277??1::+FGH+&$z*K  '	I!Gs   D ;D!Dc                    | j                  d      }t        |      }|dk(  r|d   dk(  rdgS |dk  r}|d   dv rv|dk(  r        S |d   j                  d      }t        |      d	k  r        S  dj                  |d
d       d      }|D cg c]  }dj                  |d
d |gz          c}S |dk\  r|d   dk(  r|d   } |      S y
y
c c}w )z
        Returns a list containing the completion possibilities for an import line.

        The line looks like this :
        'import xml.d'
        'from xml.dom import'
        r      r   fromr8   )rY   r   r   r^   rt   Nr	   T)r   r   r    )linewordsnwordsr   completion_listelr   r   s         r   rO   z+get_completerlib.<locals>.module_completion  s     

3U Q;58v-; A:58'88{'))(..%C3x!|'))(#cr();TBO8GH"CHHS"X_-HH Q;58v-(Cc?" .; Is   C)F)r   rg   importlib.machineryrp   r'   imprq   rr   	zipimportrs   r   r!   r    )rp   	_suffixesrq   rz   magic_run_rerO   r   r   r   r   r   r   rP   rg   rr   r   rs   s         @@@@@@@@@@@r   rE   rE   u   s    $ 54 N	 %ON 

 .  99$E9$EEF GI ::<=L%"P%P?!2#> k))I  5$$0N4qad44	45s   B C
3C ?C
	C
c                 2    | j                  d      r| d d S | S )N(r	   )rk   )str_s    r   remove_trailing_parenr   7  s    }}SCRyKr   c            
      .   t         j                  dd  } t        |       dk(  ry d| v sd| v rt        d       y t	        t        t        t        t        |                         }t        |      dk(  ry t        t        |             dkD  rKt        t        t        |            dz   t        t        |             k\  r|j                  t        |              t        |      dk  r||D cg c]  }|dz   	 c}z   }t        dj                  |             y c c}w )Nr   r   <>_longoptr7   r   )r`   argvr   r   r:   rB   mapr   rn   r   maxr   r   r   r    )r   rQ   r)   s      r   mainr   =  s    HHQRLE
5zQ	js34l56IJKLw<1|E"#a'CC0A,BQ,F#kZ_N`Ja,aNN>%01w<1' :QS ::Gchhw  !;s   &D__main__)
__future__r   r   r   r   r`   r   collectionsr   r@   r   r   r   r   r1   rR   rn   rE   r   r   __name__r   r   r   <module>r      sd   2 2 
 	 # <#$':&R*D!* zF r   