Releases: ppsp-team/HyPyP
Release 0.6.0
Added
- New
hypyp.syncmodule: Modular architecture for connectivity metrics- Extracted 9 connectivity metrics into separate classes:
PLV,CCorr,ACCorr,Coh,ImCoh,PLI,WPLI,EnvCorr,PowCorr BaseMetricabstract class for uniform interface across all metricsget_metric(mode, optimization)function for easy metric instantiation- Helper functions:
multiply_conjugate,multiply_conjugate_time,multiply_product
- Extracted 9 connectivity metrics into separate classes:
- GPU and numba backends for all 9 sync metrics:
- numba JIT with
prange: PLV, CCorr, Coh, ImCoh, PLI, wPLI, EnvCorr, PowCorr - PyTorch (MPS/CUDA/CPU) via batched einsum: all 9 metrics
- Metal compute shaders (Apple Silicon): PLI, wPLI, ACCorr
- CUDA raw kernels via CuPy (NVIDIA GPUs): all 9 metrics
- numba JIT with
- Benchmark-driven
AUTO_PRIORITYtable foroptimization='auto', compiled from
Mac M4 Max (131 runs) and Narval A100 (111 runs) benchmarks priorityparameter onget_metric()andcompute_sync()for custom backend orderinghypyp/sync/kernels/submodule with Metal and CUDA dispatch infrastructure- New optional dependencies:
pyobjc-framework-Metal(Apple),cupy-cuda12x(NVIDIA) multiply_conjugate_torchandmultiply_conjugate_time_torchGPU helpers
Changed
- BREAKING:
accorrmetric now returns raw connectivity values with shape(n_epoch, n_freq, 2*n_ch, 2*n_ch)like all other metrics. Theswapaxesandepochs_averageoperations are now handled bycompute_sync()instead of being applied inside the metric. - Refactored
compute_sync()to use the newhypyp.syncmodule internally
Deprecated
_multiply_conjugate()in analyses.py - usehypyp.sync.multiply_conjugateinstead (will be removed in 1.0.0)_multiply_conjugate_time()in analyses.py - usehypyp.sync.multiply_conjugate_timeinstead (will be removed in 1.0.0)_multiply_product()in analyses.py - usehypyp.sync.multiply_productinstead (will be removed in 1.0.0)_accorr_hybrid()in analyses.py - usehypyp.sync.ACCorrinstead (will be removed in 1.0.0)
Release v0.5.0b18
Upgraded depencies rules and updated dependencies
Release v0.5.0b17
v0.5.0b17 - Dependency Fix
Bug Fix
Fixed a critical dependency issue where scipy 1.17.0 breaks the import chain with MNE.
Details
With the latest release of scipy (v1.17.0), the sph_harm function was removed from scipy.special. The MNE version that HyPyP depends on requires this function but does not pin the scipy version in its dependencies.
Error that was occurring:
ImportError: cannot import name 'sph_harm' from 'scipy.special'
Solution:
- Added version constraint
scipy = ">=1.0.0,<1.17.0"in pyproject.toml - Updated poetry.lock accordingly
This is a temporary fix until the upstream MNE package updates its scipy compatibility.
Credits
Thanks to @patricefortin for identifying and fixing this issue (#243)
🔗 References
- PR: #243
- Related scipy commit: scipy/scipy@39b8d4d
0.5.0b16 — Dependency updates & Add adjusted CCorr
What's Changed
- Add adjusted circular correlation (accorr) connectivity metric (Zimmermann et al., 2024, doi:10.1162/imag_a_00350)
- Update multiple security dependencies (fonttools, urllib3, pymdown-extensions, pip)
Full Changelog: v0.5.0b15...v0.5.0b16
0.5.0b15 — Dependency updates & documentation refresh
0.5.0b15 — Dependency updates & documentation refresh
Release Notes
This pre-release introduces a series of dependency updates and maintenance improvements to keep the project aligned with the latest ecosystem versions.
Changes included in 0.5.0b15:
Regenerated documentation and cleaned build workflow.
Updated project version to 0.5.0b15 (Poetry).
Minor maintenance and sync with PyPI packaging.
No API changes are expected in this release.
0.5.0b10b13
What’s Changed
• Support for Python 3.13.
• Fixed a bug in wavelet coherence when two signals in a pair were not perfectly aligned by @patricefortin in #232
• Bumped starlette from 0.47.1 to 0.47.2 by @dependabot[bot] in #233
Security
• Removed unused future dependency (CVE-2025-50817, High severity).
• Verified and updated critical dependencies:
• urllib3 >= 2.5.0 (fixes CVE related to redirect control)
• requests >= 2.32.4 (fixes .netrc credentials leak)
• pillow >= 11.3.0 (fixes buffer overflow vulnerability)
v0.5.0b10: Feature fNIRS hyperscanning (#226)
What's Changed
Fixed
- Fixed Poetry configuration for proper package inclusion
- Resolved missing fnirs, shiny, wavelet, and xdf modules in PyPI package
- Updated pyproject.toml to PEP 621 format
Technical Changes
- Fixed packages configuration in pyproject.toml
- Ensured all sub-modules are properly included in the build
Full Changelog: v0.5.0b5...v0.5.0b9
0.5.0b5
What's Changed
- Infant data visualisation by @mg-m in #207
- Edit comments by @Ramdam17 in #209
- Bump jinja2 from 3.1.3 to 3.1.6 in /docs by @dependabot in #210
- Bump certifi from 2024.2.2 to 2024.7.4 in /docs by @dependabot in #211
- Bump tornado from 6.4 to 6.4.2 in /docs by @dependabot in #212
- Bump scikit-learn from 1.4.0 to 1.5.1 in /docs by @dependabot in #213
- Bump zipp from 3.17.0 to 3.19.1 in /docs by @dependabot in #214
- Bump jupyterlab from 3.6.7 to 3.6.8 in /docs by @dependabot in #215
- Infant visualisation translation update by @mg-m in #208
- Bump requests from 2.31.0 to 2.32.2 in /docs by @dependabot in #216
- Bump tqdm from 4.66.1 to 4.66.3 in /docs by @dependabot in #217
- Bump idna from 3.6 to 3.7 in /docs by @dependabot in #218
- Bump black from 19.10b0 to 24.3.0 in /docs by @dependabot in #219
- Bump pillow from 10.2.0 to 10.3.0 in /docs by @dependabot in #220
- Fix deprecated matplotlib.cm.get_cmap() calls for compatibility with … by @Ramdam17 in #221
- Bump tornado from 6.4.2 to 6.5.1 by @dependabot in #224
- Bump setuptools from 77.0.1 to 78.1.1 by @dependabot in #223
- Bump h11 from 0.14.0 to 0.16.0 by @dependabot in #222
- Feature XDF Import by @patricefortin in #225
- continuous wavelet transform and wavelet transform coherence implementation by @patricefortin in #229
New Contributors
Full Changelog: 0.5.0b4...0.5.0b5
0.5.0b4
What's Changed
- Add github workflow trigger on pull request by @patricefortin in #198
- Add type hinting to function signatures by @patricefortin in #196
- Variables renaming for consistency in prep.py + tests by @patricefortin in #197
- Fix flaky test and add random seed to have deterministic tests by @patricefortin in #199
- Fix numpy major version in dependencies, to avoid upgrading to 2.x.x by @patricefortin in #200
- Poetry update by @Ramdam17 in #205
New Contributors
- @patricefortin made their first contribution in #198
- @Ramdam17 made their first contribution in #205
Full Changelog: 0.5.0b2...0.5.0b4
0.5.0b2
What's Changed
- fix for various deprecation warnings
- update all dependencies for security
- adapt to the new MNE syntax for spectrum functions
- fix functions for generating synthetic data
- fix usage of alpha parameter for stats thresholding by @obergmartin in #178
Full Changelog: 0.5.0b...0.5.0b2