Skip to content

Commit a430801

Browse files
committed
Merge branch 'master' of https://github.com/Hugo-W/pyEEG
2 parents 53ddeab + 05127c0 commit a430801

3 files changed

Lines changed: 52 additions & 17 deletions

File tree

.github/workflows/publish.yml

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ jobs:
66
build:
77
uses: ./.github/workflows/build.yml # Call the reusable build workflow
88
with:
9-
python-versions: '["3.10"]' # Pass as a JSON array
9+
python-versions: '["3.10", "3.12", "3.13"]' # Pass as a JSON array
1010
os-matrix: '["ubuntu-latest", "windows-latest", "macos-latest"]' # Pass as a JSON array
1111

1212
publish-to-pypi:
@@ -29,8 +29,27 @@ jobs:
2929
pattern: dist-* # Download all artifacts matching the pattern
3030
path: dist/
3131
merge-multiple: true
32+
33+
- name: Install auditwheel
34+
run: pip install auditwheel
35+
- name: Repair wheel
36+
run: |
37+
auditwheel repair dist/*linux_x86_64.whl -w dist/
38+
rm dist/*linux_x86_64.whl
39+
echo "Repaired wheel, files left:"
40+
ls dist/
41+
42+
- name: Upgrade twine
43+
run: python -m pip install --upgrade twine
44+
45+
- name: Check distribution files
46+
run: |
47+
twine check dist/* || echo "Twine check failed, continuing anyway"
48+
3249
- name: Publish distribution 📦 to PyPI
3350
uses: pypa/gh-action-pypi-publish@release/v1
51+
with:
52+
password: ${{ secrets.PYPI_API_TOKEN }}
3453

3554
github-release:
3655
name: >-
@@ -98,4 +117,4 @@ jobs:
98117
# - name: Publish distribution 📦 to TestPyPI
99118
# uses: pypa/gh-action-pypi-publish@release/v1
100119
# with:
101-
# repository-url: https://test.pypi.org/legacy/
120+
# repository-url: https://test.pypi.org/legacy/

README.md

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
1-
# pyEEG
1+
# natMEEG - Naturalistic M/EEG data analysis
22

33
[![PyPI version](https://badge.fury.io/py/natMEEG.svg)](https://badge.fury.io/py/natMEEG)
44
> v1.5.1 (2025-04-14)
55
6+
_Formerly named `pyEEG`_
67

7-
pyEEG is a library for processing EEG data built mostly on top of MNE-py and scikit-learn. It is framed to work with data collected with naturalistic stimuli, therefore with continuous recordings rather than trial-based designs. It allows analysis of continuous m/eeg and generation of temporal response functions with continuous signals as stimuli or real-valued events (e.g. word-level or phoneme-level features).
8+
`natMEEG` is a library for processing M/EEG data built mostly on top of MNE-py and scikit-learn. It is framed to work with data collected with naturalistic stimuli, therefore with continuous recordings rather than trial-based designs. It allows analysis of continuous m/eeg and generation of temporal response functions with continuous signals as stimuli or real-valued events (e.g. word-level or phoneme-level features).
89

910
You can find the [documentation here](https://hugo-w.github.io/pyEEG-docs/index.html).
1011

11-
> Note that this code repository is relatively old and **unmaintained**. Most useful code about computing TRF is contained in `pyeeg/models.py`, especially in the class `TRFEstimator` and the function `_svd_regress`: the latter implements TRF estimation with memory efficient and accelerated computation for handling multiple epochs or multiple subjects.
12+
> ⚠️**Caution**:
13+
> - Note that this code repository is relatively old and **unmaintained**. Most useful code about computing TRF is contained in `pyeeg/models.py`, especially in the class `TRFEstimator` and the function `_svd_regress`: the latter implements TRF estimation with memory efficient and accelerated computation for handling multiple epochs or multiple subjects.
14+
> - It is recommended to use the code as a reference for your own implementation rather than relying on it for production use.
15+
> - Finaly note that the repository went through a name change from `pyEEG` to `natMEEG`, so you might find references to `pyEEG` in the code and documentation.
1216
1317
------
1418

1519
## Installation
1620

1721
### Dependencies
1822

19-
pyEEG requires:
23+
natMEEG requires:
2024

2125
- Python (>= 3.10)
2226
- psutil
@@ -35,7 +39,7 @@ Install requirements:
3539
pip install -r requirements.txt
3640
```
3741

38-
To generate the doc, Python package `sphinx` (>= 1.1.0), `sphinx_rtd_theme` and `nbsphinx` are required (`sphinx` can be installed from `conda` and the others from `pip`).
42+
To generate the doc, Python package `sphinx` (>= 1.1.0), `sphinx_rtd_theme` and `nbsphinx` are required.
3943

4044
### User Installation
4145

@@ -44,12 +48,24 @@ To generate the doc, Python package `sphinx` (>= 1.1.0), `sphinx_rtd_theme` and
4448
You can install the package from PyPI using `pip`:
4549

4650
```bash
47-
pip install pyEEG
51+
pip install natMEEG
52+
```
53+
54+
If you want to install docs building dependencies, you can do:
55+
56+
```bash
57+
pip install natMEEG[docs]
58+
```
59+
60+
If you want to install the package with all dependencies (including MNE), you can do:
61+
62+
```bash
63+
pip install natMEEG[full]
4864
```
4965

5066
### From Source
5167

52-
From terminal (or `conda` shell in Windows), `cd` in root directory of the library (directory containing `setup.py` file) and type:
68+
From terminal, `cd` in root directory of the library after cloning this repository (directory containing `pyproject.toml` file).
5369

5470
To get the package installed only through symbolic links, namely so that you can modify the source code and use modified versions at will when importing the package in your python scripts do:
5571

@@ -80,6 +96,8 @@ Then you can run:
8096
pip install . --global-option=build_ext --global-option=--compiler=mingw32
8197
```
8298

99+
Or set the environment variable `DISTUTILS_USE_SDK=1` and `MSSdk=1` before running the command.
100+
83101
## Basic Examples
84102

85103
See files in [`examples/`](docs/source/examples/).
@@ -140,11 +158,7 @@ make clean
140158
```
141159
---
142160

143-
## TODOs
161+
## License
144162

145-
- [ ] Use [doctest](https://docs.python.org/2/library/doctest.html) for systematic testing of some functions
146-
- [ ] Functional connectivity methods:
147-
- [x] Estimate connectivity (**in construction**)
148-
- [ ] Graph theory metrics (path length, clustering coeff.)
149-
- [ ] Pipeline `pyRiemann` and `pyeeg` [this one](https://github.com/freole/pyeeg) into some workflows..
163+
This project is licensed under the terms of the GPL-3.0 license. See the [LICENSE](LICENSE) file for details.
150164

pyproject.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ requires-python = ">=3.10"
1616
keywords = ["EEG", "neuroscience", "signal processing"]
1717
classifiers = [
1818
"Programming Language :: Python :: 3",
19-
"Operating System :: OS Independent",
19+
"Operating System :: POSIX :: Linux",
20+
"Operating System :: Microsoft :: Windows",
21+
"Operating System :: MacOS",
2022
"Development Status :: 4 - Beta",
2123
"Intended Audience :: Science/Research"
2224
]
@@ -68,4 +70,4 @@ pyeeg = ["examples/*.ipynb", "pyeeg/bin/*dll", "pyeeg/bin/*so", "pyeeg/bin/*dyli
6870

6971
[tool.setuptools_scm]
7072
write_to = "pyeeg/version.py"
71-
local_scheme = "no-local-version"
73+
local_scheme = "no-local-version"

0 commit comments

Comments
 (0)