
    Mh0              	          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Zn# e	$ r d dl
ZY nw xY wd dlmZ d dlmZ 	 d dlZn# e$ r dZ ee          dw xY wg dZ ej        d          Z	 d"d	ed
ee         deddfdZedk    rd dlZ ej        d          Ze                    ddd           e                    dded           e                    ddd           e                                Z eej                   dz  Z!e!"                                r;dZ e#ej$        %                    d                    dk    red z  Z e&e           dS  eej         ej'        ej(        d!u            dS dS )#    N)Optional)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]|$)Ttargetvcs_refinteractivereturnc                    t          |                                           } | dz  }| dz  }| dz  }|                                sd| }t          |          t	          |          5 }t          j        |          }ddd           n# 1 swxY w Y   d}	|                                rOt          j        |	                                          }
|

                    di           
                    d          }	|	|                                rIt          j        t          j        ddg| 	                              d
                                          }	n|d         }	d|	v r
|	dd         }	|	                    dd                              dd          }	| dz  }|                                rt%          j        |           |
                    dd          }d}t)          |t*                    r-|
                    dd          }|
                    d|          }n|}d}| dz                                  rd}n,|
                    di           
                    dd          rd}| dz                                  p-| dz                                  p| dz                                  }||||d         |	|
                    dd          t-          |
                    di           
                    d d                    t-          | d!z                                            t-          |          |
                    d"i           
                    d#d$          d%
}d&}t/          t0          j                            d'                    d(k     rt1          j        ||||d)*           nt1          j        ||||d)d)+           |dz                                  5 }t          j        |          }ddd           n# 1 swxY w Y   |
                    d,          r,|d,                                         D ]\  }}||d,         |<   n|d,                                         |d,<   g }|rt?          d-          nd.}|                                 !                    d/          r}|"                    d0           |#                    d1i            |d1                                         D ]\  }}||d1         |<   d2|d1         v r	|d1         d2= d3|d1         v r	|d1         d3= n|"                    d4           |d         d5         |d         d5<   d6d7d8d9d:}|                                D ]Y\  }}||v rP||         ||<   | |z  }|                                r,|$                                 |"                    d;|            ZtK          d          &                    d<          }|                                5 }t          j        |          }ddd           n# 1 swxY w Y   |#                    d=i            |#                    d,i            |d>                                         D ]W\  }}||d=         v r|                    d?d@          |d=         |<   ||d,         v r|                    d?d@          |d,         |<   XdAD ]E}||         r8t+          tO          ||                                                             ||<   B||= F|#                    dBdC           t)          |
                    dD          tP                    r%dC|dD         vr|dD         "                    dC           dE|v r%dC|dE         vr|dE         "                    dC           |)                    t          j*        |dFG                     dH}|+                    dI          D ]f}|,                    |          }t[          |          dk    r,|.                                rA| |z  } |                                 s?| j/        0                    d)d)J           t%          j        ||            | j1        dk    rd)}|2                                }!| 2                                }"|!|"k    r|3                                th          v rd.ndK}#|rt?          dL|dM|# dN          p|#ndK}|                                 !                    d/          r$t%          j        ||            | j1        dk    rd)}N|"                    dO|           h|r| dPz                                  r>	 dQdl5}$tm          j7                    }%| dPz                                  5 }&|%8                    |&           ddd           n# 1 swxY w Y   | dz  }t          j        |	                                          }
|%
                    dRdSdT          }'|'1tQ          ts          dU |':                                                    }(ng }(|
d         
                    d=g           |(z   |
d         d=<   |%;                    dV          r|%                    dV          D ]\  })}*tQ          ts          dW |*:                                                    }+|)|
d         
                    dXi           v r=|
d         
                    dX          i |
d         dX<   |
d         dX         |)         |+z   }+|+|
d         dX         |)<   |)                    |$*                    |
                     | dPz  $                                 |"                    dY           n!# tx          $ r dZ}t{          |           Y nw xY w| d[z  },|,                                r)|,$                                 |"                    d\           |D ]}-t{          d]|-           t{          d^           dS )_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0r6   T)r   datadefaults)r   r7   r8   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=   rD   r:   styleModulezstyle/index.jssideEffectsr      )indentF*)parentsexist_oknzoverwrite "z"? [z]: zskipped _temp_extension/z	setup.cfgr   optionsinstall_requires)fallbackc                 >    | ot                               |           d u S N)JUPYTER_SERVER_REQUIREMENTmatchrs    \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/jupyterlab/upgrade_extension.py<lambda>z"update_extension.<locals>.<lambda>  s     a&W,F,L,LQ,O,OSW,W     zoptions.extras_requirec                     | S rT    rW   s    rY   rZ   z"update_extension.<locals>.<lambda>,  s    Q r[   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fidr7   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.                                                 rY   update_extensionr   ;   s   $ &\\!!##FN*L..N*$J    56553 
l		 sy~~               K ?M.":":"<"<==	mmIr2266v>> 	.'^Z:    K v,Kk!!)!""o!))#s33;;CEE++J "j!!! XXh00FL&$ jj99zz'<88D!!))++ 	,	#	#	'	'R	8	8  
-	'')) 	*%%--//	*Z''))  "$!&\"%)XXm_%M%MTXXlB77;;KLLMMFX-557788Xhh|R0044UMJJ M BHV%%c**++o==*gM\`aaaaaj'PT]a	
 	
 	
 	

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




R }, 	3   OO1222   dG	
>?????sZ   (B		BBO??PP8XX Xm6 f**f.1f.6nn__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 updater3   r4   z --trustF)NT))r   rb   rero   rh   rj   typingr   rd   r   tomliimportlib.resourcesr   pathlibr   ru   ModuleNotFoundErrorr   r`   r   compilerU   r   rs   r   __name__argparseArgumentParserparseradd_argument
parse_argsargsr   answer_filer_   rt   rv   rw   r   r   no_inputr]   r[   rY   <module>r      s        				      



      NNNN    & % % % % %      &MMMM & & &
ZC
,s

%&
   : (RZ(CDD  EIE@ E@E@"3-E@=AE@	E@ E@ E@ E@P zOOO$X$1QRRRF
\@cddd
wS?PQQQ
*ISWXXXD$ty//$99K J E5#))#..//?BB:Cc




DL$-52HIIIII+ s   % 	11A A