Skip to content

Commit

Permalink
Hardcode support for platform pyodide_wasm32
Browse files Browse the repository at this point in the history
I don't like it; this feels like a hack, but it works, and I would be
happy to get more guidance.

Also one weird thing, is if I installl pywavelets nightly, it installs
numpy stable; while the index does have a numpy nightly;

And with the same config, if I ask it to install numpy; it does install
numpy nightly.

So there is something wonkey in recursive dependency handling of
indexes.
  • Loading branch information
Carreau committed Nov 25, 2024
1 parent 1fa0b52 commit 0672acd
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 3 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## Unreleased

### Fixed

- Fix a bug that prevented some wasm32 wheel to be recognized as compatible with pyodide
[#159](https://github.com/pyodide/micropip/pull/159)

## [0.7.1] - 2024/11/11

### Fixed
Expand Down
13 changes: 10 additions & 3 deletions micropip/_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import json
from importlib.metadata import Distribution
from pathlib import Path
from sysconfig import get_platform
from sysconfig import get_config_var, get_platform

from packaging.requirements import Requirement
from packaging.tags import Tag
Expand Down Expand Up @@ -62,8 +62,15 @@ def get_files_in_distribution(dist: Distribution) -> set[Path]:


@functools.cache
def sys_tags() -> list[Tag]:
return list(sys_tags_orig())
def sys_tags() -> tuple[Tag, ...]:
new_tags = []
abi_version = get_config_var("PYODIDE_ABI_VERSION")
pyodide_platform_tag = f"pyodide_{abi_version}_wasm32"
for tag in sys_tags_orig():
if "emscripten" in tag.platform:
new_tags.append(Tag(tag.interpreter, tag.abi, pyodide_platform_tag))
new_tags.append(tag)
return tuple(new_tags)


@functools.cache
Expand Down
3 changes: 3 additions & 0 deletions micropip/package_index.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,9 @@ def _fast_check_incompatibility(filename: str) -> bool:
if not filename.endswith(".whl"):
return False

if filename.endswith("wasm32.whl") and sys.platform == "emscripten":
return True

if sys.platform not in filename and not filename.endswith("-none-any.whl"):
return False

Expand Down

0 comments on commit 0672acd

Please sign in to comment.