
    Xh0              	          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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e   d
eddfdZedk(  rd dlZ ej6                  d      Zej;                  ddd       ej;                  dded       ej;                  ddd       ej=                         Z eej@                        dz  Z!e!jE                         r4dZ e#ejH                  jK                  d            dk\  redz  Z e&e       y eej@                  ejN                  ejP                  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)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]|$)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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                 8    | xr t         j                  |       d u S N)JUPYTER_SERVER_REQUIREMENTmatchrs    P/var/www/html/myenv/lib/python3.12/site-packages/jupyterlab/upgrade_extension.py<lambda>z"update_extension.<locals>.<lambda>  s    a&W,F,L,LQ,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   ;   sC
   $ &\!!#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<<> 	1JC+0D"#C(	1 #,,=">"C"C"E HBMU=>SVF||~  %9:	2&#I.446 	)JC#(DOC 	)DO+Y.Y'Y	*GH '0&=k&JD{#
 ''!#	G ]]_ 3	T)!#DI 4-K!!#""$(4& 123 l+445KL				! (S3( 	OONB'OO%r*$]399; C
U$~&&(-c3(?D %$())+0==c+BD"#C(	C > 9VDIOO$567DIS		 	OOM#34$((=)405ETR_M`5`]""#34$+4=@W-. DJJtA67 c" H--
+w<>)88:w&!!#$$TD$AKK;'#33%)"||~H"--/H8#$--/3JJcPSG  WKtG9C@ALW 
 ||~((-A{+##'77)-&":7+ FG9H< [ ((*)5
 &224{*002 5n$$^45 "(*:!:#MM.*B*B*DE	 $*::i9KVZ:#[ #/#'W,779$L $&L i(,,^R@<O )$^4
 %%&>?+1<<8P+Q T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T ))'--	*BC+%--/ 34}, OO12  dG 

>?U P# #^( (L5 5  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 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     	   
  & & : (RZZ(CD  EIE@E@"3-E@=A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+