
    'Gg%                        d dl Z d dlZd dlZd dlmZ d dlmZmZmZ ej                  j                  ej                  j                  e      d      Z	 ddeeef   dee   dedee   d	ef
d
Zdeeef   dee   defdZ	 ddee   dee   d	edeee   ee   f   fdZdefdZd Zd ZdeddfdZdeddfdZdedefdZdeddfdZy)    N)Path)DictListTuplezmappings.jsonmappingsinstalled_modulesline_idxlinesverbosec           	         g }g }g }d}d}	||d  D ]R  }
|	dz  }	d|
v rd|
|
j                         j                  d      d   j                         g}|d   j                  d      rg |d<   d}n|
|d   j                  d	      g}|r=d
|
v rd}n6d|
vr2|d   j                  |
j                         j	                  dd             |st        |      dkD  r||d   D cg c]  }|j                          }}i }|D ]  }|| v r%| |   }||vr|g||<   ||   j                  |       ,t        d| d       |d   j                  d      d   j                  d      d   }d|vr|j	                  dd      }||vr|g||<   ||   j                  |        |j                         D ]  \  }}|j	                  dd      j	                  dd      }||vrH|D cg c]	  }||v s| }}t        |      dk(  r&|j                  |       |j                  d| d       d	j                  |      }|j                  d| d| d       d}i }g } ||||	fc S |rB|j                  |
       U ||||	fS c c}w c c}w )NFr      from  import (Tz, ), zModule not found: z
Switching to corezllama_index.corellama_index.-_%pip install 
)	stripsplit
startswithappendreplacelenprintitemsjoin)r   r   r	   r
   r   	new_linesnew_installsimported_modulesparsing_modulesskipped_lineslineximported_module_namesnew_importsmodulenew_import_parentnew_install_parentoverlaps                     y/home/kushmeetdev/apache_webroot/langgraph_flaskproject/venv/lib/python3.12/site-packages/llama_index/cli/upgrade/base.py_parse_from_importsr2   
   s    ILOMhi  >#d? $djjl&8&8&DR&H&N&N&PQ#..s3') $"&$(*:2*>*D*DT*J#K d{"'D $++DJJL,@,@b,IJ3'7#81#<8H8L$M1QWWY$M!$MK/ FX%(0(8%(;:@$56#$56==fE.vh6IJK )+11*=a@FFwOPRS & *1BB,=,E,E)+=-) );:@$56#$56==fE-F0 3>2C2C2E &.!;%6%>%>sC%H%P%P&" &->>*;WQqDV?VqWGW7|q()001CD$++m<N;Or,RS"ii4  5):(;8K=PR!ST"' #% &  l,=}LL T"}>#@ l$5}DD_ %N> Xs   I,	I1I1r)   c                    d}t        j                  ||      }g }g }|r|j                         \  }}|r|n|}	|	| v rj| |	   }
|j                  d|
 d|	 d       |
j	                  dd      j	                  dd      }||vrG|j                  d| d       |j                  |       n t        d	|	 d
       |j                  |       |||fS )Nzqdownload_loader\([\"']([A-Z,a-z]+)[\"'][\s,a-z,A-Z,_=]*\)|download_tool\([\"']([a-z,A-Z]+)[\"'][A-Z,a-z,\s,_=]*\)r   r   r   r   r   r   r   zReader/Tool not found: z
Keeping line as is.)researchgroupsr   r   r!   )r   r   r)   regexresultr$   r%   toolreaderr-   r.   r/   s               r1   _parse_hub_downloadsr;   Z   s    
 AEYYud#FIL}}f6X ( 0u%6$7xxrJK!2!:!:3!D!L!LSRU!V!)::##m4F3Gr$JK!(();<+F83HIJT"l$555    returnc                    t        t              5 }t        j                  |      }d d d        g }g }d}d}t	        |       D ]  \  }	}
g }g }g }|dk7  r|dz  }|r|dkD  rd}d|
v sd|
v sd|
v rt        ||	| |      \  }}}}d}n d	|
v sd
|
v rt        ||
      \  }}}n|s|
g}||z  }||z  }||z  }t        t        |            } |t        t        |            fS # 1 sw Y   xY w)NFr   r   zfrom llama_index.zfrom llama_index importzfrom llama_hub.)r   r   r	   r
   r   Tzdownload_loader(zdownload_tool()r   r   r)   )	openmappings_pathjsonload	enumerater2   r;   listset)r
   r   r   fr   r%   r$   just_found_importsr(   idxr)   this_new_linesthis_new_installsthis_installed_moduless                 r1   parse_linesrL   t   sj    
