Skip to content

Releases: ppsp-team/HyPyP

Release 0.6.0

Choose a tag to compare

@Ramdam17 Ramdam17 released this 21 Apr 21:57

Added

  • New hypyp.sync module: Modular architecture for connectivity metrics
    • Extracted 9 connectivity metrics into separate classes: PLV, CCorr, ACCorr, Coh, ImCoh, PLI, WPLI, EnvCorr, PowCorr
    • BaseMetric abstract class for uniform interface across all metrics
    • get_metric(mode, optimization) function for easy metric instantiation
    • Helper functions: multiply_conjugate, multiply_conjugate_time, multiply_product
  • 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
  • Benchmark-driven AUTO_PRIORITY table for optimization='auto', compiled from
    Mac M4 Max (131 runs) and Narval A100 (111 runs) benchmarks
  • priority parameter on get_metric() and compute_sync() for custom backend ordering
  • hypyp/sync/kernels/ submodule with Metal and CUDA dispatch infrastructure
  • New optional dependencies: pyobjc-framework-Metal (Apple), cupy-cuda12x (NVIDIA)
  • multiply_conjugate_torch and multiply_conjugate_time_torch GPU helpers

Changed

  • BREAKING: accorr metric now returns raw connectivity values with shape (n_epoch, n_freq, 2*n_ch, 2*n_ch) like all other metrics. The swapaxes and epochs_average operations are now handled by compute_sync() instead of being applied inside the metric.
  • Refactored compute_sync() to use the new hypyp.sync module internally

Deprecated

  • _multiply_conjugate() in analyses.py - use hypyp.sync.multiply_conjugate instead (will be removed in 1.0.0)
  • _multiply_conjugate_time() in analyses.py - use hypyp.sync.multiply_conjugate_time instead (will be removed in 1.0.0)
  • _multiply_product() in analyses.py - use hypyp.sync.multiply_product instead (will be removed in 1.0.0)
  • _accorr_hybrid() in analyses.py - use hypyp.sync.ACCorr instead (will be removed in 1.0.0)

Release v0.5.0b18

Choose a tag to compare

@Ramdam17 Ramdam17 released this 29 Jan 19:59

Upgraded depencies rules and updated dependencies

Release v0.5.0b17

Choose a tag to compare

@Ramdam17 Ramdam17 released this 27 Jan 03:05

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

0.5.0b16 — Dependency updates & Add adjusted CCorr

Choose a tag to compare

@deep-introspection deep-introspection released this 04 Jan 20:51

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

Choose a tag to compare

@Ramdam17 Ramdam17 released this 13 Nov 17:02

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

Choose a tag to compare

@deep-introspection deep-introspection released this 18 Sep 18:29

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)

Choose a tag to compare

@Ramdam17 Ramdam17 released this 10 Jul 20:19
8e53b7e

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

Choose a tag to compare

@deep-introspection deep-introspection released this 03 Jul 14:01

What's Changed

New Contributors

  • @mg-m made their first contribution in #207

Full Changelog: 0.5.0b4...0.5.0b5

0.5.0b4

Choose a tag to compare

@deep-introspection deep-introspection released this 16 Mar 21:16

What's Changed

New Contributors

Full Changelog: 0.5.0b2...0.5.0b4

0.5.0b2

Choose a tag to compare

@deep-introspection deep-introspection released this 08 Feb 03:33

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