
    lKj0              	          d dl Z d dlZd dlZd dlZd dlZd dlZ	 d dlZd dl	m
Z
 d dlmZ 	 d dlZg dZ ej$                  d      Z	 d dededz  d	ed
dfdZedk(  rd dlZ ej2                  d      Zej7                  ddd       ej7                  dded       ej7                  ddd       ej9                         Z eej<                        dz  ZejA                         r4dZ e!ejD                  jG                  d            dk\  redz  Z e$e       y eej<                  ejJ                  ejL                  du        yy# e$ r d dlZY 2w xY w# e$ r dZ ee      dw xY w)!    N)files)PathzNPlease install copier; you can use `pip install jupyterlab[upgrade-extension]`)z".github/workflows/binder-on-pr.ymlz.github/workflows/build.ymlz#.github/workflows/check-release.ymlz#.github/workflows/enforce-label.ymlz".github/workflows/prep-release.ymlz%.github/workflows/publish-release.ymlz..github/workflows/update-integration-tests.ymlzbinder/postBuild.eslintignore.eslintrc.jsz
.gitignorez.prettierignore.prettierrc.stylelintrcz
RELEASE.mdzbabel.config.jsconftest.pyjest.config.jspyproject.tomlsetup.pyztsconfig.jsonztsconfig.test.jsonzui-tests/README.mdz&ui-tests/jupyter_server_test_config.pyzui-tests/package.jsonzui-tests/playwright.config.jsz^jupyter_server([^\w]|$)targetvcs_refinteractivereturnc                    t        |       j                         } | dz  }| dz  }| dz  }|j                         sd| }t        |      t	        |      5 }t        j                  |      }ddd       d}	|j                         rDt        j                  |j                               }
|
j                  di       j                  d      }	|	|j                         rFt        j                  t        j                  ddg| 	      j                  d
      j!                         }	nd   }	d|	v r|	dd }	|	j#                  dd      j#                  dd      }	| dz  }|j                         rt%        j&                  |       j                  dd      }d}t)        |t*              r%|j                  dd      }|j                  d|      }n|}d}| dz  j                         rd}n$|j                  di       j                  dd      rd}| dz  j                         xs( | dz  j                         xs | dz  j                         }||||d   |	|j                  dd      t-        |j                  di       j                  d d            t-        | d!z  j                               t-        |      |j                  d"i       j                  d#d$      d%
}d&}t/        t0        j2                  j5                  d'            d(k  rt1        j6                  ||||d)*       nt1        j8                  ||||d)d)+       |dz  j	                         5 }t        j                  |      }ddd       |j                  d,      r$d,   j;                         D ]  \  }}||d,   |<    nd,   j=                         |d,<   g }|rt?        d-      nd.}|jA                         jC                  d/      ra|jE                  d0       |jG                  d1i        |d1   j;                         D ]  \  }}||d1   |<    d2|d1   v r|d1   d2= d3|d1   v r|d1   d3= n|jE                  d4       |d   d5   |d   d5<   d6d7d8d9d:}|j;                         D ]L  \  }}||v s||   ||<   | |z  }|j                         s)|jI                          |jE                  d;|        N tK        d      jM                  d<      }|j	                         5 }t        j                  |      }ddd       |jG                  d=i        |jG                  d,i        d>   j;                         D ]D  \  }}||d=   v r|j#                  d?d@      |d=   |<   ||d,   v s-|j#                  d?d@      |d,   |<   F dAD ]3  }||   r)t+        tO        ||   j;                                     ||<   1||= 5 |jG                  dBdC       t)        |j                  dD      tP              rdC|dD   vr|dD   jE                  dC       dE|v rdC|dE   vr|dE   jE                  dC       |jS                  t        jT                  |dFG             dH}|jW                  dI      D ]G  }|jY                  |      }t[        |      dk(  r$|j]                         r5| |z  } | j                         sF| j^                  ja                  d)d)J       t%        j<                  ||        | jb                  dk(  sd)}|je                         }!| je                         }"|!|"k(  r|jg                         th        v rd.ndK}#|rt?        dL|dM|# dN      xs |#ndK}|jA                         jC                  d/      r+t%        j<                  ||        | jb                  dk(  s0d)}4|jE                  dO|       J |r| dPz  j                         r	 dQdl5}$tm        jn                         }%| dPz  j	                         5 }&|%jq                  |&       ddd       | dz  }t        j                  |j                               }
|%j                  dRdSdT      }'|'%tQ        ts        dU |'ju                                     }(ng }(|
d   j                  d=g       |(z   |
d   d=<   |%jw                  dV      r|%j;                  dV      D ]u  \  })}*tQ        ts        dW |*ju                                     }+|)|
d   j                  dXi       v r*|
d   j                  dX      i |
d   dX<   |
d   dX   |)   |+z   }+|+|
d   dX   |)<   w |jS                  |$jU                  |
             | dPz  jI                          |jE                  dY       | d[z  },|,j                         r!|,jI                          |jE                  d\       |D ]  }-t{        d]|-        t{        d^       y# 1 sw Y   	WxY w# 1 sw Y   xxY w# 1 sw Y   xY w# 1 sw Y   xY w# tx        $ r dZ}t{        |       Y w xY w)_a#  Update an extension to the current JupyterLab

    target: str
        Path to the extension directory containing the extension
    vcs_ref: str [default: None]
        Template vcs_ref to checkout
    interactive: bool [default: true]
        Whether to ask before overwriting content

    zpackage.jsonr   r   zNo package.json exists in Nprojectnamez--name)cwdutf8@   /_-_temp_extensionauthorz<author_name> emailfrontendzjupyter-configserver
