[Parity] Complete remaining EEGLAB core gaps - #152
Merged
Conversation
[Parity] Add core matrix contracts
# Conflicts: # .notes/implementation-notes.html
…pers [PAC] Classify PAC time-frequency helpers
…ymbol-fitting' into feature/eeglab-core-parity-completion # Conflicts: # src/eegprep/__init__.py # src/eegprep/functions/timefreqfunc/__init__.py
…-marker-cycle-gui' into feature/eeglab-core-parity-completion # Conflicts: # .notes/implementation-notes.html # docs/source/api/index.rst # src/eegprep/__init__.py # src/eegprep/functions/timefreqfunc/__init__.py # tests/test_phase4_timefreq_statistics.py
…pers' into feature/eeglab-core-parity-completion # Conflicts: # .notes/implementation-notes.html
This was referenced Jun 7, 2026
This was referenced Jun 7, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Complete the audit-driven EEGLAB core parity epic for long-tail helpers, file/channel-location workflows, statistics, time-frequency internals, user-facing options, STUDY depth, follow-up parity gaps, and closeout evidence. This keeps EEGPrep standalone while preserving EEGLAB-facing APIs, GUI layout, command history, sample-data behavior, and console/GUI synchronization.
Fixes #131
Closes #133
Closes #134
Closes #135
Closes #136
Closes #137
Closes #138
Closes #146
Closes #147
Closes #148
Closes #149
Constituent phase PRs
readlocs,writelocs,convertlocs,chancenter,floatread,floatwrite, SnapMaster/BCI support, and matchingpop_*wrappers.statcond,teststat, FDR, surrogate p-values/CIs, t-test/ANOVA/correlation cell helpers, andconcatdata.timefreq,timef,crossf,bootstat,correct_mc, DFT filters, baseline helpers,pop_timef,pop_crossf, and expandedpop_newtimef/pop_newcrossf.pop_export,pop_epoch,pop_editset,pop_comperp,pop_erpimage, headplot setup previews,pop_runica, and clean_rawdata/ASR options.pop_averef,pop_compareerps,pop_findmatchingcomps,pop_fusechanrej,pop_icathresh,pop_rejchanspec, and help/tests.Follow-up PRs merged before final review
std_readpaccache behavior.correct_mcrandom-symbol distribution fitting and clarified EEGLABrsadjustsign parity.newtimefmarker/cycle GUI workflows,timewarp/angtimewarp,tf_cycle_calc, and parity tests.Final review fixes included
timefreq(..., frames=...)so single-channel row/column matrices shaped like flattened trials are split into trials instead of treated as one long trial.statcond(..., surrog=..., stats=..., alpha=...)so supplied surrogate statistics return confidence intervals and significance masks.pop_writelocs(..., return_com=True)so the commonpop_*keyword is accepted but not forwarded into file-format options or history.pop_editsetICA matrix loading so non-squareicaweights/icasphere.fdtfiles use EEGLAB matrix orientation rather than EEG.fdtchannel-major orientation.timestretchduplicate snapping, MATLABtimefreq(..., 'timestretch', ...)parity coverage,rsfitnear-zero skew parity, STUDY trial-factor pairing semantics,std_selectdatasetvariable shadowing, and parity matrix closeout tests.GUI evidence
Side-by-side GUI evidence is attached in the PR comment titled Core parity GUI side-by-side evidence. It covers
pop_chanedit,pop_comperp,pop_editset,pop_eegfilt,pop_envtopo,pop_epoch,pop_erpimage,pop_newcrossf,pop_newtimef, andpop_runicadialogs/contact sheet after the final visual parity pass.Local verification
uv run --no-sync python -m tools.eeglab_parity_matrix: 608 rows cover 608 in-scope EEGLAB functions.uv run --no-sync ruff check .: passed.uv run --no-sync ruff format --check .: passed.uv run --no-sync ty check: passed../pre-commit.py --changed-from origin/develop: passed.tests/test_phase4_timefreq_statistics.py tests/test_statistics_package.py tests/test_pop_editset.py tests/test_phase2_file_channel_location.py: 89 passed.EEGPREP_SKIP_MATLAB=1 uv run --no-sync pytest -m "not slow": 1807 passed, 207 skipped, 11 deselected.