mne-tools / mne-tools/mne-python
Depend on `h5io` and `pymatreader` by default
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 3.5k
- Forks
- 1.6k
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 100
Description
Hello, currently we have the following variant in pyproject.toml:
# Dependencies for MNE-Python functions that use HDF5 I/O
hdf5 = ["h5io", "pymatreader"]
The HDF5 I/O is for example used for SourceMorph objects. Since this is a "standard" MNE class, I feel we should support I/O by default (i.e., when doing pip install mne).
I suspect the reason why h5io is only included in a special variant is because its dependency, h5py, must be compiled and linked, which used to be a problem on many platforms (one of the reason why Anaconda became so popular, as they provided binaries early on). Now with the availability of binary wheels, this problem has basically disappeared. The developers provide wheels for all relevant platforms except for aarch64, but @larsoner is working on this.
I would be in favor of moving the dependencies that are currently under the hdf5 variant into our default dependency stack once binary wheels of h5py for aarch64 become available and h5io can hence be installed from PyPI without requiring any compilation. The hdf5 variant selector can remain in pyproject.toml for backward-compat and just remain empty (we already do this for data).
Thoughts?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in pyproject.toml by comparing the default dependency list with the hdf5 variant. Confirm whether h5io and pymatreader should move into the default stack, while leaving the hdf5 selector empty for backward compatibility; verify the resulting package metadata and installation behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100