3030
3131if TYPE_CHECKING :
3232 from collections .abc import Sequence
33+ from typing import Iterable
3334
3435 from ..settings .skbuild_model import ScikitBuildSettings
3536
@@ -50,7 +51,7 @@ def _make_editable(
5051 reload_dir : Path | None ,
5152 settings : ScikitBuildSettings ,
5253 wheel : WheelWriter ,
53- packages : Sequence [str ],
54+ packages : Iterable [str ],
5455) -> None :
5556 modules = mapping_to_modules (mapping , libdir )
5657 installed = libdir_to_installed (libdir )
@@ -73,9 +74,7 @@ def _make_editable(
7374 # This is necessary because Cython does not support sys.meta_path for
7475 # cimports (as of 3.0.5).
7576 pth_import_paths = (
76- f"import _{ name } _editable\n "
77- + "\n " .join (os .fspath (Path (pkg ).parent .resolve ()) for pkg in packages )
78- + "\n "
77+ f"import _{ name } _editable\n " + "\n " .join (pkg for pkg in packages ) + "\n "
7978 )
8079 wheel .writestr (
8180 f"_{ name } _editable.pth" ,
@@ -350,6 +349,7 @@ def _build_wheel_impl(
350349 ) as wheel :
351350 wheel .build (wheel_dirs )
352351
352+ str_pkgs = (str (Path .cwd ().joinpath (p ).parent .resolve ()) for p in packages )
353353 if editable and settings .editable .mode == "redirect" :
354354 reload_dir = build_dir .resolve () if settings .build_dir else None
355355
@@ -362,16 +362,13 @@ def _build_wheel_impl(
362362 settings = settings ,
363363 wheel = wheel ,
364364 name = normalized_name ,
365- packages = packages ,
365+ packages = str_pkgs ,
366366 )
367367 elif editable and settings .editable .mode == "inplace" :
368368 if not packages :
369369 msg = "Editable inplace mode requires at least one package"
370370 raise AssertionError (msg )
371371
372- str_pkgs = (
373- str (Path .cwd ().joinpath (p ).parent .resolve ()) for p in packages
374- )
375372 wheel .writestr (
376373 f"_{ normalized_name } _editable.pth" ,
377374 "\n " .join (str_pkgs ).encode (),
0 commit comments