Repository navigation
Migrate CCM SPIs to pyEDM 2.x; drop setuptools<81 pin; require Python>=3.10 - #102
Open
benfulcher wants to merge 2 commits into
Open
benfulcher wants to merge 2 commits into
benfulcher wants to merge 2 commits into
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 tasks
Open
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.
Closes #100. Stacked on #99. The base is
fix-ci; retarget it tomainonce #99 is merged.Changes
pyspi/statistics/causal.py: the CCM SPIs are ported to the pyEDM 2.x API.EmbedDimensionis replaced by a small_embed_dimensionhelper that loopspyEDM.Simplexover E=1..10. pyEDM 2.x'sEmbedDimensionalways starts a multiprocessing Pool, which crashes under thespawnstart method (macOS, Windows, and Python ≥3.14 on Linux) in scripts without a__main__guard. It also now requirestargetand defaults toshowPlot=True.CCMis called with an explicit list of library sizes. 2.x parses a 3-element spec ambiguously.CCMruns withparallel=False.src:targ/targ:src) instead of by position.setup.py/requirements.txt:pyEDM==1.15.2.0+setuptools<81becomespyEDM>=2.5.7,<3. pyEDM 2.x no longer importspkg_resources, so the setuptools pin from Fix failing CI: pkg_resources (pyEDM) and pandas 3 CalculatorFrame columns #99 goes.requires-python, the CI matrix (3.10–3.12), the README badge and the conda example are updated. 3.8 and 3.9 are past end of life.Numerical impact
pyEDM 2.x rewrote the library subsampling and its RNG, so
seed=42no longer reproduces 1.x values bit-for-bit.Follow-ups (not in this PR)
numpy<2.0.0. pyEDM 2.x doesn't pin numpy, and the suite passed on numpy 2.4.6 under Python 3.11. That needs its own CI check across the matrix.🤖 Generated with Claude Code