2525from jupyter_core .utils import ensure_dir_exists
2626from jupyter_server .extension .serverextension import ArgumentConflict
2727
28- # from jupyterlab_server.config import get_federated_extensions
2928from .federated_extensions_requirements import get_federated_extensions
3029
3130try :
3231 from tomllib import load # Python 3.11+
3332except ImportError :
3433 from tomli import load
3534
35+ from .core_path import default_core_path
36+
3637# from .commands import _test_overlap TO BE DONE -----------------------------
3738
3839DEPRECATED_ARGUMENT = object ()
@@ -95,7 +96,7 @@ def develop_labextension( # noqa
9596 ensure_dir_exists (labext )
9697
9798 if isinstance (path , (list , tuple )):
98- msg = "path must be a string pointing to a single extension to install; call this function multiple times to install multiple extensions"
99+ msg = "path must be a string pointing to a single extension to install; call this function multiple times to install multiple extensions" # noqa: E501
99100 raise TypeError (msg )
100101
101102 if not destination :
@@ -104,7 +105,7 @@ def develop_labextension( # noqa
104105 full_dest = normpath (pjoin (labext , destination ))
105106 if overwrite and os .path .lexists (full_dest ):
106107 if logger :
107- logger .info ("Removing: %s" % full_dest )
108+ logger .info ("Removing: %s" , full_dest )
108109 if os .path .isdir (full_dest ) and not os .path .islink (full_dest ):
109110 shutil .rmtree (full_dest )
110111 else :
@@ -124,22 +125,23 @@ def develop_labextension( # noqa
124125 if platform .platform ().startswith ("Windows" ):
125126 msg = (
126127 "Symlinks can be activated on Windows 10 for Python version 3.8 or higher"
127- " by activating the 'Developer Mode'. That may not be allowed by your administrators.\n "
128+ " by activating the 'Developer Mode'. That may not be allowed by your administrators.\n " # noqa: E501
128129 "See https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development"
129130 )
130131 raise OSError (msg ) from e
131132 raise
132133
133134 elif not os .path .islink (full_dest ):
134- raise ValueError ("%s exists and is not a symlink" % full_dest )
135+ msg = f"{ full_dest } exists and is not a symlink"
136+ raise ValueError (msg )
135137
136138 elif os .path .isdir (path ):
137139 path = pjoin (os .path .abspath (path ), "" ) # end in path separator
138140 for parent , _ , files in os .walk (path ):
139141 dest_dir = pjoin (full_dest , parent [len (path ) :])
140142 if not os .path .exists (dest_dir ):
141143 if logger :
142- logger .info ("Making directory: %s" % dest_dir )
144+ logger .info ("Making directory: %s" , dest_dir )
143145 os .makedirs (dest_dir )
144146 for file_name in files :
145147 src = pjoin (parent , file_name )
@@ -152,7 +154,7 @@ def develop_labextension( # noqa
152154 return full_dest
153155
154156
155- def develop_labextension_py (
157+ def develop_labextension_py ( # noqa: PLR0913
156158 module ,
157159 user = False ,
158160 sys_prefix = False ,
@@ -195,10 +197,7 @@ def develop_labextension_py(
195197 return full_dests
196198
197199
198- from .core_path import default_core_path
199-
200-
201- def build_labextension (
200+ def build_labextension ( # noqa: PLR0913
202201 path , logger = None , development = False , static_url = None , source_map = False , core_path = None
203202):
204203 """Build a labextension in the given path"""
@@ -208,7 +207,7 @@ def build_labextension(
208207 ext_path = str (Path (path ).resolve ())
209208
210209 if logger :
211- logger .info ("Building extension in %s" % path )
210+ logger .info ("Building extension in %s" , path )
212211
213212 builder = _ensure_builder (ext_path , core_path )
214213
@@ -223,15 +222,15 @@ def build_labextension(
223222 subprocess .check_call (arguments , cwd = ext_path ) # noqa S603
224223
225224
226- def watch_labextension (
225+ def watch_labextension ( # noqa: PLR0913
227226 path , labextensions_path , logger = None , development = False , source_map = False , core_path = None
228227):
229228 """Watch a labextension in a given path"""
230229 core_path = default_core_path () if core_path is None else str (Path (core_path ).resolve ())
231230 ext_path = str (Path (path ).resolve ())
232231
233232 if logger :
234- logger .info ("Building extension in %s" % path )
233+ logger .info ("Building extension in %s" , path )
235234
236235 # Check to see if we need to create a symlink
237236 federated_extensions = get_federated_extensions (labextensions_path )
@@ -274,9 +273,8 @@ def _ensure_builder(ext_path, core_path):
274273 dep_version2 = ext_data .get ("devDependencies" , {}).get ("@jupyterlab/builder" )
275274 dep_version2 = dep_version2 or ext_data .get ("dependencies" , {}).get ("@jupyterlab/builder" )
276275 if dep_version2 is None :
277- raise ValueError (
278- "Extensions require a devDependency on @jupyterlab/builder@%s" % dep_version1
279- )
276+ msg = f"Extensions require a devDependency on @jupyterlab/builder@{ dep_version1 } "
277+ raise ValueError (msg )
280278
281279 # if we have installed from disk (version is a path), assume we know what
282280 # we are doing and do not check versions.
@@ -310,7 +308,7 @@ def _ensure_builder(ext_path, core_path):
310308 # )
311309
312310 # if not overlap:
313- # msg = f"Extensions require a devDependency on @jupyterlab/builder@{dep_version1}, you have a dependency on {dep_version2}"
311+ # msg = f"Extensions require a devDependency on @jupyterlab/builder@{dep_version1}, you have a dependency on {dep_version2}" # noqa: E501
314312 # raise ValueError(msg)
315313
316314 return osp .join (
@@ -339,10 +337,10 @@ def _should_copy(src, dest, logger=None):
339337 # we add a fudge factor to work around a bug in python 2.x
340338 # that was fixed in python 3.x: https://bugs.python.org/issue12904
341339 if logger :
342- logger .warning ("Out of date: %s" % dest )
340+ logger .warning ("Out of date: %s" , dest )
343341 return True
344342 if logger :
345- logger .info ("Up to date: %s" % dest )
343+ logger .info ("Up to date: %s" , dest )
346344 return False
347345
348346
@@ -388,9 +386,8 @@ def _get_labextension_dir(user=False, sys_prefix=False, prefix=None, labextensio
388386 ]
389387 conflicting_set = [f"{ n } ={ v !r} " for n , v in conflicting if v ]
390388 if len (conflicting_set ) > 1 :
391- msg = "cannot specify more than one of user, sys_prefix, prefix, or labextensions_dir, but got: {}" .format (
392- ", " .join (conflicting_set )
393- )
389+ conflict = ", " .join (conflicting_set )
390+ msg = f"cannot specify more than one of user, sys_prefix, prefix, or labextensions_dir, but got: { conflict } " # noqa: E501
394391 raise ArgumentConflict (msg )
395392 if user :
396393 labext = pjoin (jupyter_data_dir (), "labextensions" )
@@ -449,8 +446,8 @@ def _get_labextension_metadata(module): # noqa
449446 if not package :
450447 try :
451448 package = (
452- subprocess .check_output (
453- [sys .executable , "setup.py" , "--name" ], # noqa S603
449+ subprocess .check_output ( # noqa: S603
450+ [sys .executable , "setup.py" , "--name" ],
454451 cwd = mod_path ,
455452 )
456453 .decode ("utf8" )
0 commit comments