Move the vertex analyses to a plugin (source-analytics-vertex); v0.8.0 - #5
Merged
Merged
Conversation
Add an entry-point plugin hook (source_analytics.plugins). Installed packages can now add analyses, metadata, aliases and figure types. The twelve vertex analyses move to the private source-analytics-vertex package, along with spectral.vertex, spectral.vertex_aperiodic, the five vertex R scripts, their figure schemas and glass-brain summaries, and their tests. A config or --analysis that names one of them fails with a message naming the plugin. Kept in core, because core modules use them: spectral.vertex_connectivity, viz.glass_brain, _network_base, the cluster statistics, and the BaseAnalysis vertex helpers. Version 0.8.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RibM8Zep2YEjjUbc2LLkgj
# Conflicts: # CHANGELOG.md # pyproject.toml # uv.lock
alexedmon1
added a commit
that referenced
this pull request
Sep 11, 2026
PR #5 (vertex analyses to a plugin) is on hold until we decide whether a vertex-versus-Monte-Carlo comparison needs publishing. After that, the roi_* analyses are renamed to source_*. Listed under a new "Pending changes" nav section; move it to the archive when done or dropped. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RibM8Zep2YEjjUbc2LLkgj
alexedmon1
added a commit
that referenced
this pull request
Sep 18, 2026
PR #5 removed the twelve vertex analyses and left the README describing all of them as available: a catalog table per domain, a study-config example with a whole `vertex:` paradigm, the core-concepts levels, the extras table, and a run-in-order script listing eight `$SA vertex --analysis vertex_*` invocations that now fail at argument parsing. Fifty references in all. Replaced with a "Retired: the vertex level" section that says what left, why a vertex map was the wrong unit for a 30-channel dorsal array, where the code went, and that v0.7.1 reproduces published vertex results. The historical mentions that remain -- the shared hypothesis declaration, the deprecated-alias list -- stay, because they are about what used to be true and say so. tests/test_readme_catalog.py checks both directions: every registered analysis is documented, and no retired one appears outside the section explaining the retirement. Verified by re-advertising vertex_connectivity in the connectivity table, which fails the second test naming the section it crept into. The handoff section now also documents config_resolved.yaml, monte_carlo_report.json, and what a Monte Carlo run does and does not carry. 270 tests pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Summary
src/source_analytics/plugins.py). A package registers through thesource_analytics.pluginsentry-point group. It providesANALYSES,METADATAandALIASES, and optionallyregister_figures(registry).coreinstalls plugins when it is imported. A plugin that fails to import is logged and skipped. One that reuses an existing analysis name raises.spectral.vertexandspectral.vertex_aperiodicR/vertex_*.Rscripts--analysisorinit --analysesthat names a moved analysis fails with a message naming the plugin.--analysisnow validates with a type function instead ofchoices=, so it can print that message.Kept in core
These stay because core modules use them:
spectral.vertex_connectivity(electrode_connectivity's kernels)viz.glass_brainanalyses._network_baseBaseAnalysisvertex helpers (_vertex_epoch_config,_label_vertex_regions, cluster-state persistence)electrode_signature still compares against a
vertex_signaturetable in its own paradigm, if one exists.Needs attention after merging
[tool.uv.sources]points at this branch. Re-pin it tov0.8.0once that tag exists.Tests
source-analytics listchecked with and without the plugin.R/.ruff --select F,E9on the touched files: no new findings compared with v0.7.1.🤖 Generated with Claude Code
https://claude.ai/code/session_01RibM8Zep2YEjjUbc2LLkgj