m	  99Q<  LIMu% 19	T!#AQM-!"3!&  4'(D0 D( $!"3!& "&4'+;t+C
 %!"3	!& $"VN^#	))33 %6!78c19f d3|,---w   s   C  C)c                 p    | d   g d}t              dkD  ry| d   dk(  rt        fd|D              ryy)	Nsource)zpip install llama-hubzimport download_loaderzimport download_toolr   F	cell_typecodec              3   ,   K   | ]  }|d    v   yw)r   N ).0elr
   s     r1   	<genexpr>z+_cell_installs_llama_hub.<locals>.<genexpr>   s      +eAh+s   T)r    any)cellllama_hub_partial_statementsr
   s     @r1   _cell_installs_llama_hubrY      sM    NE$  5zA~KF"s +!=+ ( r<   c                 j    | r0t        t        |             } | d d | d   j                  dd      gz   S | S )Nr   r   r   )rD   rE   r   )r%   s    r1   _format_new_installsr[      sA    C-.CR L$4$<$<T2$F#GGGr<   c                    t        d|  dd       t        |       5 }t        j                  |      }d d d        d}| dk(  rd}dg}g }g }d}t	        d	         D ]V  \  }}	|	d
   dk(  r8|rt        d|	 d       |dk(  r|}|	d   }
t        |
||      \  }}||z  }||	d<   |j                  |	       X t        |      dkD  r(||d	<   di d g t        |      d}|j                  ||       |D 	cg c]  }	t        |	      r|	 }}	||d	<   t        | d      5 }t        j                  ||dd       d d d        y # 1 sw Y   xY wc c}	w # 1 sw Y   y xY w)Nz
=====================
r   T)flushFz9../docs/examples/managed/manage_retrieval_benchmark.ipynbllama-index-corer   cellsrO   rP   zcell: rN   r   )rO   metadataexecution_countoutputsrN   wr   )indentensure_ascii)r!   r?   rA   rB   rC   rL   r   r    r[   insertrY   dump)	file_pathrF   notebookr   r   	cur_cellsr%   first_code_idxrH   rW   rP   r$   cur_new_installsnew_cells                 r1   upgrade_nb_filern      s   	%i[
34@	i  A99Q<  GOO+,ILNx01 	T&tfoT2#!$>D*5d<Mw*W'I',,L&DN  <1%#*<8
 	2"+R$3KD3QRIR!HW	i	 =		(Aae<= =Q   L S= =s#   D9.E?EE9EErh   c                    t        |       5 }|j                         }d d d        dg}t        |      \  }}t        | d      5 }|j                  dj	                  |             d d d        t        |      dkD  rt        d       |D ]+  }t        |j                         j                  dd             - y # 1 sw Y   xY w# 1 sw Y   _xY w)Nr^   rc   r   r   zNew installs:%)	r?   	readlinesrL   writer#   r    r!   r   r   )rh   rF   r
   r   r$   r%   installs          r1   upgrade_py_md_filert      s    	i A ,,)%1BCI|	i	 $		"#$ <1o 0gmmo%%c2./0 $ $s   B6!C6B?Cc                     | j                  d      rt        |        y | j                  d      rt        |        y t        d|        )Nz.ipynb)z.pyz.mdzFile type not supported: )endswithrn   rt   	Exception)rh   s    r1   upgrade_filerx     sA    (#	"			N	+9%3I;?@@r<   pathc                 :    t        d | j                  D              S )Nc              3   J   K   | ]  }|j                  d       xr |dv  yw)r   )r   z..N)r   )rS   parts     r1   rU   z_is_hidden.<locals>.<genexpr>  s&     WDts#?K(??Ws   !#)rV   parts)ry   s    r1   
_is_hiddenr~     s    WDJJWWWr<   	input_dirc                 z   t        t        |       j                  d            }|t        t        |       j                  d            z  }|t        t        |       j                  d            z  }|D cg c]  }t        |      r| }}|D ]'  }|j	                         st        t        |             ) y c c}w )Nz*.pyz*.ipynbz*.md)rD   r   rglobr~   is_filerx   str)r   	file_refsr*   file_refs       r1   upgrade_dirr     s    T)_**623Id9o++I677Id9o++F344I%;qZ];I; (X'( <s   4B8B8)F)rA   osr4   pathlibr   typingr   r   r   ry   r#   dirname__file__r@   r   intboolr2   r;   rL   rY   r[   rn   rt   rx   r~   r   rR   r<   r1   <module>r      sh    	 	  $ $RWW__X6H ME38nMECyME ME 9	ME
 ME`638n6Cy6 66 EJ>.9>.)-c>.=A>.
49d3i >.Bd "+=\0# 0$ 0 AC AD AXT Xd X(3 (4 (r<   