Scan timing: clone 15.51s · analysis 4.97s · 20.3 MB · GitHub API rate-limit (preflight)
https://github.com/LernerLab/GuPPy
· scanned 2026-06-05 17:54 UTC (4 days, 21 hours ago)
· 10 languages
305 raw signals (115 security + 190 graph) 92nd percentile · Python · medium (20-100K LoC) System graph score 89 (lower by 4)
Last scanned 4 days, 21 hours ago · v2 · 128 actionable findings from 2 signal sources. 57 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
85.0 | 0.15 | 12.75 |
security_score |
91.0 | 0.25 | 22.75 |
testing_score |
100.0 | 0.20 | 20.00 |
documentation_score |
93.0 | 0.15 | 13.95 |
practices_score |
75.0 | 0.15 | 11.25 |
code_quality |
39.2 | 0.10 | 3.92 |
| Overall | 1.00 | 84.6 |
All 1941 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
panel_extension |
software | healthy | tests/conftest.py:36 |
_make_stores_list |
software | healthy | tests/integration/test_integration_build_event_to_extractor… |
test_doric_session_routes_all_events_to_doric_extractor |
software | healthy | tests/integration/test_integration_build_event_to_extractor… |
test_csv_session_routes_all_events_to_csv_extractor |
software | healthy | tests/integration/test_integration_build_event_to_extractor… |
test_tdt_session_routes_all_events_to_tdt_extractor |
software | healthy | tests/integration/test_integration_build_event_to_extractor… |
test_npm_session_routes_all_events_to_npm_extractor |
software | healthy | tests/integration/test_integration_build_event_to_extractor… |
test_mixed_tdt_csv_session_partitions_events_correctly |
software | healthy | tests/integration/test_integration_build_event_to_extractor… |
test_nwb_session_routes_all_events_to_nwb_extractor |
software | healthy | tests/integration/test_integration_build_event_to_extractor… |
patched_stream_nwb |
software | healthy | tests/integration/test_integration_dandi.py:41 |
local_stream_nwb |
software | healthy | tests/integration/test_integration_dandi.py:53 |
dandi_pipeline_state |
software | healthy | tests/integration/test_integration_dandi.py:62 |
step2_dandi_output |
software | healthy | tests/integration/test_integration_dandi.py:75 |
step3_dandi_output |
software | healthy | tests/integration/test_integration_dandi.py:89 |
test_step2_writes_stores_list |
software | healthy | tests/integration/test_integration_dandi.py:103 |
test_step3_writes_hdf5_per_event |
software | healthy | tests/integration/test_integration_dandi.py:114 |
test_step2_writes_stores_list_for_each_session |
software | healthy | tests/integration/test_integration_dandi.py:130 |
test_zscore_method |
software | healthy | tests/integration/test_integration_zscore_method.py:32 |
test_group_analysis |
software | healthy | tests/integration/test_integration_group_analysis.py:28 |
capturing_init |
software | healthy | tests/integration/test_integration_group_analysis.py:91 |
test_step3_reproduces_split_events_from_persisted_params |
software | healthy | tests/integration/test_integration_npm_params_persistence.p… |
csv_session_copy |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
test_explicit_run_name_creates_named_directory |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
test_two_run_names_coexist |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
test_create_policy_raises_on_existing_run_name |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
test_overwrite_policy_replaces_existing_run_name |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
test_legacy_unspecified_run_name_uses_integer_suffix |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
test_selected_runs_processes_only_chosen_dir |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
test_selected_runs_unknown_name_raises |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
_locate_output_directory |
software | healthy | tests/integration/conftest.py:77 |
_prepare_pipeline_state |
software | healthy | tests/integration/conftest.py:89 |
_run_step2 |
software | healthy | tests/integration/conftest.py:121 |
_selected_runs_for_session |
software | healthy | tests/integration/conftest.py:134 |
_run_step3 |
software | healthy | tests/integration/conftest.py:140 |
_run_step4 |
software | healthy | tests/integration/conftest.py:153 |
step2_output_csv |
software | healthy | tests/integration/conftest.py:167 |
step2_output_tdt |
software | healthy | tests/integration/conftest.py:173 |
step2_output_npm |
software | healthy | tests/integration/conftest.py:179 |
step2_output_doric |
software | healthy | tests/integration/conftest.py:185 |
step2_output_nwb |
software | healthy | tests/integration/conftest.py:191 |
step3_output_csv |
software | healthy | tests/integration/conftest.py:197 |
step3_output_tdt |
software | healthy | tests/integration/conftest.py:202 |
step3_output_npm |
software | healthy | tests/integration/conftest.py:207 |
step3_output_doric |
software | healthy | tests/integration/conftest.py:212 |
step3_output_nwb |
software | healthy | tests/integration/conftest.py:217 |
step4_output_csv |
software | healthy | tests/integration/conftest.py:222 |
step4_output_tdt |
software | healthy | tests/integration/conftest.py:227 |
step4_output_npm |
software | healthy | tests/integration/conftest.py:232 |
step4_output_doric |
software | healthy | tests/integration/conftest.py:237 |
step4_output_nwb |
software | healthy | tests/integration/conftest.py:242 |
_run_step5 |
software | healthy | tests/integration/conftest.py:246 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
.pre-commit-config.yaml |
software | healthy | .pre-commit-config.yaml |
.readthedocs.yaml |
software | healthy | .readthedocs.yaml |
pyproject.toml |
software | healthy | pyproject.toml |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
codecov.yml |
software | healthy | codecov.yml |
conftest.py |
software | healthy | tests/conftest.py |
test_integration_build_event_to_extractor.py |
software | healthy | tests/integration/test_integration_build_event_to_extractor… |
test_integration_dandi.py |
software | healthy | tests/integration/test_integration_dandi.py |
test_integration_zscore_method.py |
software | healthy | tests/integration/test_integration_zscore_method.py |
test_integration_group_analysis.py |
software | healthy | tests/integration/test_integration_group_analysis.py |
test_integration_npm_params_persistence.py |
software | healthy | tests/integration/test_integration_npm_params_persistence.py |
test_integration_parametrized_outputs.py |
software | healthy | tests/integration/test_integration_parametrized_outputs.py |
conftest.py |
software | healthy | tests/integration/conftest.py |
test_integration_intra_session_mixed_modality.py |
software | healthy | tests/integration/test_integration_intra_session_mixed_moda… |
test_integration_bin_psth_trials.py |
software | healthy | tests/integration/test_integration_bin_psth_trials.py |
test_integration_parallel.py |
software | healthy | tests/integration/test_integration_parallel.py |
test_integration_no_isosbestic.py |
software | healthy | tests/integration/test_integration_no_isosbestic.py |
test_integration_step4.py |
software | healthy | tests/integration/test_integration_step4.py |
test_integration_dff.py |
software | healthy | tests/integration/test_integration_dff.py |
test_integration_step2_idempotent.py |
software | healthy | tests/integration/test_integration_step2_idempotent.py |
test_integration_step5.py |
software | healthy | tests/integration/test_integration_step5.py |
test_integration_step3.py |
software | healthy | tests/integration/test_integration_step3.py |
test_integration_combine_data.py |
software | healthy | tests/integration/test_integration_combine_data.py |
test_integration_step1.py |
software | healthy | tests/integration/test_integration_step1.py |
test_integration_step2.py |
software | healthy | tests/integration/test_integration_step2.py |
test_integration_inter_session_mixed_modality.py |
software | healthy | tests/integration/test_integration_inter_session_mixed_moda… |
test_integration_home.py |
software | healthy | tests/integration/test_integration_home.py |
test_integration_cross_correlation.py |
software | healthy | tests/integration/test_integration_cross_correlation.py |
test_integration_step6.py |
software | healthy | tests/integration/test_integration_step6.py |
test_integration_artifact_removal.py |
software | healthy | tests/integration/test_integration_artifact_removal.py |
__init__.py |
software | healthy | tests/unit/__init__.py |
test_dandi_selector.py |
software | healthy | tests/unit/frontend/test_dandi_selector.py |
test_input_parameters.py |
software | healthy | tests/unit/frontend/test_input_parameters.py |
test_storenames_config.py |
software | healthy | tests/unit/frontend/test_storenames_config.py |
__init__.py |
software | healthy | tests/unit/frontend/__init__.py |
conftest.py |
software | healthy | tests/unit/frontend/conftest.py |
test_artifact_removal.py |
software | healthy | tests/unit/frontend/test_artifact_removal.py |
test_storenames_selector.py |
software | healthy | tests/unit/frontend/test_storenames_selector.py |
test_sidebar.py |
software | healthy | tests/unit/frontend/test_sidebar.py |
test_npm_gui_prompts.py |
software | healthy | tests/unit/frontend/test_npm_gui_prompts.py |
test_visualization_dashboard.py |
software | healthy | tests/unit/frontend/test_visualization_dashboard.py |
test_frontend_utils.py |
software | healthy | tests/unit/frontend/test_frontend_utils.py |
test_progress.py |
software | healthy | tests/unit/frontend/test_progress.py |
test_storenames_instructions.py |
software | healthy | tests/unit/frontend/test_storenames_instructions.py |
test_parameterized_plotter.py |
software | healthy | tests/unit/frontend/test_parameterized_plotter.py |
__init__.py |
software | healthy | tests/unit/visualization/__init__.py |
conftest.py |
software | healthy | tests/unit/visualization/conftest.py |
test_transients.py |
software | healthy | tests/unit/visualization/test_transients.py |
test_preprocessing.py |
software | healthy | tests/unit/visualization/test_preprocessing.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestDandiIntegration |
software | healthy | tests/integration/test_integration_dandi.py:100 |
TestDandiIntegrationMultiAsset |
software | healthy | tests/integration/test_integration_dandi.py:127 |
TestStep2RunName |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
TestStep3SelectedRuns |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
TestStep4SelectedRuns |
software | healthy | tests/integration/test_integration_parametrized_outputs.py:… |
TestStep3ProgressFileAccounting |
software | healthy | tests/integration/test_integration_step3.py:50 |
FakeAsset |
software | healthy | tests/unit/frontend/test_dandi_selector.py:12 |
FakeDandiset |
software | healthy | tests/unit/frontend/test_dandi_selector.py:17 |
FakeDandiAPIClient |
software | healthy | tests/unit/frontend/test_dandi_selector.py:26 |
TestDandiSelector |
software | healthy | tests/unit/frontend/test_dandi_selector.py:64 |
TrackingClient |
software | healthy | tests/unit/frontend/test_dandi_selector.py:146 |
TestParameterForm |
software | healthy | tests/unit/frontend/test_input_parameters.py:106 |
_FakeAsset |
software | healthy | tests/unit/frontend/test_input_parameters.py:276 |
_FakeDandiset |
software | healthy | tests/unit/frontend/test_input_parameters.py:281 |
_FakeDandiAPIClient |
software | healthy | tests/unit/frontend/test_input_parameters.py:289 |
TestParameterFormDandiMode |
software | healthy | tests/unit/frontend/test_input_parameters.py:312 |
TestOutputsSelector |
software | healthy | tests/unit/frontend/test_input_parameters.py:361 |
TestRebuildPerSessionWidgets |
software | healthy | tests/unit/frontend/test_input_parameters.py:468 |
TestFolderSelectionCards |
software | healthy | tests/unit/frontend/test_input_parameters.py:509 |
TestStorenamesConfig |
software | healthy | tests/unit/frontend/test_storenames_config.py:23 |
FakeEvent |
software | healthy | tests/unit/frontend/test_artifact_removal.py:16 |
TestArtifactRemovalWidget |
software | healthy | tests/unit/frontend/test_artifact_removal.py:40 |
TestStorenamesSelector |
software | healthy | tests/unit/frontend/test_storenames_selector.py:4 |
TestSidebar |
software | healthy | tests/unit/frontend/test_sidebar.py:14 |
TestValidateTimestampConfiguration |
software | healthy | tests/unit/frontend/test_npm_gui_prompts.py:8 |
TestVisualizationDashboard |
software | healthy | tests/unit/frontend/test_visualization_dashboard.py:14 |
_MockProgressBar |
software | healthy | tests/unit/frontend/test_progress.py:30 |
TestSubprocessMainHandler |
software | healthy | tests/unit/frontend/test_progress.py:63 |
TestStorenamesInstructions |
software | healthy | tests/unit/frontend/test_storenames_instructions.py:11 |
TestStorenamesInstructionsNPM |
software | healthy | tests/unit/frontend/test_storenames_instructions.py:28 |
TestParameterizedPlotter |
software | healthy | tests/unit/frontend/test_parameterized_plotter.py:61 |
FakeArtifactRemovalWidget |
software | healthy | tests/unit/orchestration/test_preprocess.py:14 |
TestExecuteVisualizePeaks |
software | healthy | tests/unit/orchestration/test_transients.py:51 |
TestExecuteVisualizePeaksCombined |
software | healthy | tests/unit/orchestration/test_transients.py:117 |
FakePath |
software | healthy | tests/unit/orchestration/test_storenames.py:31 |
CapturingStorenamesSelector |
software | healthy | tests/unit/orchestration/test_storenames.py:530 |
FakeStorenamesInstructions |
software | healthy | tests/unit/orchestration/test_storenames.py:592 |
FakeBootstrapTemplate |
software | healthy | tests/unit/orchestration/test_storenames.py:597 |
TrackingSelector |
software | healthy | tests/unit/orchestration/test_storenames.py:616 |
TestOrchestrateReadRawDataErrorEnrichment |
software | healthy | tests/unit/orchestration/test_read_raw_data.py:17 |
TestProgressPoller |
software | healthy | tests/unit/orchestration/test_read_raw_data.py:53 |
TestProgressFileAccountingEndToEnd |
software | healthy | tests/unit/orchestration/test_read_raw_data.py:100 |
_SleepingExtractor |
software | healthy | tests/unit/orchestration/test_read_raw_data.py:120 |
TdtRecordingExtractorTestMixin |
software | healthy | tests/unit/extractors/test_tdt_recording_extractor.py:116 |
TestTdtRecordingExtractor |
software | healthy | tests/unit/extractors/test_tdt_recording_extractor.py:156 |
TestTdtRecordingExtractorSample2 |
software | healthy | tests/unit/extractors/test_tdt_recording_extractor.py:168 |
TdtRecordingExtractorSplitTestMixin |
software | healthy | tests/unit/extractors/test_tdt_recording_extractor.py:180 |
TestTdtRecordingExtractorSplitEvent |
software | healthy | tests/unit/extractors/test_tdt_recording_extractor.py:226 |
TestTdtRecordingExtractorSplitFloat |
software | healthy | tests/unit/extractors/test_tdt_recording_extractor.py:240 |
TestDandiLiveContract |
software | healthy | tests/unit/extractors/test_dandi_nwb_live.py:42 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
integration |
software | healthy | tests/integration |
unit |
software | healthy | tests/unit |
frontend |
software | healthy | tests/unit/frontend |
visualization |
software | healthy | tests/unit/visualization |
orchestration |
software | healthy | tests/unit/orchestration |
extractors |
software | healthy | tests/unit/extractors |
testing |
software | healthy | tests/unit/testing |
utils |
software | healthy | tests/unit/utils |
analysis |
software | healthy | tests/unit/analysis |
UI |
software | healthy | tests/UI |
consistency |
software | healthy | tests/consistency |
docs |
software | healthy | docs |
reference |
software | healthy | docs/reference |
scripts |
software | healthy | docs/scripts |
explanation |
software | healthy | docs/explanation |
tutorials |
software | healthy | docs/tutorials |
how-to |
software | healthy | docs/how-to |
stubbed_testing_data |
software | healthy | stubbed_testing_data |
tdt |
software | healthy | stubbed_testing_data/tdt |
Photo_63_207-181030-103332 |
software | healthy | stubbed_testing_data/tdt/Photo_63_207-181030-103332 |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
actions |
software | healthy | .github/actions |
load-full-data |
software | healthy | .github/actions/load-full-data |
load-stubbed-data |
software | healthy | .github/actions/load-stubbed-data |
src |
software | healthy | src |
guppy |
software | healthy | src/guppy |
frontend |
software | healthy | src/guppy/frontend |
visualization |
software | healthy | src/guppy/visualization |
orchestration |
software | healthy | src/guppy/orchestration |
extractors |
software | healthy | src/guppy/extractors |
testing |
software | healthy | src/guppy/testing |
scripts |
software | healthy | src/guppy/testing/scripts |
utils |
software | healthy | src/guppy/utils |
analysis |
software | healthy | src/guppy/analysis |
| Label | Layer | Status | Path |
|---|---|---|---|
load_python_and_os_versions |
cicd | healthy | .github/workflows/pr-tests.yml |
assess-file-changes |
cicd | healthy | .github/workflows/pr-tests.yml |
detect-changelog-updates |
cicd | healthy | .github/workflows/pr-tests.yml |
run-tests |
cicd | healthy | .github/workflows/pr-tests.yml |
check-final-status |
cicd | healthy | .github/workflows/pr-tests.yml |
run |
cicd | healthy | .github/workflows/run-tests.yml |
build |
cicd | healthy | .github/workflows/assess-file-changes.yml |
deploy |
cicd | healthy | .github/workflows/auto-publish.yml |
claude |
cicd | healthy | .github/workflows/claude.yml |
load_python_and_os_versions |
cicd | healthy | .github/workflows/dailies.yml |
run-daily-tests |
cicd | healthy | .github/workflows/dailies.yml |
notify-test-failure |
cicd | healthy | .github/workflows/dailies.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::pr-tests |
cicd | healthy | .github/workflows/pr-tests.yml |
gha::run-tests |
cicd | healthy | .github/workflows/run-tests.yml |
gha::assess-file-changes |
cicd | healthy | .github/workflows/assess-file-changes.yml |
gha::auto-publish |
cicd | healthy | .github/workflows/auto-publish.yml |
gha::claude |
cicd | healthy | .github/workflows/claude.yml |
gha::dailies |
cicd | healthy | .github/workflows/dailies.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
CODECOV_TOKEN |
cicd | healthy | — |
CLAUDE_CODE_OAUTH_TOKEN |
cicd | healthy | — |
MAIL_USERNAME |
cicd | healthy | — |
MAIL_PASSWORD |
cicd | healthy | — |
DAILY_FAILURE_EMAIL_LIST |
cicd | healthy | — |
RCLONE_CONFIG |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-ikwo_s95 |
software | healthy | /tmp/repobility-clone-ikwo_s95 |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | src/guppy/frontend/frontend_utils.py |
This page is publicly accessible at:
https://repobility.com/scan/6afc82b8-5e88-4ea6-a648-91134ab73397/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/6afc82b8-5e88-4ea6-a648-91134ab73397/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.