Skip to content

Commit

Permalink
Don't mutate env inside of install_xbuildenv
Browse files Browse the repository at this point in the history
  • Loading branch information
hoodmane committed May 13, 2023
1 parent e8a51c1 commit a9411d5
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions cibuildwheel/pyodide.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,16 @@ def install_emscripten(tmp: Path, version: str) -> Path:
return emcc_path


def install_xbuildenv(env: dict[str, str], pyodide_version: str) -> None:
def install_xbuildenv(env: dict[str, str], pyodide_version: str) -> str:
xbuildenv_cache_dir = CIBW_CACHE_PATH / f"pyodide-xbuildenv-{pyodide_version}"
pyodide_root = xbuildenv_cache_dir / ".pyodide-xbuildenv/xbuildenv/pyodide-root/"
if pyodide_root.exists():
env["PYODIDE_ROOT"] = str(pyodide_root)
return
return str(pyodide_root)

xbuildenv_cache_dir.mkdir(exist_ok=True)
# We don't want to mutate env but we need to delete any existing
# PYODIDE_ROOT so copy it first.
env = dict(env)
env.pop("PYODIDE_ROOT", None)
call(
"pyodide",
Expand All @@ -77,7 +79,7 @@ def install_xbuildenv(env: dict[str, str], pyodide_version: str) -> None:
env=env,
cwd=xbuildenv_cache_dir,
)
env["PYODIDE_ROOT"] = str(pyodide_root)
return str(pyodide_root)


def get_base_python(identifier: str) -> Path:
Expand Down Expand Up @@ -171,7 +173,7 @@ def setup_python(
env["PATH"] = os.pathsep.join([str(emcc_path.parent), env["PATH"]])

log.step("Installing Pyodide xbuildenv...")
install_xbuildenv(env, python_configuration.pyodide_version)
env["PYODIDE_ROOT"] = install_xbuildenv(env, python_configuration.pyodide_version)

return env

Expand Down

0 comments on commit a9411d5

Please sign in to comment.