From 8ea7f430e49e3edf7476a8862f4f2f9b9b5f93cd Mon Sep 17 00:00:00 2001 From: Hood Chatham Date: Mon, 11 Nov 2024 15:23:30 +0100 Subject: [PATCH 1/4] Use a less sloppy check in `remove_avoided_requirements` Resolves https://github.com/pyodide/pyodide/issues/5187. In that issue, the build requires a package called `cmake-build-extension` but because we have `cmake` in the list of requirements to avoid we drop it and it breaks the build. This logic was introduced in https://github.com/pyodide/pyodide/pull/2272 and did not come up in the review. Surprisingly this is the first problem it has caused. Let's see if this change breaks anything in Pyodide CI. --- pyodide_build/pypabuild.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyodide_build/pypabuild.py b/pyodide_build/pypabuild.py index 534a0549..93be2bd4 100644 --- a/pyodide_build/pypabuild.py +++ b/pyodide_build/pypabuild.py @@ -118,7 +118,7 @@ def remove_avoided_requirements( for reqstr in list(requires): req = Requirement(reqstr) for avoid_name in set(avoided_requirements): - if avoid_name in req.name.lower(): + if avoid_name == req.name.lower(): requires.remove(reqstr) return requires From 66228ce628e595871072e4ee6b59c4bff8297139 Mon Sep 17 00:00:00 2001 From: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> Date: Tue, 8 Apr 2025 08:47:53 +0530 Subject: [PATCH 2/4] Avoid `oldest-supported-numpy` Co-Authored-By: Hood Chatham Co-Authored-By: Gyeongjae Choi --- pyodide_build/pypabuild.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pyodide_build/pypabuild.py b/pyodide_build/pypabuild.py index 73022d01..17105057 100644 --- a/pyodide_build/pypabuild.py +++ b/pyodide_build/pypabuild.py @@ -34,6 +34,7 @@ AVOIDED_REQUIREMENTS = [ # mesonpy installs patchelf in linux platform but we don't want it. "patchelf", + "oldest-supported-numpy", ] # corresponding env variables for symlinks From 776f924a167a1db54e5ee166f4b4d2f051b2cadb Mon Sep 17 00:00:00 2001 From: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> Date: Wed, 9 Apr 2025 15:35:12 +0530 Subject: [PATCH 3/4] Add PyWavelets [integration] --- integration_tests/recipes/pywavelets/meta.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 integration_tests/recipes/pywavelets/meta.yaml diff --git a/integration_tests/recipes/pywavelets/meta.yaml b/integration_tests/recipes/pywavelets/meta.yaml new file mode 100644 index 00000000..70b69ba9 --- /dev/null +++ b/integration_tests/recipes/pywavelets/meta.yaml @@ -0,0 +1,18 @@ +package: + name: pywavelets + version: 1.8.0 + top-level: + - pywt +source: + sha256: f3800245754840adc143cbc29534a1b8fc4b8cff6e9d403326bd52b7bb5c35aa + url: https://files.pythonhosted.org/packages/48/45/bfaaab38545a33a9f06c61211fc3bea2e23e8a8e00fedeb8e57feda722ff/pywavelets-1.8.0.tar.gz +requirements: + host: + - numpy + run: + - numpy +about: + home: https://github.com/PyWavelets/pywt + PyPI: https://pypi.org/project/pywavelets + summary: PyWavelets, wavelet transform module + license: MIT From e0a550d7f483b9ca5adac5ab751f612819f6d4e1 Mon Sep 17 00:00:00 2001 From: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> Date: Wed, 9 Apr 2025 15:39:57 +0530 Subject: [PATCH 4/4] Add README note for PyWavelets [integration] --- integration_tests/recipes/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/integration_tests/recipes/README.md b/integration_tests/recipes/README.md index e23f0870..395adf04 100644 --- a/integration_tests/recipes/README.md +++ b/integration_tests/recipes/README.md @@ -3,6 +3,7 @@ This directory contains a few curated recipes to test the build process of pyodi ### List of recipes and their purpose - numpy: The most popular and widely used library in the scientific computing community. +- pywavelets: a library with C and Cython extensions that uses the NumPy-C API. - orjson: Tests rust extension modules. - zlib: Tests static libraries. - geos: Tests shared libraries.