junifer 0.0.5.dev240__tar.gz → 0.0.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- junifer-0.0.6/.dockerignore +19 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/dependabot.yml +6 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/workflows/ci-docs.yml +11 -5
- junifer-0.0.6/.github/workflows/ci.yml +78 -0
- junifer-0.0.6/.github/workflows/docker-ci-publish.yml +103 -0
- junifer-0.0.6/.github/workflows/docker-docs-publish.yml +100 -0
- junifer-0.0.6/.github/workflows/docs-preview.yml +68 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/workflows/docs.yml +30 -30
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/workflows/lint.yml +1 -1
- junifer-0.0.6/.github/workflows/publish.yml +46 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.pre-commit-config.yaml +6 -6
- junifer-0.0.6/Dockerfile-ci +72 -0
- junifer-0.0.6/Dockerfile-docs +26 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/PKG-INFO +20 -15
- {junifer-0.0.5.dev240 → junifer-0.0.6}/README.md +1 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/Makefile +4 -14
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/api.rst +3 -3
- junifer-0.0.6/docs/api/cli.rst +6 -0
- junifer-0.0.6/docs/api/data.rst +6 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/index.rst +1 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/onthefly.rst +3 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/pipeline.rst +0 -6
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/builtin.rst +9 -8
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/conf.py +43 -21
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/coordinates.rst +23 -10
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/dependencies.rst +18 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/extension.rst +21 -5
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/index.rst +1 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/marker.rst +3 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/masks.rst +21 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/parcellations.rst +18 -7
- junifer-0.0.6/docs/extending/plugins.rst +50 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/links.inc +3 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/preprocess.rst +19 -8
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/using/masks.rst +2 -2
- junifer-0.0.6/docs/using/running.rst +285 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/whats_new.rst +335 -12
- {junifer-0.0.5.dev240 → junifer-0.0.6}/ignore_words.txt +2 -0
- junifer-0.0.6/junifer/__init__.py +10 -0
- junifer-0.0.5.dev240/junifer/__init__.py → junifer-0.0.6/junifer/__init__.pyi +20 -22
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/_version.py +9 -4
- junifer-0.0.6/junifer/api/__init__.py +10 -0
- junifer-0.0.6/junifer/api/__init__.pyi +4 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/decorators.py +14 -19
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/functions.py +165 -109
- junifer-0.0.6/junifer/api/py.typed +0 -0
- junifer-0.0.6/junifer/api/queue_context/__init__.py +9 -0
- junifer-0.0.5.dev240/junifer/api/queue_context/__init__.py → junifer-0.0.6/junifer/api/queue_context/__init__.pyi +1 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/queue_context/gnu_parallel_local_adapter.py +22 -6
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/queue_context/htcondor_adapter.py +23 -6
- junifer-0.0.6/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +3 -3
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/queue_context/tests/test_htcondor_adapter.py +3 -3
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/tests/test_functions.py +168 -74
- junifer-0.0.6/junifer/cli/__init__.py +24 -0
- junifer-0.0.6/junifer/cli/__init__.pyi +3 -0
- {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/cli.py +141 -125
- junifer-0.0.6/junifer/cli/parser.py +235 -0
- junifer-0.0.6/junifer/cli/py.typed +0 -0
- {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/tests/test_cli.py +8 -8
- junifer-0.0.5.dev240/junifer/api/tests/test_api_utils.py → junifer-0.0.6/junifer/cli/tests/test_cli_utils.py +5 -4
- {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/tests/test_parser.py +2 -2
- {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/utils.py +6 -16
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/__init__.py +2 -2
- junifer-0.0.6/junifer/configs/juseless/__init__.pyi +3 -0
- junifer-0.0.6/junifer/configs/juseless/datagrabbers/__init__.py +11 -0
- junifer-0.0.5.dev240/junifer/configs/juseless/datagrabbers/__init__.py → junifer-0.0.6/junifer/configs/juseless/datagrabbers/__init__.pyi +6 -14
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +2 -2
- junifer-0.0.6/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +2 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/ucla.py +4 -4
- junifer-0.0.6/junifer/configs/juseless/py.typed +0 -0
- junifer-0.0.6/junifer/conftest.py +25 -0
- junifer-0.0.6/junifer/data/__init__.py +10 -0
- junifer-0.0.6/junifer/data/__init__.pyi +29 -0
- junifer-0.0.6/junifer/data/_dispatch.py +248 -0
- junifer-0.0.6/junifer/data/coordinates/__init__.py +9 -0
- junifer-0.0.6/junifer/data/coordinates/__init__.pyi +5 -0
- junifer-0.0.6/junifer/data/coordinates/_ants_coordinates_warper.py +104 -0
- junifer-0.0.6/junifer/data/coordinates/_coordinates.py +385 -0
- junifer-0.0.6/junifer/data/coordinates/_fsl_coordinates_warper.py +81 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/tests/test_coordinates.py +26 -33
- junifer-0.0.6/junifer/data/masks/__init__.py +9 -0
- junifer-0.0.6/junifer/data/masks/__init__.pyi +6 -0
- junifer-0.0.6/junifer/data/masks/_ants_mask_warper.py +177 -0
- junifer-0.0.6/junifer/data/masks/_fsl_mask_warper.py +106 -0
- junifer-0.0.6/junifer/data/masks/_masks.py +802 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/masks}/tests/test_masks.py +67 -63
- junifer-0.0.6/junifer/data/parcellations/__init__.py +9 -0
- junifer-0.0.6/junifer/data/parcellations/__init__.pyi +6 -0
- junifer-0.0.6/junifer/data/parcellations/_ants_parcellation_warper.py +166 -0
- junifer-0.0.6/junifer/data/parcellations/_fsl_parcellation_warper.py +89 -0
- junifer-0.0.6/junifer/data/parcellations/_parcellations.py +1388 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/parcellations}/tests/test_parcellations.py +165 -295
- junifer-0.0.6/junifer/data/pipeline_data_registry_base.py +76 -0
- junifer-0.0.6/junifer/data/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/template_spaces.py +44 -79
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/tests/test_data_utils.py +1 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/tests/test_template_spaces.py +8 -4
- junifer-0.0.6/junifer/data/utils.py +152 -0
- junifer-0.0.6/junifer/datagrabber/__init__.py +11 -0
- junifer-0.0.5.dev240/junifer/datagrabber/__init__.py → junifer-0.0.6/junifer/datagrabber/__init__.pyi +13 -21
- junifer-0.0.6/junifer/datagrabber/aomic/__init__.py +10 -0
- junifer-0.0.5.dev240/junifer/datagrabber/aomic/__init__.py → junifer-0.0.6/junifer/datagrabber/aomic/__init__.pyi +1 -8
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/id1000.py +81 -52
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/piop1.py +83 -55
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/piop2.py +85 -56
- junifer-0.0.6/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/tests/test_id1000.py +19 -12
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/tests/test_piop1.py +52 -18
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/tests/test_piop2.py +50 -17
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/base.py +22 -18
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/datalad_base.py +71 -34
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/dmcc13_benchmark.py +31 -18
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/hcp1200/__init__.py +2 -3
- junifer-0.0.6/junifer/datagrabber/hcp1200/__init__.pyi +4 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +3 -3
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/hcp1200/hcp1200.py +26 -15
- junifer-0.0.6/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +8 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/multiple.py +14 -9
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/pattern.py +132 -96
- junifer-0.0.6/junifer/datagrabber/pattern_validation_mixin.py +500 -0
- junifer-0.0.6/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_datalad_base.py +27 -12
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +28 -11
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_multiple.py +48 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_pattern_datalad.py +1 -1
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +6 -6
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datareader/__init__.py +2 -2
- junifer-0.0.6/junifer/datareader/__init__.pyi +3 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datareader/default.py +6 -6
- junifer-0.0.6/junifer/datareader/py.typed +0 -0
- junifer-0.0.6/junifer/external/nilearn/__init__.py +9 -0
- junifer-0.0.5.dev240/junifer/external/nilearn/__init__.py → junifer-0.0.6/junifer/external/nilearn/__init__.pyi +1 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/nilearn/junifer_connectivity_measure.py +25 -17
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +4 -4
- junifer-0.0.6/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +17 -16
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +2 -3
- junifer-0.0.6/junifer/markers/__init__.py +11 -0
- junifer-0.0.5.dev240/junifer/markers/__init__.py → junifer-0.0.6/junifer/markers/__init__.pyi +18 -28
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/base.py +11 -14
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/brainprint.py +12 -14
- junifer-0.0.6/junifer/markers/complexity/__init__.py +21 -0
- junifer-0.0.6/junifer/markers/complexity/__init__.pyi +17 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/complexity_base.py +9 -11
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/hurst_exponent.py +7 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/multiscale_entropy_auc.py +7 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/perm_entropy.py +7 -7
- junifer-0.0.6/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/range_entropy.py +7 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/range_entropy_auc.py +7 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/sample_entropy.py +7 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_complexity_base.py +1 -1
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_hurst_exponent.py +5 -5
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +5 -5
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_perm_entropy.py +5 -5
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_range_entropy.py +5 -5
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_range_entropy_auc.py +5 -5
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_sample_entropy.py +5 -5
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +5 -5
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/weighted_perm_entropy.py +7 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/ets_rss.py +12 -11
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/__init__.py +2 -3
- junifer-0.0.6/junifer/markers/falff/__init__.pyi +4 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/_afni_falff.py +38 -45
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/_junifer_falff.py +16 -19
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/falff_base.py +7 -11
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/falff_parcels.py +9 -9
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/falff_spheres.py +8 -8
- junifer-0.0.6/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/tests/test_falff_spheres.py +3 -1
- junifer-0.0.6/junifer/markers/functional_connectivity/__init__.py +9 -0
- junifer-0.0.5.dev240/junifer/markers/functional_connectivity/__init__.py → junifer-0.0.6/junifer/markers/functional_connectivity/__init__.pyi +6 -12
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +9 -8
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +8 -8
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +7 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/functional_connectivity_base.py +13 -12
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +8 -8
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +7 -7
- junifer-0.0.6/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +1 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +1 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +6 -6
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +5 -5
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/parcel_aggregation.py +22 -17
- junifer-0.0.6/junifer/markers/py.typed +0 -0
- junifer-0.0.6/junifer/markers/reho/__init__.py +9 -0
- junifer-0.0.5.dev240/junifer/markers/reho/__init__.py → junifer-0.0.6/junifer/markers/reho/__init__.pyi +1 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/_afni_reho.py +29 -35
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/_junifer_reho.py +13 -14
- junifer-0.0.6/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/reho_base.py +7 -11
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/reho_parcels.py +10 -10
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/reho_spheres.py +9 -9
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/sphere_aggregation.py +22 -17
- junifer-0.0.6/junifer/markers/temporal_snr/__init__.py +9 -0
- junifer-0.0.5.dev240/junifer/markers/temporal_snr/__init__.py → junifer-0.0.6/junifer/markers/temporal_snr/__init__.pyi +1 -7
- junifer-0.0.6/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/temporal_snr_base.py +11 -10
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/temporal_snr_parcels.py +8 -8
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/temporal_snr_spheres.py +7 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_ets_rss.py +3 -3
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_parcel_aggregation.py +24 -24
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_sphere_aggregation.py +6 -6
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/utils.py +3 -3
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/onthefly/__init__.py +2 -1
- junifer-0.0.6/junifer/onthefly/_brainprint.py +138 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/onthefly/read_transform.py +5 -8
- junifer-0.0.6/junifer/pipeline/__init__.py +9 -0
- junifer-0.0.5.dev240/junifer/pipeline/__init__.py → junifer-0.0.6/junifer/pipeline/__init__.pyi +8 -12
- junifer-0.0.5.dev240/junifer/markers/collection.py → junifer-0.0.6/junifer/pipeline/marker_collection.py +8 -14
- junifer-0.0.6/junifer/pipeline/pipeline_component_registry.py +294 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/pipeline_step_mixin.py +15 -11
- junifer-0.0.6/junifer/pipeline/py.typed +0 -0
- junifer-0.0.5.dev240/junifer/markers/tests/test_collection.py → junifer-0.0.6/junifer/pipeline/tests/test_marker_collection.py +2 -3
- junifer-0.0.6/junifer/pipeline/tests/test_pipeline_component_registry.py +200 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/tests/test_pipeline_step_mixin.py +36 -37
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/tests/test_update_meta_mixin.py +4 -4
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/tests/test_workdir_manager.py +43 -0
- junifer-0.0.6/junifer/pipeline/update_meta_mixin.py +56 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/utils.py +6 -6
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/workdir_manager.py +19 -5
- junifer-0.0.6/junifer/preprocess/__init__.py +11 -0
- junifer-0.0.5.dev240/junifer/preprocess/__init__.py → junifer-0.0.6/junifer/preprocess/__init__.pyi +5 -13
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/base.py +10 -10
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/confounds/__init__.py +2 -2
- junifer-0.0.6/junifer/preprocess/confounds/__init__.pyi +3 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/confounds/fmriprep_confound_remover.py +243 -64
- junifer-0.0.6/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +121 -14
- junifer-0.0.6/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/__init__.py +2 -2
- junifer-0.0.6/junifer/preprocess/smoothing/__init__.pyi +3 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/_afni_smoothing.py +40 -40
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/_fsl_smoothing.py +22 -32
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/_nilearn_smoothing.py +35 -14
- junifer-0.0.6/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/smoothing.py +11 -13
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/warping/__init__.py +2 -2
- junifer-0.0.6/junifer/preprocess/warping/__init__.pyi +3 -0
- junifer-0.0.6/junifer/preprocess/warping/_ants_warper.py +274 -0
- junifer-0.0.6/junifer/preprocess/warping/_fsl_warper.py +163 -0
- junifer-0.0.6/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/warping/space_warper.py +39 -11
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/warping/tests/test_space_warper.py +5 -9
- junifer-0.0.6/junifer/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/stats.py +5 -5
- junifer-0.0.6/junifer/storage/__init__.py +10 -0
- junifer-0.0.5.dev240/junifer/storage/__init__.py → junifer-0.0.6/junifer/storage/__init__.pyi +5 -12
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/base.py +47 -13
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/hdf5.py +95 -33
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/pandas_base.py +12 -11
- junifer-0.0.6/junifer/storage/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/sqlite.py +11 -11
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/tests/test_hdf5.py +86 -4
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/tests/test_sqlite.py +2 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/tests/test_storage_base.py +5 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/tests/test_utils.py +33 -7
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/utils.py +95 -9
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/__init__.py +2 -3
- junifer-0.0.6/junifer/testing/__init__.pyi +4 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/datagrabbers.py +10 -11
- junifer-0.0.6/junifer/testing/py.typed +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/registry.py +4 -7
- junifer-0.0.6/junifer/testing/tests/test_testing_registry.py +16 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/tests/test_stats.py +2 -2
- junifer-0.0.6/junifer/typing/__init__.py +9 -0
- junifer-0.0.6/junifer/typing/__init__.pyi +31 -0
- junifer-0.0.6/junifer/typing/_typing.py +68 -0
- junifer-0.0.6/junifer/utils/__init__.py +10 -0
- junifer-0.0.5.dev240/junifer/utils/__init__.py → junifer-0.0.6/junifer/utils/__init__.pyi +9 -11
- junifer-0.0.6/junifer/utils/_config.py +110 -0
- junifer-0.0.6/junifer/utils/_yaml.py +16 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/helpers.py +6 -6
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/logging.py +117 -8
- junifer-0.0.6/junifer/utils/py.typed +0 -0
- {junifer-0.0.5.dev240/junifer/pipeline → junifer-0.0.6/junifer/utils}/singleton.py +19 -14
- junifer-0.0.6/junifer/utils/tests/test_config.py +59 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer.egg-info/PKG-INFO +20 -15
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer.egg-info/SOURCES.txt +122 -74
- junifer-0.0.6/junifer.egg-info/entry_points.txt +2 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer.egg-info/requires.txt +14 -11
- {junifer-0.0.5.dev240 → junifer-0.0.6}/pyproject.toml +22 -18
- {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_aomic1000_example_dataset.py +46 -3
- {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_aomicpiop1_example_dataset.py +42 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_aomicpiop2_example_dataset.py +42 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_bids_example_dataset.py +2 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_bids_example_dataset_sessions.py +2 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_dmcc13_benchmark_example_dataset.py +5 -1
- {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_hcp1200_example_dataset.py +9 -5
- {junifer-0.0.5.dev240 → junifer-0.0.6}/tox.ini +7 -6
- junifer-0.0.5.dev240/.github/workflows/ci.yml +0 -124
- junifer-0.0.5.dev240/.github/workflows/docs-preview.yml +0 -68
- junifer-0.0.5.dev240/.github/workflows/pypi.yml +0 -31
- junifer-0.0.5.dev240/docs/api/data.rst +0 -26
- junifer-0.0.5.dev240/docs/changes/newsfragments/115.doc +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/136.enh +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/161.feature +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/273.feature +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/318.misc +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/323.feature +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/324.bugfix +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/327.doc +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/330.doc +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/331.bugfix +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/332.bugfix +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/336.removal +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/337.misc +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/339.bugfix +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/340.bugfix +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/341.enh +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/342.misc +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/343.feature +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/344.feature +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/345.feature +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/346.enh +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/346.feature +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/347.misc +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/348.change +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/348.enh +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/348.feature +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/349.change +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/349.enh +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/350.enh +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/351.change +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/351.enh +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/351.feature +0 -1
- junifer-0.0.5.dev240/docs/changes/newsfragments/351.misc +0 -1
- junifer-0.0.5.dev240/docs/sphinxext/gh_substitutions.py +0 -31
- junifer-0.0.5.dev240/docs/using/running.rst +0 -115
- junifer-0.0.5.dev240/junifer/api/__init__.py +0 -12
- junifer-0.0.5.dev240/junifer/api/parser.py +0 -118
- junifer-0.0.5.dev240/junifer/data/__init__.py +0 -50
- junifer-0.0.5.dev240/junifer/data/coordinates.py +0 -408
- junifer-0.0.5.dev240/junifer/data/masks.py +0 -670
- junifer-0.0.5.dev240/junifer/data/parcellations.py +0 -1828
- junifer-0.0.5.dev240/junifer/data/utils.py +0 -47
- junifer-0.0.5.dev240/junifer/datagrabber/pattern_validation_mixin.py +0 -388
- junifer-0.0.5.dev240/junifer/markers/complexity/__init__.py +0 -37
- junifer-0.0.5.dev240/junifer/pipeline/registry.py +0 -177
- junifer-0.0.5.dev240/junifer/pipeline/tests/test_registry.py +0 -150
- junifer-0.0.5.dev240/junifer/pipeline/update_meta_mixin.py +0 -52
- junifer-0.0.5.dev240/junifer/preprocess/warping/_ants_warper.py +0 -170
- junifer-0.0.5.dev240/junifer/preprocess/warping/_fsl_warper.py +0 -112
- junifer-0.0.5.dev240/junifer/testing/tests/test_testing_registry.py +0 -24
- junifer-0.0.5.dev240/junifer.egg-info/entry_points.txt +0 -2
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/pull_request_template.md +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.gitignore +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/.gitmodules +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/AUTHORS.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/LICENSE.md +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/codecov.yml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/conda-env.yml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/_templates/versions.html +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/configs.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/markers.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/stats.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/storage.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/testing.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/utils.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/contribution.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/faq.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/help.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/index.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/installation.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/maintaining.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/redirect.html +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/starting.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/data.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/index.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/using/codeless.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/using/index.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/using/queueing.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/README.rst +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/CogAC_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/CogAR_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Empathy_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Motor_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/MultiTask_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/PhysioStress_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Rew_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Somatosensory_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/ToM_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/VigAtt_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/WM_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/eMDN_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/eSAD_VOIs.txt +0 -0
- {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/extDMN_VOIs.txt +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/__init__.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/utils.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/fs.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/setup.cfg +0 -0
- {junifer-0.0.5.dev240 → junifer-0.0.6}/setup.py +0 -0
@@ -1,10 +1,14 @@
|
|
1
1
|
# Set update schedule for GitHub Actions
|
2
|
-
|
3
2
|
version: 2
|
4
3
|
updates:
|
5
|
-
|
6
4
|
- package-ecosystem: "github-actions"
|
7
5
|
directory: "/"
|
8
6
|
schedule:
|
9
7
|
# Check for updates to GitHub Actions every week
|
10
8
|
interval: "weekly"
|
9
|
+
# Group updates to avoid extra PRs
|
10
|
+
groups:
|
11
|
+
# Group name
|
12
|
+
actions:
|
13
|
+
patterns:
|
14
|
+
- "*"
|
@@ -4,18 +4,24 @@ on:
|
|
4
4
|
push:
|
5
5
|
paths-ignore:
|
6
6
|
- 'junifer/**'
|
7
|
+
- 'docs/changes/newsfragments/**'
|
7
8
|
- '.github/workflows/**'
|
9
|
+
- 'tox.ini'
|
10
|
+
- 'pyproject.toml'
|
8
11
|
pull_request:
|
9
12
|
paths-ignore:
|
10
13
|
- 'junifer/**'
|
14
|
+
- 'docs/changes/newsfragments/**'
|
11
15
|
- '.github/workflows/**'
|
16
|
+
- 'tox.ini'
|
17
|
+
- 'pyproject.toml'
|
12
18
|
jobs:
|
13
19
|
run-tests:
|
14
|
-
runs-on: ubuntu-
|
20
|
+
runs-on: ubuntu-22.04
|
15
21
|
strategy:
|
16
22
|
fail-fast: false
|
17
23
|
matrix:
|
18
|
-
python-version: ['3.
|
24
|
+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
|
19
25
|
steps:
|
20
26
|
- run: 'echo "No build required"'
|
21
27
|
- name: Create mock coverage.xml file
|
@@ -40,12 +46,12 @@ jobs:
|
|
40
46
|
echo '</package>' >> coverage.xml
|
41
47
|
echo '</packages>' >> coverage.xml
|
42
48
|
echo '</coverage>' >> coverage.xml
|
43
|
-
if: matrix.python-version == 3.
|
49
|
+
if: matrix.python-version == 3.12
|
44
50
|
- name: Upload mock coverage to Codecov
|
45
|
-
uses: codecov/codecov-action@
|
51
|
+
uses: codecov/codecov-action@v5
|
46
52
|
with:
|
47
53
|
token: ${{ secrets.CODECOV_TOKEN }}
|
48
54
|
# Allow coverage upload failure
|
49
55
|
fail_ci_if_error: false
|
50
56
|
flags: docs
|
51
|
-
if: success() && matrix.python-version == 3.
|
57
|
+
if: success() && matrix.python-version == 3.12
|
@@ -0,0 +1,78 @@
|
|
1
|
+
name: Run Tests
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
paths:
|
6
|
+
- 'junifer/**'
|
7
|
+
- '.github/workflows/**'
|
8
|
+
- 'tox.ini'
|
9
|
+
- 'pyproject.toml'
|
10
|
+
pull_request:
|
11
|
+
paths:
|
12
|
+
- 'junifer/**'
|
13
|
+
- '.github/workflows/**'
|
14
|
+
- 'tox.ini'
|
15
|
+
- 'pyproject.toml'
|
16
|
+
|
17
|
+
jobs:
|
18
|
+
run-tests:
|
19
|
+
# https://github.com/actions/setup-python/issues/1013#issuecomment-2642078401
|
20
|
+
runs-on: ubuntu-22.04
|
21
|
+
# Use custom CI image
|
22
|
+
container: ghcr.io/juaml/junifer-ci:main
|
23
|
+
strategy:
|
24
|
+
fail-fast: false
|
25
|
+
matrix:
|
26
|
+
python-version: ['3.9', '3.10', '3.11', '3.12']
|
27
|
+
|
28
|
+
steps:
|
29
|
+
- name: Check ANTs
|
30
|
+
run: |
|
31
|
+
echo "Using ANTs : $(antsRegistration --version)"
|
32
|
+
- name: Check AFNI
|
33
|
+
run: |
|
34
|
+
echo "Using AFNI : $(afni --version)"
|
35
|
+
- name: Check FSL
|
36
|
+
run: |
|
37
|
+
echo "Using FSL : $(flirt -version)"
|
38
|
+
- name: Install system dependencies
|
39
|
+
# actions/checkout fails to identify Git as it's not in the CI image
|
40
|
+
run: |
|
41
|
+
apt-get -qq update
|
42
|
+
apt-get -qq install -y \
|
43
|
+
git \
|
44
|
+
git-annex \
|
45
|
+
make \
|
46
|
+
jq
|
47
|
+
- name: Copy junifer-data directory
|
48
|
+
run: |
|
49
|
+
mkdir -p $HOME/junifer_data/v2
|
50
|
+
cp -ar /root/junifer_data/v2/. $HOME/junifer_data/v2/
|
51
|
+
- name: Checkout repository
|
52
|
+
uses: actions/checkout@v4
|
53
|
+
with:
|
54
|
+
submodules: true
|
55
|
+
- name: Set up Python ${{ matrix.python-version }}
|
56
|
+
uses: actions/setup-python@v5
|
57
|
+
with:
|
58
|
+
python-version: ${{ matrix.python-version }}
|
59
|
+
- name: Install Python dependencies
|
60
|
+
run: |
|
61
|
+
python -m pip install --upgrade pip setuptools wheel
|
62
|
+
python -m pip install tox tox-gh-actions
|
63
|
+
- name: Configure Git for DataLad
|
64
|
+
run: |
|
65
|
+
git config --global user.email "junifer-runner@github.com"
|
66
|
+
git config --global user.name "GitHub Runner"
|
67
|
+
- name: Test with tox
|
68
|
+
# https://github.com/actions/checkout/issues/1169#issuecomment-2291682583
|
69
|
+
run: |
|
70
|
+
git config --system --add safe.directory $(pwd)
|
71
|
+
tox
|
72
|
+
- name: Upload coverage to Codecov
|
73
|
+
uses: codecov/codecov-action@v5
|
74
|
+
with:
|
75
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
76
|
+
fail_ci_if_error: true
|
77
|
+
flags: junifer
|
78
|
+
if: success() && matrix.python-version == 3.12
|
@@ -0,0 +1,103 @@
|
|
1
|
+
name: Docker for CI
|
2
|
+
|
3
|
+
# This workflow uses actions that are not certified by GitHub.
|
4
|
+
# They are provided by a third-party and are governed by
|
5
|
+
# separate terms of service, privacy policy, and support
|
6
|
+
# documentation.
|
7
|
+
|
8
|
+
on:
|
9
|
+
push:
|
10
|
+
# Only run when the file is edited on main
|
11
|
+
branches: [ "main" ]
|
12
|
+
paths: [ "Dockerfile-ci" ]
|
13
|
+
pull_request:
|
14
|
+
# Only run when the file is edited on main
|
15
|
+
branches: [ "main" ]
|
16
|
+
paths: [ "Dockerfile-ci" ]
|
17
|
+
workflow_dispatch: {}
|
18
|
+
|
19
|
+
env:
|
20
|
+
# Use docker.io for Docker Hub if empty
|
21
|
+
REGISTRY: ghcr.io
|
22
|
+
# github.repository as <account>/<repo>
|
23
|
+
IMAGE_NAME: ${{ github.repository }}-ci
|
24
|
+
|
25
|
+
|
26
|
+
jobs:
|
27
|
+
build:
|
28
|
+
|
29
|
+
runs-on: ubuntu-24.04
|
30
|
+
permissions:
|
31
|
+
contents: read
|
32
|
+
packages: write
|
33
|
+
# This is used to complete the identity challenge
|
34
|
+
# with sigstore/fulcio when running outside of PRs.
|
35
|
+
id-token: write
|
36
|
+
|
37
|
+
steps:
|
38
|
+
# Taken from https://github.com/orgs/community/discussions/25678#discussioncomment-5242449
|
39
|
+
- name: Delete huge unnecessary tools folder
|
40
|
+
run: rm -rf /opt/hostedtoolcache
|
41
|
+
- name: Checkout repository
|
42
|
+
uses: actions/checkout@v4
|
43
|
+
|
44
|
+
# Install the cosign tool except on PR
|
45
|
+
# https://github.com/sigstore/cosign-installer
|
46
|
+
- name: Install cosign
|
47
|
+
if: github.event_name != 'pull_request'
|
48
|
+
uses: sigstore/cosign-installer@d7d6bc7722e3daa8354c50bcb52f4837da5e9b6a #v3.8.1
|
49
|
+
with:
|
50
|
+
cosign-release: 'v2.2.4'
|
51
|
+
|
52
|
+
# Set up BuildKit Docker container builder to be able to build
|
53
|
+
# multi-platform images and export cache
|
54
|
+
# https://github.com/docker/setup-buildx-action
|
55
|
+
- name: Set up Docker Buildx
|
56
|
+
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
57
|
+
|
58
|
+
# Login against a Docker registry except on PR
|
59
|
+
# https://github.com/docker/login-action
|
60
|
+
- name: Log into registry ${{ env.REGISTRY }}
|
61
|
+
if: github.event_name != 'pull_request'
|
62
|
+
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
|
63
|
+
with:
|
64
|
+
registry: ${{ env.REGISTRY }}
|
65
|
+
username: ${{ github.actor }}
|
66
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
67
|
+
|
68
|
+
# Extract metadata (tags, labels) for Docker
|
69
|
+
# https://github.com/docker/metadata-action
|
70
|
+
- name: Extract Docker metadata
|
71
|
+
id: meta
|
72
|
+
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
|
73
|
+
with:
|
74
|
+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
75
|
+
|
76
|
+
# Build and push Docker image with Buildx (don't push on PR)
|
77
|
+
# https://github.com/docker/build-push-action
|
78
|
+
- name: Build and push Docker image
|
79
|
+
id: build-and-push
|
80
|
+
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
81
|
+
with:
|
82
|
+
context: .
|
83
|
+
file: Dockerfile-ci
|
84
|
+
push: ${{ github.event_name != 'pull_request' }}
|
85
|
+
tags: ${{ steps.meta.outputs.tags }}
|
86
|
+
labels: ${{ steps.meta.outputs.labels }}
|
87
|
+
cache-from: type=gha
|
88
|
+
cache-to: type=gha,mode=max
|
89
|
+
|
90
|
+
# Sign the resulting Docker image digest except on PRs.
|
91
|
+
# This will only write to the public Rekor transparency log when the Docker
|
92
|
+
# repository is public to avoid leaking data. If you would like to publish
|
93
|
+
# transparency data even for private images, pass --force to cosign below.
|
94
|
+
# https://github.com/sigstore/cosign
|
95
|
+
- name: Sign the published Docker image
|
96
|
+
if: ${{ github.event_name != 'pull_request' }}
|
97
|
+
env:
|
98
|
+
# https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable
|
99
|
+
TAGS: ${{ steps.meta.outputs.tags }}
|
100
|
+
DIGEST: ${{ steps.build-and-push.outputs.digest }}
|
101
|
+
# This step uses the identity token to provision an ephemeral certificate
|
102
|
+
# against the sigstore community Fulcio instance.
|
103
|
+
run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST}
|
@@ -0,0 +1,100 @@
|
|
1
|
+
name: Docker for docs
|
2
|
+
|
3
|
+
# This workflow uses actions that are not certified by GitHub.
|
4
|
+
# They are provided by a third-party and are governed by
|
5
|
+
# separate terms of service, privacy policy, and support
|
6
|
+
# documentation.
|
7
|
+
|
8
|
+
on:
|
9
|
+
push:
|
10
|
+
# Only run when the file is edited on main
|
11
|
+
branches: [ "main" ]
|
12
|
+
paths: [ "Dockerfile-docs" ]
|
13
|
+
pull_request:
|
14
|
+
# Only run when the file is edited on main
|
15
|
+
branches: [ "main" ]
|
16
|
+
paths: [ "Dockerfile-docs" ]
|
17
|
+
workflow_dispatch: {}
|
18
|
+
|
19
|
+
env:
|
20
|
+
# Use docker.io for Docker Hub if empty
|
21
|
+
REGISTRY: ghcr.io
|
22
|
+
# github.repository as <account>/<repo>
|
23
|
+
IMAGE_NAME: ${{ github.repository }}-docs
|
24
|
+
|
25
|
+
|
26
|
+
jobs:
|
27
|
+
build:
|
28
|
+
|
29
|
+
runs-on: ubuntu-24.04
|
30
|
+
permissions:
|
31
|
+
contents: read
|
32
|
+
packages: write
|
33
|
+
# This is used to complete the identity challenge
|
34
|
+
# with sigstore/fulcio when running outside of PRs.
|
35
|
+
id-token: write
|
36
|
+
|
37
|
+
steps:
|
38
|
+
- name: Checkout repository
|
39
|
+
uses: actions/checkout@v4
|
40
|
+
|
41
|
+
# Install the cosign tool except on PR
|
42
|
+
# https://github.com/sigstore/cosign-installer
|
43
|
+
- name: Install cosign
|
44
|
+
if: github.event_name != 'pull_request'
|
45
|
+
uses: sigstore/cosign-installer@d7d6bc7722e3daa8354c50bcb52f4837da5e9b6a #v3.8.1
|
46
|
+
with:
|
47
|
+
cosign-release: 'v2.2.4'
|
48
|
+
|
49
|
+
# Set up BuildKit Docker container builder to be able to build
|
50
|
+
# multi-platform images and export cache
|
51
|
+
# https://github.com/docker/setup-buildx-action
|
52
|
+
- name: Set up Docker Buildx
|
53
|
+
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
54
|
+
|
55
|
+
# Login against a Docker registry except on PR
|
56
|
+
# https://github.com/docker/login-action
|
57
|
+
- name: Log into registry ${{ env.REGISTRY }}
|
58
|
+
if: github.event_name != 'pull_request'
|
59
|
+
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
|
60
|
+
with:
|
61
|
+
registry: ${{ env.REGISTRY }}
|
62
|
+
username: ${{ github.actor }}
|
63
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
64
|
+
|
65
|
+
# Extract metadata (tags, labels) for Docker
|
66
|
+
# https://github.com/docker/metadata-action
|
67
|
+
- name: Extract Docker metadata
|
68
|
+
id: meta
|
69
|
+
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
|
70
|
+
with:
|
71
|
+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
72
|
+
|
73
|
+
# Build and push Docker image with Buildx (don't push on PR)
|
74
|
+
# https://github.com/docker/build-push-action
|
75
|
+
- name: Build and push Docker image
|
76
|
+
id: build-and-push
|
77
|
+
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
78
|
+
with:
|
79
|
+
context: .
|
80
|
+
file: Dockerfile-docs
|
81
|
+
push: ${{ github.event_name != 'pull_request' }}
|
82
|
+
tags: ${{ steps.meta.outputs.tags }}
|
83
|
+
labels: ${{ steps.meta.outputs.labels }}
|
84
|
+
cache-from: type=gha
|
85
|
+
cache-to: type=gha,mode=max
|
86
|
+
|
87
|
+
# Sign the resulting Docker image digest except on PRs.
|
88
|
+
# This will only write to the public Rekor transparency log when the Docker
|
89
|
+
# repository is public to avoid leaking data. If you would like to publish
|
90
|
+
# transparency data even for private images, pass --force to cosign below.
|
91
|
+
# https://github.com/sigstore/cosign
|
92
|
+
- name: Sign the published Docker image
|
93
|
+
if: ${{ github.event_name != 'pull_request' }}
|
94
|
+
env:
|
95
|
+
# https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable
|
96
|
+
TAGS: ${{ steps.meta.outputs.tags }}
|
97
|
+
DIGEST: ${{ steps.build-and-push.outputs.digest }}
|
98
|
+
# This step uses the identity token to provision an ephemeral certificate
|
99
|
+
# against the sigstore community Fulcio instance.
|
100
|
+
run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
name: Build and preview docs
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches-ignore:
|
6
|
+
- 'main'
|
7
|
+
tags-ignore:
|
8
|
+
- v*
|
9
|
+
pull_request:
|
10
|
+
types:
|
11
|
+
- opened
|
12
|
+
- reopened
|
13
|
+
- synchronize
|
14
|
+
- closed
|
15
|
+
|
16
|
+
concurrency: preview-${{ github.ref }}
|
17
|
+
|
18
|
+
jobs:
|
19
|
+
build-docs:
|
20
|
+
# https://github.com/actions/setup-python/issues/1013#issuecomment-2642078401
|
21
|
+
runs-on: ubuntu-22.04
|
22
|
+
permissions:
|
23
|
+
# Needed for preview deploy
|
24
|
+
pull-requests: write
|
25
|
+
# Use custom docs CI image
|
26
|
+
container: ghcr.io/juaml/junifer-docs:main
|
27
|
+
steps:
|
28
|
+
- name: Check ANTs
|
29
|
+
run: |
|
30
|
+
echo "Using ANTs : $(antsRegistration --version)"
|
31
|
+
- name: Install system dependencies
|
32
|
+
# actions/checkout fails to identify Git as it's not in the CI image
|
33
|
+
run: |
|
34
|
+
apt-get -qq update
|
35
|
+
apt-get -qq install -y \
|
36
|
+
git \
|
37
|
+
git-annex \
|
38
|
+
make \
|
39
|
+
jq
|
40
|
+
- name: Copy junifer-data directory
|
41
|
+
run: |
|
42
|
+
mkdir -p $HOME/junifer_data/v2
|
43
|
+
cp -ar /root/junifer_data/v2/. $HOME/junifer_data/v2/
|
44
|
+
- name: Checkout repository
|
45
|
+
uses: actions/checkout@v4
|
46
|
+
with:
|
47
|
+
fetch-depth: 0
|
48
|
+
submodules: true
|
49
|
+
- name: Set up Python
|
50
|
+
uses: actions/setup-python@v5
|
51
|
+
with:
|
52
|
+
python-version: "3.12"
|
53
|
+
- name: Install Python dependencies
|
54
|
+
run: |
|
55
|
+
python -m pip install --upgrade pip setuptools wheel
|
56
|
+
python -m pip install -e ".[docs,neurokit2]"
|
57
|
+
- name: Configure Git for DataLad
|
58
|
+
run: |
|
59
|
+
git config --global user.email "junifer-runner@github.com"
|
60
|
+
git config --global user.name "GitHub Runner"
|
61
|
+
- name: Test build docs
|
62
|
+
run: |
|
63
|
+
BUILDDIR=_build/main make -C docs/ local
|
64
|
+
- name: Deploy preview
|
65
|
+
if: github.event_name == 'pull_request'
|
66
|
+
uses: rossjrw/pr-preview-action@v1
|
67
|
+
with:
|
68
|
+
source-dir: docs/_build/main
|
@@ -8,52 +8,50 @@ on:
|
|
8
8
|
# Sequence of patterns matched against refs/tags
|
9
9
|
tags:
|
10
10
|
- v*
|
11
|
+
workflow_dispatch: {}
|
11
12
|
|
12
13
|
jobs:
|
13
14
|
build-docs:
|
14
|
-
|
15
|
+
# https://github.com/actions/setup-python/issues/1013#issuecomment-2642078401
|
16
|
+
runs-on: ubuntu-22.04
|
17
|
+
# Use custom docs CI image
|
18
|
+
container: ghcr.io/juaml/junifer-docs:main
|
15
19
|
steps:
|
16
|
-
- name:
|
20
|
+
- name: Check ANTs
|
21
|
+
run: |
|
22
|
+
echo "Using ANTs : $(antsRegistration --version)"
|
23
|
+
- name: Install system dependencies
|
24
|
+
# actions/checkout fails to identify Git as it's not in the CI image
|
25
|
+
run: |
|
26
|
+
apt-get -qq update
|
27
|
+
apt-get -qq install -y \
|
28
|
+
git \
|
29
|
+
git-annex \
|
30
|
+
make \
|
31
|
+
jq
|
32
|
+
- name: Copy junifer-data directory
|
33
|
+
run: |
|
34
|
+
mkdir -p $HOME/junifer_data/v2
|
35
|
+
cp -ar /root/junifer_data/v2/. $HOME/junifer_data/v2/
|
36
|
+
- name: Checkout repository
|
17
37
|
uses: actions/checkout@v4
|
18
38
|
with:
|
19
39
|
# require all of history to see all tagged versions' docs
|
20
40
|
fetch-depth: 0
|
21
41
|
submodules: true
|
22
|
-
- name: Set up Python
|
42
|
+
- name: Set up Python
|
23
43
|
uses: actions/setup-python@v5
|
24
44
|
with:
|
25
|
-
python-version:
|
26
|
-
- name:
|
27
|
-
shell: bash
|
28
|
-
run: |
|
29
|
-
if type sudo >/dev/null 2>&1; then SUDO="sudo"; else SUDO=""; fi
|
30
|
-
echo "SUDO=$SUDO" >> $GITHUB_ENV
|
31
|
-
- name: Install dependencies
|
45
|
+
python-version: "3.12"
|
46
|
+
- name: Install Python dependencies
|
32
47
|
run: |
|
33
|
-
$SUDO bash -c "$(curl -fsSL http://neuro.debian.net/_files/neurodebian-travis.sh)"
|
34
|
-
$SUDO apt-get update -qq
|
35
|
-
$SUDO apt-get install git-annex-standalone
|
36
48
|
python -m pip install --upgrade pip setuptools wheel
|
37
49
|
python -m pip install -e ".[docs,neurokit2]"
|
38
50
|
python -m pip install git+https://github.com/dls-controls/sphinx-multiversion@only-arg
|
39
|
-
- name: Configure
|
51
|
+
- name: Configure Git for DataLad
|
40
52
|
run: |
|
41
|
-
git config --global user.email "runner@github.com"
|
42
|
-
git config --global user.name "
|
43
|
-
- name: Install ANTs
|
44
|
-
run: |
|
45
|
-
echo "++ Add universe repo"
|
46
|
-
sudo add-apt-repository -y universe
|
47
|
-
|
48
|
-
echo "++ Update package manager info"
|
49
|
-
sudo apt-get update -qq
|
50
|
-
|
51
|
-
echo "++ Downloading ANTs"
|
52
|
-
curl -fsSL -o ants.zip https://github.com/ANTsX/ANTs/releases/download/v2.5.1/ants-2.5.1-ubuntu-22.04-X64-gcc.zip
|
53
|
-
unzip ants.zip -d /opt
|
54
|
-
mv /opt/ants-2.5.1/bin/* /opt/ants-2.5.1
|
55
|
-
rm ants.zip
|
56
|
-
echo "/opt/ants-2.5.1" >> $GITHUB_PATH
|
53
|
+
git config --global user.email "junifer-runner@github.com"
|
54
|
+
git config --global user.name "GitHub Runner"
|
57
55
|
- name: Checkout gh-pages
|
58
56
|
# As we already did a deploy of gh-pages above, it is guaranteed to be there
|
59
57
|
# so check it out so we can selectively build docs below
|
@@ -63,7 +61,9 @@ jobs:
|
|
63
61
|
path: docs/_build
|
64
62
|
- name: Build docs
|
65
63
|
# Use the args we normally pass to sphinx-build, but run sphinx-multiversion
|
64
|
+
# https://github.com/actions/checkout/issues/1169#issuecomment-2291682583
|
66
65
|
run: |
|
66
|
+
git config --system --add safe.directory $(pwd)
|
67
67
|
make -C docs/ html
|
68
68
|
touch docs/_build/.nojekyll
|
69
69
|
cp docs/redirect.html docs/_build/index.html
|
@@ -0,0 +1,46 @@
|
|
1
|
+
name: Build and publish
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
tags:
|
8
|
+
- 'v*'
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
build-and-publish:
|
12
|
+
name: Build and publish
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
permissions:
|
15
|
+
# Needed for PyPI publishing
|
16
|
+
id-token: write
|
17
|
+
# Needed for GitHub releases
|
18
|
+
contents: write
|
19
|
+
steps:
|
20
|
+
- name: Checkout source
|
21
|
+
uses: actions/checkout@v4
|
22
|
+
with:
|
23
|
+
fetch-depth: 0
|
24
|
+
submodules: true
|
25
|
+
- name: Set up Python
|
26
|
+
uses: actions/setup-python@v5
|
27
|
+
with:
|
28
|
+
python-version: "3.x"
|
29
|
+
- name: Install build
|
30
|
+
run: |
|
31
|
+
python -m pip install --upgrade pip
|
32
|
+
python -m pip install build
|
33
|
+
- name: Build package
|
34
|
+
run:
|
35
|
+
python -m build
|
36
|
+
- name: Publish package to PyPI
|
37
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
38
|
+
- name: Make release on GitHub
|
39
|
+
uses: softprops/action-gh-release@v2
|
40
|
+
if: startsWith(github.ref, 'refs/tags/')
|
41
|
+
with:
|
42
|
+
files: |
|
43
|
+
dist/*.tar.gz
|
44
|
+
dist/*.whl
|
45
|
+
generate_release_notes: true
|
46
|
+
make_latest: true
|
@@ -4,7 +4,7 @@ ci:
|
|
4
4
|
|
5
5
|
repos:
|
6
6
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
7
|
-
rev:
|
7
|
+
rev: v5.0.0
|
8
8
|
hooks:
|
9
9
|
- id: check-ast
|
10
10
|
- id: check-docstring-first
|
@@ -17,24 +17,24 @@ repos:
|
|
17
17
|
- id: trailing-whitespace
|
18
18
|
args: [--markdown-linebreak-ext=md]
|
19
19
|
- repo: https://github.com/abravalheri/validate-pyproject
|
20
|
-
rev: v0.
|
20
|
+
rev: v0.23
|
21
21
|
hooks:
|
22
22
|
- id: validate-pyproject
|
23
23
|
- repo: https://github.com/psf/black-pre-commit-mirror
|
24
|
-
rev: 24.
|
24
|
+
rev: 24.10.0
|
25
25
|
hooks:
|
26
26
|
- id: black
|
27
27
|
exclude: ^(docs/|examples/|tools/)
|
28
28
|
args: [--check]
|
29
29
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
30
|
-
rev: v0.
|
30
|
+
rev: v0.9.3
|
31
31
|
hooks:
|
32
32
|
- id: ruff
|
33
33
|
types_or: [python, jupyter]
|
34
34
|
exclude: ^(__init__.py)
|
35
35
|
args: [--output-format, grouped, --show-fixes]
|
36
36
|
- repo: https://github.com/codespell-project/codespell
|
37
|
-
rev: v2.
|
37
|
+
rev: v2.4.0
|
38
38
|
hooks:
|
39
39
|
- id: codespell
|
40
40
|
exclude: ^(.github/|docs/)
|
@@ -48,7 +48,7 @@ repos:
|
|
48
48
|
- id: rst-directive-colons
|
49
49
|
- id: rst-inline-touching-normal
|
50
50
|
- repo: https://github.com/adamchainz/blacken-docs
|
51
|
-
rev: "1.
|
51
|
+
rev: "1.19.1"
|
52
52
|
hooks:
|
53
53
|
- id: blacken-docs
|
54
54
|
additional_dependencies:
|