jupyterlab	themePaththemer	   r
   zui-testsdescriptionz<description>	schemaDirbinder
repositoryurlz<repository)
kindauthor_nameauthor_emaillabextension_namepython_nameproject_short_descriptionhas_settings
has_bindertestr'   z0https://github.com/jupyterlab/extension-template.80r5   T)r   datadefaults)r   r6   r7   unsafedevDependenciesz(Overwrite scripts in package.json? [n]: yYzUpdated scripts in package.jsonscriptszinstall-extpreparez-package.json scripts must be updated manually	outputDirr   r   r   r   )eslintConfigeslintIgnoreprettier	stylelintzDELETED zstaging/package.jsondependenciesresolutions~^)r<   rC   r9   styleModulezstyle/index.jssideEffectsr      )indentF*)parentsexist_oknzoverwrite "z"? [z]: zskipped _temp_extension/z	setup.cfgr   optionsinstall_requires)fallbackc                 8    | xr t         j                  |       d u S N)JUPYTER_SERVER_REQUIREMENTmatchrs    m/Users/ahmed/devFolder/Ultron/claude-voice/.venv/lib/python3.12/site-packages/jupyterlab/upgrade_extension.py<lambda>z"update_extension.<locals>.<lambda>  s    a&W,F,L,LQ,OSW,W&W    zoptions.extras_requirec                     | S rS    rV   s    rX   rY   z"update_extension.<locals>.<lambda>+  s    QrZ   zoptional-dependencieszDELETED setup.cfgz5To update pyproject.toml, you need to install tomli-wzMANIFEST.inzDELETED MANIFEST.inz**z2** Remove _temp_extensions directory when finished)>r   resolveexistsRuntimeErroropenjsonloadtomllibloads	read_textget
subprocesscheck_outputsys
executabledecodestripreplaceshutilrmtree
isinstancedictbooltuplecopier__version__splitrun_autorun_copyitemscopyinputupper
startswithappend
setdefaultunlinkr   joinpathsortedlist
write_textdumpsrglobrelative_tostris_dirparentmkdirr   
read_bytesas_posixRECOMMENDED_TO_OVERRIDEtomli_wconfigparserConfigParser	read_filefilter
splitlineshas_sectionImportErrorprint).r   r   r   package_filepyproject_file
setup_filemsgfidr6   r-   	pyproject
output_dirr   r+   r*   r)   has_testextra_contexttemplate	temp_datakeyvaluewarningschoicelintersfilelinter_fileroot_jlab_packageroot_jlab_dataoverride_pyprojectprelpathfile_targetold_datanew_datadefaultr   configsetup_cfg_filerequirements_rawrequirementsextradeps_rawdepsmanifest_inwarnings.                                                 rX   update_extensionr   :   s	   $ &\!!#FN*L..N*$J *6*53 
l	syy~ 
 KMM.":":"<=	mmIr266v>''^^Z:   v,Kk!)!"o!))#s3;;CE++Jj! XXh0FL&$jj9zz'<8D!!))+	,	#	'	'R	8 
-	'') 	*%%--/	*Z'')  "$!&\"%)XXm_%MTXXlB7;;KLMFX-5578Xhh|R044UMJM BHV%%c*+o=*gM\`aj'PT]a	

 ~
%	+	+	-IIcN	 
. xx!"#$56<<>JC+0D"#C( ? #,,=">"C"C"E HBMU=>SVF||~  %9:	2&#I.446JC#(DOC  7DO+Y.Y'Y	*GH '0&=k&JD{#
 ''!#	G ]]_	T)!#DI 4-K!!#""$(4& 12 % l+445KL				!S3 
" 	OONB'OO%r*$]399;
U$~&&(-c3(?D %$())+0==c+BD"#C(	 < >9VDIOO$567DIS		 > 	OOM#34$((=)405ETR_M`5`]""#34$+4=@W-. DJJtA67 c"--
+w<>)88:w&!!#$$TD$AKK;'#33%)"||~H"--/H8#$--/3JJcPSG  WKtG9C@ALW 
 ||~((-A{+##'77)-&":7+ FG9 #< [ ((*)5
 &224{*002n$$^4 3 "(*:!:#MM.*B*B*DE	 $*::i9KVZ:#[ #/#'W,779$L $&L i(,,^R@<O )$^4
 %%&>?+1<<8P+Qx#F;8K8K8M$NO Ii$8$<$<=TVX$YY(3778OPXPR	) 45L M#,Y#78O#PQV#WZ^#^DOS	),-DEeL ,R ))'--	*BC+%--/ 34}, OO12 dG  

>?U 
	P 
.	-^ 
"	!L 32  Mc
sB   f? g)gg3 /g&?g	gg#&g03hh__main__zUpgrade a JupyterLab extension)r$   z
--no-input
store_truez!whether to prompt for information)actionhelppathstorezthe target path)r   typer   z	--vcs-refzthe template hash to checkout)r   r   z.copier-answers.ymlzrThis script won't do anything for copier template, instead execute in your extension directory:

    copier updater2   r3   z --trustF)NT)'r   ra   rern   rg   ri   rc   r   tomliimportlib.resourcesr   pathlibr   rt   ModuleNotFoundErrorr   r_   r   compilerT   r   rr   r   __name__argparseArgumentParserparseradd_argument
parse_argsargsr   answer_filer^   rs   ru   rv   r   r   no_inputr\   rZ   rX   <module>r      s     	   
 & & : (RZZ(CD  BFE@E@*E@:>E@	E@P z$X$$1QRF
\@cd
wS?PQ
*ISWXDtyy/$99K E##))#./?B:Cc
DLL$--52HI+ k	    &
ZC
s
%&s   E E 	EEE%