junifer 0.0.8.dev211__tar.gz → 0.0.8.dev253__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.8.dev211 → junifer-0.0.8.dev253}/.dockerignore +3 -0
- junifer-0.0.8.dev253/.github/workflows/ci.yml +157 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/workflows/docker-publish.yml +15 -3
- junifer-0.0.8.dev253/.github/workflows/docs-preview.yml +63 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/workflows/docs.yml +11 -23
- junifer-0.0.8.dev253/.github/workflows/lint.yml +29 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/workflows/publish.yml +3 -5
- junifer-0.0.8.dev253/Dockerfile +82 -0
- junifer-0.0.8.dev253/Dockerfile-ci +134 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/PKG-INFO +20 -16
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/codecov.yml +4 -11
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/Makefile +10 -4
- junifer-0.0.8.dev253/docs/_static/css/version_selector.css +126 -0
- junifer-0.0.8.dev253/docs/_templates/versions.html +11 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/502.bugfix +1 -1
- junifer-0.0.8.dev253/docs/changes/newsfragments/511.bugfix +1 -0
- junifer-0.0.8.dev253/docs/changes/newsfragments/511.bugfix.1 +1 -0
- junifer-0.0.8.dev253/docs/changes/newsfragments/511.change +1 -0
- junifer-0.0.8.dev253/docs/changes/newsfragments/511.enh +1 -0
- junifer-0.0.8.dev253/docs/changes/newsfragments/511.enh.1 +1 -0
- junifer-0.0.8.dev253/docs/changes/newsfragments/511.feature +1 -0
- junifer-0.0.8.dev253/docs/changes/newsfragments/511.misc +1 -0
- junifer-0.0.8.dev253/docs/changes/newsfragments/511.misc.1 +1 -0
- junifer-0.0.8.dev253/docs/changes/newsfragments/513.doc +1 -0
- junifer-0.0.8.dev253/docs/changes/newsfragments/513.misc +1 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/conf.py +72 -28
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/contribution.rst +14 -3
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/datagrabber.rst +5 -5
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/links.inc +1 -0
- junifer-0.0.8.dev253/docs/poly.py +555 -0
- junifer-0.0.8.dev253/docs/poly_files/patches/version_banner.html +24 -0
- junifer-0.0.8.dev253/docs/poly_files/patches/versions.html +35 -0
- junifer-0.0.8.dev253/docs/poly_files/templates/index.html +12 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/norun_hcpfc_pearson.py +2 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/run_compute_parcel_mean.py +17 -13
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/run_datagrabber_bids_datalad.py +1 -1
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/run_ets_rss_marker.py +6 -6
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/run_junifer_julearn.py +18 -14
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/run_run_gmd_mean.py +17 -11
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/yamls/gmd_mean.yaml +2 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/yamls/gmd_mean_htcondor.yaml +2 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/yamls/ukb_gmd_mean.yaml +2 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/_version.py +3 -3
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/tests/test_functions.py +6 -1
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/tests/test_cli.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/tests/test_cli_utils.py +19 -3
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/utils.py +14 -9
- junifer-0.0.8.dev253/junifer/conftest.py +48 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/coordinates/_coordinates.py +43 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/coordinates/tests/test_coordinates.py +12 -0
- junifer-0.0.8.dev253/junifer/data/coordinates/tests/test_coordinates_names.py +37 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/maps/tests/test_maps.py +9 -18
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/masks/tests/test_masks.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/parcellations/tests/test_parcellations.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/template_spaces.py +17 -1
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/tests/test_template_spaces.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/aomic/tests/test_id1000.py +39 -3
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/aomic/tests/test_piop1.py +38 -3
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/aomic/tests/test_piop2.py +39 -3
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/datalad_base.py +10 -3
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +6 -5
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/pattern.py +16 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/tests/test_datalad_base.py +6 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +36 -1
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/tests/test_multiple.py +6 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/tests/test_pattern.py +83 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/tests/test_pattern_datalad.py +6 -2
- junifer-0.0.8.dev253/junifer/markers/complexity/tests/test_hurst_exponent.py +88 -0
- junifer-0.0.8.dev253/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +90 -0
- junifer-0.0.8.dev253/junifer/markers/complexity/tests/test_perm_entropy.py +88 -0
- junifer-0.0.8.dev253/junifer/markers/complexity/tests/test_range_entropy.py +88 -0
- junifer-0.0.8.dev253/junifer/markers/complexity/tests/test_range_entropy_auc.py +90 -0
- junifer-0.0.8.dev253/junifer/markers/complexity/tests/test_sample_entropy.py +88 -0
- junifer-0.0.8.dev253/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +90 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/_junifer_falff.py +31 -26
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/tests/test_falff_maps.py +10 -13
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/tests/test_falff_parcels.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/tests/test_falff_spheres.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +13 -17
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +7 -6
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +7 -6
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/tests/test_reho_maps.py +10 -13
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/tests/test_reho_parcels.py +10 -8
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/tests/test_reho_spheres.py +5 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +12 -19
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +5 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +5 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/tests/test_ets_rss.py +4 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/tests/test_maps_aggregation.py +33 -80
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/tests/test_parcel_aggregation.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/tests/test_sphere_aggregation.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/tests/test_data_object_dumper.py +3 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/tests/test_marker_collection.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/tests/test_pipeline_step_mixin.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/smoothing/tests/test_smoothing.py +6 -3
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/tests/test_temporal_filter.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/tests/test_temporal_slicer.py +3 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/warping/space_warper.py +2 -2
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/warping/tests/test_space_warper.py +3 -0
- junifer-0.0.8.dev253/junifer/testing/__init__.pyi +4 -0
- junifer-0.0.8.dev253/junifer/testing/datagrabbers.py +513 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/testing/registry.py +6 -0
- junifer-0.0.8.dev253/junifer/testing/tests/test_adhdtesting_datagrabber.py +24 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +5 -0
- junifer-0.0.8.dev253/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +85 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/testing/tests/test_spmauditory_datagrabber.py +13 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/testing/tests/test_testing_registry.py +4 -0
- junifer-0.0.8.dev253/junifer/testing/tests/test_testing_utils.py +35 -0
- junifer-0.0.8.dev253/junifer/testing/utils.py +61 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/logging.py +26 -1
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer.egg-info/PKG-INFO +20 -16
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer.egg-info/SOURCES.txt +19 -5
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer.egg-info/requires.txt +16 -11
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer.egg-info/scm_file_list.json +19 -5
- junifer-0.0.8.dev253/junifer.egg-info/scm_version.json +8 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/pyproject.toml +47 -6
- junifer-0.0.8.dev253/scripts/start.sh +7 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/tox.ini +29 -8
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/uv.lock +566 -129
- junifer-0.0.8.dev211/.github/workflows/ci-docs.yml +0 -57
- junifer-0.0.8.dev211/.github/workflows/ci.yml +0 -72
- junifer-0.0.8.dev211/.github/workflows/docker-ci-publish.yml +0 -69
- junifer-0.0.8.dev211/.github/workflows/docker-docs-publish.yml +0 -69
- junifer-0.0.8.dev211/.github/workflows/docs-preview.yml +0 -69
- junifer-0.0.8.dev211/.github/workflows/lint.yml +0 -23
- junifer-0.0.8.dev211/Dockerfile +0 -82
- junifer-0.0.8.dev211/Dockerfile-ci +0 -72
- junifer-0.0.8.dev211/Dockerfile-docs +0 -26
- junifer-0.0.8.dev211/docs/_templates/versions.html +0 -25
- junifer-0.0.8.dev211/docs/redirect.html +0 -9
- junifer-0.0.8.dev211/junifer/conftest.py +0 -58
- junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -78
- junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -77
- junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_perm_entropy.py +0 -77
- junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_range_entropy.py +0 -78
- junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -78
- junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_sample_entropy.py +0 -77
- junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -77
- junifer-0.0.8.dev211/junifer/testing/__init__.pyi +0 -4
- junifer-0.0.8.dev211/junifer/testing/datagrabbers.py +0 -256
- junifer-0.0.8.dev211/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -40
- junifer-0.0.8.dev211/junifer/testing/utils.py +0 -29
- junifer-0.0.8.dev211/junifer.egg-info/scm_version.json +0 -8
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/pull_request_template.md +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.github/workflows/check-stale.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.gitignore +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.gitmodules +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/.python-version +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/AUTHORS.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/LICENSE.md +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/README.md +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/conda-env.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/api.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/cli.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/configs.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/data.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/index.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/markers.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/stats.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/storage.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/testing.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/api/utils.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/builtin.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/239.enh +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/364.doc +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/364.enh +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/364.feature +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/474.misc +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/482.bugfix +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/492.bugfix +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/499.enh +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/503.enh +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/changes/newsfragments/510.bugfix +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/confounds_format.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/data_dump_asset.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/data_registries.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/data_types.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/extension.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/index.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/logging.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/maps.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/marker.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/masks.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/plugins.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/faq.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/help.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/index.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/installation.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/maintaining.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/starting.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/understanding/data.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/understanding/index.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/using/codeless.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/using/configuring.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/using/dumping.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/using/index.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/using/masks.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/using/queueing.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/using/running.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/docs/whats_new.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/README.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/ignore_words.txt +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/decorators.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/functions.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/api/tests/test_decorators.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/cli.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/parser.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/configs/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/_dispatch.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/maps/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/maps/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/maps/_ants_maps_warper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/maps/_fsl_maps_warper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/maps/_maps.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/masks/_ants_mask_warper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/masks/_fsl_mask_warper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/masks/_masks.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/parcellations/_parcellations.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/tests/test_dispatch.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/data/utils.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/aomic/_types.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datareader/default.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.codecov.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.codespellignore +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.github/workflows/build.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.github/workflows/code-style.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.github/workflows/doc.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.github/workflows/publish.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.github/workflows/pytest.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/.gitignore +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/LICENSE +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/README.md +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/cli/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/cli/help_text.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/cli/parser.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/cli/utils.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/commands/sys_info.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/Makefile +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/api/index.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/conf.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/index.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/links.inc +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/make.bat +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/doc/references.bib +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/pyproject.toml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/BrainPrint/setup.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/.coveragerc +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/.gitattributes +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/.gitignore +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/.travis.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/.vscode/launch.json +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/.vscode/settings.json +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/LICENSE.txt +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/MANIFEST.in +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/Makefile +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/README.rst +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/azure-pipelines.yml +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/h5io/tests/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/h5io/tests/test_chunked_array.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/h5io/tests/test_chunked_list.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/h5io/tests/test_io.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/setup.cfg +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/setup.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/h5io/versioneer.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/external/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/falff_maps.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/maps_aggregation.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/reho_maps.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/temporal_snr_maps.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/markers/utils.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/onthefly/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/onthefly/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/pipeline/workdir_manager.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/_temporal_filter.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/_temporal_slicer.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/stats.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/storage/utils.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/testing/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/typing/_typing.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/typing/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/__init__.pyi +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/_config.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/fs.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/py.typed +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/justfile +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/setup.cfg +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/setup.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.8.dev211 → junifer-0.0.8.dev253}/tools/create_hcp1200_example_dataset.py +0 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
name: Run Tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
# Branches are tested through their pull requests
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
pull_request:
|
|
9
|
+
workflow_dispatch: {}
|
|
10
|
+
|
|
11
|
+
# Cancel superseded runs of the same branch / PR, except on main
|
|
12
|
+
concurrency:
|
|
13
|
+
group: tests-${{ github.event.pull_request.number || github.ref }}
|
|
14
|
+
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
# Check whether the library changed, to skip the tests otherwise
|
|
18
|
+
# (e.g. on docs-only changes)
|
|
19
|
+
changes:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
pull-requests: read
|
|
24
|
+
outputs:
|
|
25
|
+
code: ${{ steps.filter.outputs.code }}
|
|
26
|
+
steps:
|
|
27
|
+
- name: Checkout repository
|
|
28
|
+
uses: actions/checkout@v7
|
|
29
|
+
if: github.event_name != 'pull_request'
|
|
30
|
+
- name: Check for library changes
|
|
31
|
+
uses: dorny/paths-filter@v3
|
|
32
|
+
id: filter
|
|
33
|
+
with:
|
|
34
|
+
filters: |
|
|
35
|
+
code:
|
|
36
|
+
- 'junifer/**'
|
|
37
|
+
- '.github/workflows/ci.yml'
|
|
38
|
+
- 'tox.ini'
|
|
39
|
+
- 'pyproject.toml'
|
|
40
|
+
- 'uv.lock'
|
|
41
|
+
- 'codecov.yml'
|
|
42
|
+
|
|
43
|
+
# Tests that need testing datasets, junifer-data or AFNI / ANTs / FSL
|
|
44
|
+
run-tests-external:
|
|
45
|
+
needs: changes
|
|
46
|
+
if: needs.changes.outputs.code == 'true' || github.event_name == 'workflow_dispatch'
|
|
47
|
+
runs-on: [self-hosted, linux, x64, data-v7]
|
|
48
|
+
strategy:
|
|
49
|
+
fail-fast: false
|
|
50
|
+
matrix:
|
|
51
|
+
# Only the version used for coverage; all versions run on the rest
|
|
52
|
+
python-version: ['3.13']
|
|
53
|
+
# https://github.com/actions/setup-python/issues/1013#issuecomment-2642078401
|
|
54
|
+
steps:
|
|
55
|
+
- name: Check ANTs
|
|
56
|
+
run: |
|
|
57
|
+
echo "Using ANTs : $(antsRegistration --version)"
|
|
58
|
+
- name: Check AFNI
|
|
59
|
+
run: |
|
|
60
|
+
echo "Using AFNI : $(afni --version)"
|
|
61
|
+
- name: Check FSL
|
|
62
|
+
run: |
|
|
63
|
+
echo "Using FSL : $(flirt -version)"
|
|
64
|
+
- name: Check tooling
|
|
65
|
+
run: |
|
|
66
|
+
echo "HOME=$HOME"
|
|
67
|
+
which git-annex && git annex version | head -1
|
|
68
|
+
ls -d "$HOME"/junifer_data/* && cat "$HOME/junifer-data-version"
|
|
69
|
+
- name: Checkout repository
|
|
70
|
+
uses: actions/checkout@v7
|
|
71
|
+
with:
|
|
72
|
+
submodules: true
|
|
73
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
74
|
+
uses: actions/setup-python@v7
|
|
75
|
+
with:
|
|
76
|
+
python-version: ${{ matrix.python-version }}
|
|
77
|
+
- name: Set up uv
|
|
78
|
+
uses: astral-sh/setup-uv@v10.2.0
|
|
79
|
+
- name: Install tox
|
|
80
|
+
# tox-uv makes tox create the test environments with uv
|
|
81
|
+
run: |
|
|
82
|
+
uv tool install tox --with tox-uv --with tox-gh-actions
|
|
83
|
+
- name: Configure Git for DataLad
|
|
84
|
+
run: |
|
|
85
|
+
git config --global user.email "junifer-runner@github.com"
|
|
86
|
+
git config --global user.name "GitHub Runner"
|
|
87
|
+
- name: Test with tox
|
|
88
|
+
# https://github.com/actions/checkout/issues/1169#issuecomment-2291682583
|
|
89
|
+
run: |
|
|
90
|
+
git config --global --add safe.directory $(pwd)
|
|
91
|
+
tox -- -m external
|
|
92
|
+
- name: Upload coverage to Codecov
|
|
93
|
+
uses: codecov/codecov-action@v7
|
|
94
|
+
with:
|
|
95
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
96
|
+
fail_ci_if_error: true
|
|
97
|
+
flags: junifer
|
|
98
|
+
if: success() && matrix.python-version == '3.13'
|
|
99
|
+
|
|
100
|
+
# All the other tests
|
|
101
|
+
run-tests:
|
|
102
|
+
needs: changes
|
|
103
|
+
if: needs.changes.outputs.code == 'true' || github.event_name == 'workflow_dispatch'
|
|
104
|
+
runs-on: ubuntu-latest
|
|
105
|
+
strategy:
|
|
106
|
+
fail-fast: false
|
|
107
|
+
matrix:
|
|
108
|
+
python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
|
|
109
|
+
steps:
|
|
110
|
+
- name: Checkout repository
|
|
111
|
+
uses: actions/checkout@v7
|
|
112
|
+
with:
|
|
113
|
+
submodules: true
|
|
114
|
+
- name: Install git-annex
|
|
115
|
+
run: |
|
|
116
|
+
sudo apt-get update
|
|
117
|
+
sudo apt-get install -y git-annex
|
|
118
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
119
|
+
uses: actions/setup-python@v7
|
|
120
|
+
with:
|
|
121
|
+
python-version: ${{ matrix.python-version }}
|
|
122
|
+
- name: Set up uv
|
|
123
|
+
uses: astral-sh/setup-uv@v10.2.0
|
|
124
|
+
- name: Install tox
|
|
125
|
+
# tox-uv makes tox create the test environments with uv
|
|
126
|
+
run: |
|
|
127
|
+
uv tool install tox --with tox-uv --with tox-gh-actions
|
|
128
|
+
- name: Configure Git for DataLad
|
|
129
|
+
run: |
|
|
130
|
+
git config --global user.email "junifer-runner@github.com"
|
|
131
|
+
git config --global user.name "GitHub Runner"
|
|
132
|
+
- name: Test with tox
|
|
133
|
+
run: |
|
|
134
|
+
tox -- -m "not external"
|
|
135
|
+
- name: Upload coverage to Codecov
|
|
136
|
+
uses: codecov/codecov-action@v7
|
|
137
|
+
with:
|
|
138
|
+
token: ${{ secrets.CODECOV_TOKEN }}
|
|
139
|
+
fail_ci_if_error: true
|
|
140
|
+
flags: junifer
|
|
141
|
+
if: success() && matrix.python-version == '3.13'
|
|
142
|
+
|
|
143
|
+
# Single status to require in branch protection: passes when the tests
|
|
144
|
+
# passed or were skipped because the library did not change
|
|
145
|
+
tests:
|
|
146
|
+
needs: [changes, run-tests-external, run-tests]
|
|
147
|
+
if: always()
|
|
148
|
+
runs-on: ubuntu-latest
|
|
149
|
+
steps:
|
|
150
|
+
- name: Check test results
|
|
151
|
+
if: >-
|
|
152
|
+
contains(needs.*.result, 'failure') ||
|
|
153
|
+
contains(needs.*.result, 'cancelled')
|
|
154
|
+
run: |
|
|
155
|
+
echo "Some test jobs failed or were cancelled"
|
|
156
|
+
exit 1
|
|
157
|
+
- run: echo "Tests passed or were not needed"
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
name: Docker
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
+
# Publish an image for every release
|
|
4
5
|
push:
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
tags:
|
|
7
|
+
- v*
|
|
8
|
+
# Only test that the image builds
|
|
7
9
|
pull_request:
|
|
8
10
|
branches: [ "main" ]
|
|
9
|
-
paths: [ "Dockerfile" ]
|
|
11
|
+
paths: [ "Dockerfile", ".github/workflows/docker-publish.yml" ]
|
|
10
12
|
workflow_dispatch: {}
|
|
11
13
|
|
|
12
14
|
env:
|
|
@@ -33,6 +35,10 @@ jobs:
|
|
|
33
35
|
- run: df -h
|
|
34
36
|
- name: Checkout repository
|
|
35
37
|
uses: actions/checkout@v7
|
|
38
|
+
with:
|
|
39
|
+
# Tags are needed for the junifer version (setuptools-scm)
|
|
40
|
+
fetch-depth: 0
|
|
41
|
+
submodules: true
|
|
36
42
|
- name: Install cosign
|
|
37
43
|
if: github.event_name != 'pull_request'
|
|
38
44
|
uses: sigstore/cosign-installer@v4.1.2
|
|
@@ -50,6 +56,12 @@ jobs:
|
|
|
50
56
|
uses: docker/metadata-action@v6.2.0
|
|
51
57
|
with:
|
|
52
58
|
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
|
59
|
+
# vX.Y.Z -> X.Y.Z, X.Y and latest; branch name for manual runs
|
|
60
|
+
tags: |
|
|
61
|
+
type=semver,pattern={{version}}
|
|
62
|
+
type=semver,pattern={{major}}.{{minor}}
|
|
63
|
+
type=ref,event=branch
|
|
64
|
+
type=ref,event=pr
|
|
53
65
|
- name: Build and push Docker image
|
|
54
66
|
id: build-and-push
|
|
55
67
|
uses: docker/build-push-action@v7.3.0
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
name: Build and preview docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
# Docs for main and tags are built by docs.yml
|
|
5
|
+
pull_request:
|
|
6
|
+
types:
|
|
7
|
+
- opened
|
|
8
|
+
- reopened
|
|
9
|
+
- synchronize
|
|
10
|
+
- closed
|
|
11
|
+
|
|
12
|
+
concurrency:
|
|
13
|
+
group: preview-${{ github.ref }}
|
|
14
|
+
cancel-in-progress: true
|
|
15
|
+
|
|
16
|
+
jobs:
|
|
17
|
+
build-docs:
|
|
18
|
+
runs-on: [self-hosted, linux, x64, data-v7]
|
|
19
|
+
permissions:
|
|
20
|
+
# Needed for preview deploy
|
|
21
|
+
pull-requests: write
|
|
22
|
+
contents: write
|
|
23
|
+
steps:
|
|
24
|
+
- name: Check ANTs
|
|
25
|
+
if: github.event.action != 'closed' # The build is not needed when the preview is removed
|
|
26
|
+
run: |
|
|
27
|
+
echo "Using ANTs : $(antsRegistration --version)"
|
|
28
|
+
- name: Check tooling
|
|
29
|
+
if: github.event.action != 'closed' # The build is not needed when the preview is removed
|
|
30
|
+
run: |
|
|
31
|
+
which make git-annex jq
|
|
32
|
+
ls -d "$HOME"/junifer_data/v7
|
|
33
|
+
- name: Checkout repository
|
|
34
|
+
uses: actions/checkout@v7
|
|
35
|
+
with:
|
|
36
|
+
fetch-depth: 0
|
|
37
|
+
submodules: true
|
|
38
|
+
- name: Set up Python
|
|
39
|
+
if: github.event.action != 'closed' # The build is not needed when the preview is removed
|
|
40
|
+
uses: actions/setup-python@v7
|
|
41
|
+
with:
|
|
42
|
+
python-version: "3.12"
|
|
43
|
+
- name: Set up uv
|
|
44
|
+
if: github.event.action != 'closed' # The build is not needed when the preview is removed
|
|
45
|
+
uses: astral-sh/setup-uv@v10.2.0
|
|
46
|
+
- name: Install Python dependencies
|
|
47
|
+
if: github.event.action != 'closed' # The build is not needed when the preview is removed
|
|
48
|
+
run: |
|
|
49
|
+
uv sync --locked --extra docs
|
|
50
|
+
- name: Configure Git for DataLad
|
|
51
|
+
if: github.event.action != 'closed' # The build is not needed when the preview is removed
|
|
52
|
+
run: |
|
|
53
|
+
git config --global user.email "junifer-runner@github.com"
|
|
54
|
+
git config --global user.name "GitHub Runner"
|
|
55
|
+
- name: Test build docs
|
|
56
|
+
if: github.event.action != 'closed' # The build is not needed when the preview is removed
|
|
57
|
+
run: |
|
|
58
|
+
BUILDDIR=_build/main uv run make -C docs/ local
|
|
59
|
+
- name: Deploy preview
|
|
60
|
+
if: github.event_name == 'pull_request'
|
|
61
|
+
uses: rossjrw/pr-preview-action@v1
|
|
62
|
+
with:
|
|
63
|
+
source-dir: docs/_build/main
|
|
@@ -12,27 +12,15 @@ on:
|
|
|
12
12
|
|
|
13
13
|
jobs:
|
|
14
14
|
build-docs:
|
|
15
|
-
|
|
16
|
-
runs-on: ubuntu-22.04
|
|
17
|
-
# Use custom docs CI image
|
|
18
|
-
container: ghcr.io/juaml/junifer-docs:main
|
|
15
|
+
runs-on: [self-hosted, linux, x64, data-v7]
|
|
19
16
|
steps:
|
|
20
17
|
- name: Check ANTs
|
|
21
18
|
run: |
|
|
22
19
|
echo "Using ANTs : $(antsRegistration --version)"
|
|
23
|
-
- name:
|
|
24
|
-
# actions/checkout fails to identify Git as it's not in the CI image
|
|
20
|
+
- name: Check tooling
|
|
25
21
|
run: |
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
git \
|
|
29
|
-
git-annex \
|
|
30
|
-
make \
|
|
31
|
-
jq
|
|
32
|
-
- name: Copy junifer-data directory
|
|
33
|
-
run: |
|
|
34
|
-
mkdir -p $HOME/junifer_data/v7
|
|
35
|
-
cp -ar /root/junifer_data/v7/. $HOME/junifer_data/v7/
|
|
22
|
+
which make git-annex jq
|
|
23
|
+
ls -d "$HOME"/junifer_data/v7
|
|
36
24
|
- name: Checkout repository
|
|
37
25
|
uses: actions/checkout@v7
|
|
38
26
|
with:
|
|
@@ -43,11 +31,11 @@ jobs:
|
|
|
43
31
|
uses: actions/setup-python@v7
|
|
44
32
|
with:
|
|
45
33
|
python-version: "3.12"
|
|
34
|
+
- name: Set up uv
|
|
35
|
+
uses: astral-sh/setup-uv@v10.2.0
|
|
46
36
|
- name: Install Python dependencies
|
|
47
37
|
run: |
|
|
48
|
-
|
|
49
|
-
python -m pip install -e ".[docs,neurokit2]"
|
|
50
|
-
python -m pip install git+https://github.com/dls-controls/sphinx-multiversion@only-arg
|
|
38
|
+
uv sync --locked --extra docs
|
|
51
39
|
- name: Configure Git for DataLad
|
|
52
40
|
run: |
|
|
53
41
|
git config --global user.email "junifer-runner@github.com"
|
|
@@ -60,13 +48,13 @@ jobs:
|
|
|
60
48
|
ref: gh-pages
|
|
61
49
|
path: docs/_build
|
|
62
50
|
- name: Build docs
|
|
63
|
-
#
|
|
51
|
+
# Build all the versions with sphinx-polyversion; the versions already
|
|
52
|
+
# in gh-pages are kept and only the missing ones are built
|
|
64
53
|
# https://github.com/actions/checkout/issues/1169#issuecomment-2291682583
|
|
65
54
|
run: |
|
|
66
|
-
git config --
|
|
67
|
-
make -C docs/ html
|
|
55
|
+
git config --global --add safe.directory $(pwd)
|
|
56
|
+
uv run make -C docs/ html
|
|
68
57
|
touch docs/_build/.nojekyll
|
|
69
|
-
cp docs/redirect.html docs/_build/index.html
|
|
70
58
|
- name: Publish docs to gh-pages
|
|
71
59
|
uses: peaceiris/actions-gh-pages@v4
|
|
72
60
|
with:
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Lint
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
- push
|
|
5
|
+
- pull_request
|
|
6
|
+
|
|
7
|
+
# Cancel superseded runs of the same branch / PR, except on main
|
|
8
|
+
concurrency:
|
|
9
|
+
group: lint-${{ github.event.pull_request.number || github.ref }}
|
|
10
|
+
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
lint:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/checkout@v7
|
|
17
|
+
- name: Install Python
|
|
18
|
+
uses: actions/setup-python@v7
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.x"
|
|
21
|
+
- name: Set up uv
|
|
22
|
+
uses: astral-sh/setup-uv@v10.2.0
|
|
23
|
+
- name: Install tox
|
|
24
|
+
run: |
|
|
25
|
+
uv tool install tox --with tox-uv
|
|
26
|
+
- name: Run ruff
|
|
27
|
+
run: uvx "ruff>=0.1.0" check --output-format=github .
|
|
28
|
+
- name: Run codespell
|
|
29
|
+
run: tox -e codespell
|
|
@@ -26,13 +26,11 @@ jobs:
|
|
|
26
26
|
uses: actions/setup-python@v7
|
|
27
27
|
with:
|
|
28
28
|
python-version: "3.x"
|
|
29
|
-
- name:
|
|
30
|
-
|
|
31
|
-
python -m pip install --upgrade pip
|
|
32
|
-
python -m pip install build
|
|
29
|
+
- name: Set up uv
|
|
30
|
+
uses: astral-sh/setup-uv@v10.2.0
|
|
33
31
|
- name: Build package
|
|
34
32
|
run:
|
|
35
|
-
|
|
33
|
+
uv build
|
|
36
34
|
- name: Publish package to PyPI
|
|
37
35
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
38
36
|
- name: Make release on GitHub
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# syntax=docker/dockerfile:1
|
|
2
|
+
|
|
3
|
+
FROM ubuntu:24.04
|
|
4
|
+
|
|
5
|
+
ENV DEBIAN_FRONTEND=noninteractive \
|
|
6
|
+
LANG=C.UTF-8 LC_ALL=C.UTF-8
|
|
7
|
+
|
|
8
|
+
LABEL org.opencontainers.image.source=https://github.com/juaml/junifer \
|
|
9
|
+
org.opencontainers.image.description="Junifer container image" \
|
|
10
|
+
org.opencontainers.image.licenses=AGPL-3.0-only \
|
|
11
|
+
BaseImage="ubuntu:24.04"
|
|
12
|
+
|
|
13
|
+
RUN apt-get update && \
|
|
14
|
+
apt-get install -y --no-install-recommends \
|
|
15
|
+
# Base tooling
|
|
16
|
+
ca-certificates curl git file make build-essential \
|
|
17
|
+
python3 python3-venv python3-dev python-is-python3 \
|
|
18
|
+
# Data
|
|
19
|
+
git-annex \
|
|
20
|
+
# ANTs runtime
|
|
21
|
+
bc \
|
|
22
|
+
# AFNI runtime (non-GUI subset of AFNI's Ubuntu 24 list)
|
|
23
|
+
tcsh gsl-bin libgsl27 libglu1-mesa libglw1-mesa libxm4 libjpeg62 \
|
|
24
|
+
libxmu6 libxpm4 libxi6 libxext6 libglib2.0-0t64 libgomp1 \
|
|
25
|
+
netpbm xvfb xfonts-base python3-numpy python3-matplotlib r-base \
|
|
26
|
+
# FSL runtime
|
|
27
|
+
dc libquadmath0 \
|
|
28
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
29
|
+
|
|
30
|
+
# --- Heavy, rarely-changing neuroimaging tools ---
|
|
31
|
+
|
|
32
|
+
# ANTs
|
|
33
|
+
COPY --from=antsx/ants:latest /opt/ants /opt/ants
|
|
34
|
+
ENV PATH="/opt/ants/bin:$PATH" \
|
|
35
|
+
LD_LIBRARY_PATH="/opt/ants/lib"
|
|
36
|
+
|
|
37
|
+
# AFNI — native Ubuntu 24.04 build
|
|
38
|
+
RUN mkdir -p /opt/afni \
|
|
39
|
+
&& curl -fsSL https://afni.nimh.nih.gov/pub/dist/tgz/linux_ubuntu_24_64.tgz \
|
|
40
|
+
| tar -xz -C /opt/afni --strip-components=1
|
|
41
|
+
ENV PATH="/opt/afni:$PATH"
|
|
42
|
+
|
|
43
|
+
# FSL
|
|
44
|
+
RUN curl -fsSL https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/fslinstaller.py -o /tmp/fslinstaller.py \
|
|
45
|
+
&& (python3 /tmp/fslinstaller.py -d /opt/fsl/ --skip_registration \
|
|
46
|
+
|| { cat /root/fsl_installation_*.log; exit 1; }) \
|
|
47
|
+
&& rm -rf /opt/fsl/pkgs /tmp/fslinstaller.py /root/fsl_installation_*.log \
|
|
48
|
+
&& find /opt/fsl -name '__pycache__' -prune -exec rm -rf {} +
|
|
49
|
+
ENV FSLDIR=/opt/fsl \
|
|
50
|
+
FSLOUTPUTTYPE=NIFTI_GZ \
|
|
51
|
+
PATH="/opt/fsl/share/fsl/bin:$PATH"
|
|
52
|
+
|
|
53
|
+
# --- Python environment (the system Python is externally managed) ---
|
|
54
|
+
RUN python3 -m venv /opt/junifer \
|
|
55
|
+
&& /opt/junifer/bin/pip install --no-cache-dir --upgrade pip setuptools wheel \
|
|
56
|
+
&& /opt/junifer/bin/pip install --no-cache-dir datalad
|
|
57
|
+
ENV PATH="/opt/junifer/bin:$PATH"
|
|
58
|
+
|
|
59
|
+
# --- junifer-data, version and commit taken from junifer itself ---
|
|
60
|
+
COPY junifer/data/utils.py /tmp/junifer_data_utils.py
|
|
61
|
+
RUN set -eux; \
|
|
62
|
+
version="v$(sed -n 's/^JUNIFER_DATA_VERSION = "\(.*\)"/\1/p' /tmp/junifer_data_utils.py)"; \
|
|
63
|
+
hexsha="$(sed -n 's/^JUNIFER_DATA_HEXSHA = "\(.*\)"/\1/p' /tmp/junifer_data_utils.py)"; \
|
|
64
|
+
test "$version" != "v" && test -n "$hexsha"; \
|
|
65
|
+
git config --global user.name "junifer"; \
|
|
66
|
+
git config --global user.email "junifer@localhost"; \
|
|
67
|
+
datalad clone https://cerebra.fz-juelich.de/junifer/junifer-data.git "$HOME/junifer_data/${version}"; \
|
|
68
|
+
cd "$HOME/junifer_data/${version}"; \
|
|
69
|
+
git checkout -q "${version}"; \
|
|
70
|
+
test "$(git rev-parse HEAD)" = "$hexsha"; \
|
|
71
|
+
datalad get -r -J 4 .; \
|
|
72
|
+
test -z "$(git status --porcelain)"; \
|
|
73
|
+
git log -1 --format='junifer-data %D @ %H'; \
|
|
74
|
+
echo "${version}" > "$HOME/junifer-data-version"; \
|
|
75
|
+
rm /tmp/junifer_data_utils.py
|
|
76
|
+
|
|
77
|
+
# --- junifer from the build context (changes most often → last) ---
|
|
78
|
+
# The build context must include .git so the version matches the release tag
|
|
79
|
+
COPY . /tmp/junifer
|
|
80
|
+
RUN python -m pip install --no-cache-dir "/tmp/junifer[all]" \
|
|
81
|
+
&& rm -rf /tmp/junifer \
|
|
82
|
+
&& junifer --version
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# syntax=docker/dockerfile:1
|
|
2
|
+
|
|
3
|
+
FROM ubuntu:24.04
|
|
4
|
+
|
|
5
|
+
ENV DEBIAN_FRONTEND=noninteractive \
|
|
6
|
+
LANG=C.UTF-8 LC_ALL=C.UTF-8
|
|
7
|
+
|
|
8
|
+
LABEL org.opencontainers.image.source=https://github.com/juaml/junifer \
|
|
9
|
+
org.opencontainers.image.description="Junifer CI container image" \
|
|
10
|
+
org.opencontainers.image.licenses=AGPL-3.0-only \
|
|
11
|
+
Author="Fede Raimondo" \
|
|
12
|
+
Email="f.raimondo@fz-juelich.de" \
|
|
13
|
+
GitHub="https://github.com/fraimondo" \
|
|
14
|
+
BaseImage="ubuntu:24.04"
|
|
15
|
+
|
|
16
|
+
RUN apt-get update && \
|
|
17
|
+
apt-get install -y --no-install-recommends \
|
|
18
|
+
# Base / runner tooling
|
|
19
|
+
ca-certificates curl wget git jq sudo unzip vim file make gnupg \
|
|
20
|
+
xz-utils bzip2 zstd \
|
|
21
|
+
python3 python3-venv python-is-python3 \
|
|
22
|
+
# Data
|
|
23
|
+
git-annex \
|
|
24
|
+
# ANTs runtime
|
|
25
|
+
bc \
|
|
26
|
+
# AFNI runtime (non-GUI subset of AFNI's Ubuntu 24 list)
|
|
27
|
+
tcsh gsl-bin libgsl27 libglu1-mesa libglw1-mesa libxm4 libjpeg62 \
|
|
28
|
+
libxmu6 libxpm4 libxi6 libxext6 libglib2.0-0t64 libgomp1 \
|
|
29
|
+
netpbm xvfb xfonts-base python3-numpy python3-matplotlib r-base \
|
|
30
|
+
# FSL runtime
|
|
31
|
+
dc libquadmath0 \
|
|
32
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
33
|
+
|
|
34
|
+
# DataLad (not packaged for Ubuntu 24.04) in its own venv
|
|
35
|
+
RUN python3 -m venv /opt/datalad \
|
|
36
|
+
&& /opt/datalad/bin/pip install --no-cache-dir datalad \
|
|
37
|
+
&& ln -s /opt/datalad/bin/datalad /usr/local/bin/datalad \
|
|
38
|
+
&& datalad --version
|
|
39
|
+
|
|
40
|
+
# Ubuntu 24.04 ships a default 'ubuntu' user (uid 1000); give that uid to our user
|
|
41
|
+
RUN userdel -r ubuntu 2>/dev/null || true; \
|
|
42
|
+
useradd -m -u 1000 -s /bin/bash docker
|
|
43
|
+
|
|
44
|
+
# --- Heavy, rarely-changing neuroimaging tools ---
|
|
45
|
+
|
|
46
|
+
# ANTs
|
|
47
|
+
COPY --from=antsx/ants:latest /opt/ants /opt/ants
|
|
48
|
+
ENV PATH="/opt/ants/bin:$PATH" \
|
|
49
|
+
LD_LIBRARY_PATH="/opt/ants/lib"
|
|
50
|
+
|
|
51
|
+
# AFNI — native Ubuntu 24.04 build
|
|
52
|
+
RUN mkdir -p /opt/afni \
|
|
53
|
+
&& curl -fsSL https://afni.nimh.nih.gov/pub/dist/tgz/linux_ubuntu_24_64.tgz \
|
|
54
|
+
| tar -xz -C /opt/afni --strip-components=1
|
|
55
|
+
ENV PATH="/opt/afni:$PATH"
|
|
56
|
+
|
|
57
|
+
# FSL
|
|
58
|
+
RUN curl -fsSL https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/fslinstaller.py -o /tmp/fslinstaller.py \
|
|
59
|
+
&& (python3 /tmp/fslinstaller.py -d /opt/fsl/ --skip_registration \
|
|
60
|
+
|| { cat /root/fsl_installation_*.log; exit 1; }) \
|
|
61
|
+
&& rm -rf /opt/fsl/pkgs /tmp/fslinstaller.py /root/fsl_installation_*.log \
|
|
62
|
+
&& find /opt/fsl -name '__pycache__' -prune -exec rm -rf {} +
|
|
63
|
+
ENV FSLDIR=/opt/fsl \
|
|
64
|
+
FSLOUTPUTTYPE=NIFTI_GZ \
|
|
65
|
+
PATH="/opt/fsl/share/fsl/bin:$PATH"
|
|
66
|
+
|
|
67
|
+
# --- Hosted tool cache, pre-populated (no downloads at job time) ---
|
|
68
|
+
ARG PYTHON_VERSIONS="3.10 3.11 3.12 3.13 3.14"
|
|
69
|
+
ARG UBUNTU_TAG=24.04
|
|
70
|
+
ENV AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
|
|
71
|
+
RUN set -eux; \
|
|
72
|
+
mkdir -p "$AGENT_TOOLSDIRECTORY"; \
|
|
73
|
+
curl -fsSL https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json -o /tmp/manifest.json; \
|
|
74
|
+
filter='[ .[] | select(.stable and (.version | startswith($v + "."))) | .files[] | select(.platform=="linux" and .platform_version==$os and .arch=="x64") ][0].download_url'; \
|
|
75
|
+
for v in $PYTHON_VERSIONS; do \
|
|
76
|
+
url=$(jq -r --arg v "$v" --arg os "$UBUNTU_TAG" "$filter" /tmp/manifest.json); \
|
|
77
|
+
[ "$url" != "null" ] || { echo "No $v build for Ubuntu $UBUNTU_TAG"; exit 1; }; \
|
|
78
|
+
tmp=$(mktemp -d); \
|
|
79
|
+
curl -fsSL "$url" | tar -xz -C "$tmp"; \
|
|
80
|
+
(cd "$tmp" && bash ./setup.sh); \
|
|
81
|
+
rm -rf "$tmp"; \
|
|
82
|
+
done; \
|
|
83
|
+
rm /tmp/manifest.json; \
|
|
84
|
+
find "$AGENT_TOOLSDIRECTORY" -name '__pycache__' -prune -exec rm -rf {} +; \
|
|
85
|
+
chown -R docker:docker "$AGENT_TOOLSDIRECTORY"; \
|
|
86
|
+
ls "$AGENT_TOOLSDIRECTORY/Python"
|
|
87
|
+
|
|
88
|
+
# --- GitHub Actions runner ---
|
|
89
|
+
ARG RUNNER_VERSION
|
|
90
|
+
LABEL RunnerVersion=${RUNNER_VERSION}
|
|
91
|
+
RUN mkdir -p /home/docker/actions-runner && cd /home/docker/actions-runner \
|
|
92
|
+
&& curl -fsSL -o runner.tar.gz \
|
|
93
|
+
https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz \
|
|
94
|
+
&& tar xzf runner.tar.gz && rm runner.tar.gz \
|
|
95
|
+
&& ./bin/installdependencies.sh \
|
|
96
|
+
&& rm -rf /var/lib/apt/lists/* \
|
|
97
|
+
&& chown -R docker:docker /home/docker
|
|
98
|
+
|
|
99
|
+
COPY --chmod=755 scripts/start.sh /start.sh
|
|
100
|
+
|
|
101
|
+
USER docker
|
|
102
|
+
WORKDIR /home/docker
|
|
103
|
+
|
|
104
|
+
# --- Test data (changes most often → last), cloned as the runner user ---
|
|
105
|
+
ARG DATA_VERSION
|
|
106
|
+
RUN set -eux; \
|
|
107
|
+
git config --global user.name "junifer-ci"; \
|
|
108
|
+
git config --global user.email "junifer-ci@localhost"; \
|
|
109
|
+
datalad clone https://cerebra.fz-juelich.de/junifer/junifer-data.git "$HOME/junifer_data/${DATA_VERSION}"; \
|
|
110
|
+
cd "$HOME/junifer_data/${DATA_VERSION}"; \
|
|
111
|
+
git checkout -q "${DATA_VERSION}"; \
|
|
112
|
+
datalad get -r -J 4 .; \
|
|
113
|
+
test -z "$(git status --porcelain)"; \
|
|
114
|
+
git log -1 --format='junifer-data %D @ %H'; \
|
|
115
|
+
echo "${DATA_VERSION}" > "$HOME/junifer-data-version"
|
|
116
|
+
|
|
117
|
+
# --- nilearn datasets used by junifer.testing (no downloads at test time) ---
|
|
118
|
+
ARG NILEARN_VERSION=0.10.4
|
|
119
|
+
RUN <<'EOF'
|
|
120
|
+
set -eux
|
|
121
|
+
python3 -m venv /tmp/nilearn-venv
|
|
122
|
+
/tmp/nilearn-venv/bin/pip install --no-cache-dir -q "nilearn==${NILEARN_VERSION}" "numpy<2.4"
|
|
123
|
+
/tmp/nilearn-venv/bin/python - <<'PY'
|
|
124
|
+
from nilearn import datasets
|
|
125
|
+
datasets.fetch_oasis_vbm(n_subjects=10)
|
|
126
|
+
datasets.fetch_development_fmri(n_subjects=10, reduce_confounds=True, age_group="both")
|
|
127
|
+
datasets.fetch_spm_auditory()
|
|
128
|
+
datasets.fetch_adhd(n_subjects=10)
|
|
129
|
+
PY
|
|
130
|
+
rm -rf /tmp/nilearn-venv
|
|
131
|
+
du -sh "$HOME/nilearn_data"
|
|
132
|
+
EOF
|
|
133
|
+
|
|
134
|
+
ENTRYPOINT ["/start.sh"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: junifer
|
|
3
|
-
Version: 0.0.8.
|
|
3
|
+
Version: 0.0.8.dev253
|
|
4
4
|
Summary: JUelich NeuroImaging FEature extractoR
|
|
5
5
|
Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
|
|
6
6
|
Maintainer-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
|
|
@@ -42,9 +42,9 @@ Requires-Dist: tqdm<4.68.0,>=4.66.1
|
|
|
42
42
|
Requires-Dist: templateflow<25.0.0,>=23.0.0
|
|
43
43
|
Requires-Dist: lapy<2.0.0,>=1.0.0
|
|
44
44
|
Requires-Dist: lazy_loader==0.4
|
|
45
|
-
Requires-Dist: importlib_metadata; python_version < "3.
|
|
45
|
+
Requires-Dist: importlib_metadata; python_version < "3.11"
|
|
46
46
|
Requires-Dist: looseversion==1.3.0; python_version >= "3.12"
|
|
47
|
-
Requires-Dist:
|
|
47
|
+
Requires-Dist: junifer-data>=1.4.0
|
|
48
48
|
Requires-Dist: structlog<26.0.0,>=25.0.0
|
|
49
49
|
Requires-Dist: pydantic>=2.11.4
|
|
50
50
|
Requires-Dist: aenum<3.2.0,>=3.1.0
|
|
@@ -63,20 +63,24 @@ Requires-Dist: tox; extra == "dev"
|
|
|
63
63
|
Requires-Dist: pre-commit; extra == "dev"
|
|
64
64
|
Requires-Dist: ruff; extra == "dev"
|
|
65
65
|
Requires-Dist: towncrier; extra == "dev"
|
|
66
|
+
Provides-Extra: sphinx
|
|
67
|
+
Requires-Dist: seaborn<0.14.0,>=0.13.0; extra == "sphinx"
|
|
68
|
+
Requires-Dist: sphinx<8.4.0,>=7.3.0; extra == "sphinx"
|
|
69
|
+
Requires-Dist: sphinx-gallery<0.20.0,>=0.17.0; extra == "sphinx"
|
|
70
|
+
Requires-Dist: furo<2025.10.0,>=2024.4.27; extra == "sphinx"
|
|
71
|
+
Requires-Dist: numpydoc<=1.9.0,>=1.6.0; extra == "sphinx"
|
|
72
|
+
Requires-Dist: julearn==0.3.5; extra == "sphinx"
|
|
73
|
+
Requires-Dist: sphinx-copybutton<0.5.3,>=0.5.1; extra == "sphinx"
|
|
74
|
+
Requires-Dist: towncrier<=25.8.0,>=24.7.0; extra == "sphinx"
|
|
75
|
+
Requires-Dist: sphinxcontrib-mermaid<=1.0.0,>=0.8.1; extra == "sphinx"
|
|
76
|
+
Requires-Dist: sphinxcontrib-towncrier==0.5.0a0; extra == "sphinx"
|
|
77
|
+
Requires-Dist: setuptools-scm>=8; extra == "sphinx"
|
|
78
|
+
Requires-Dist: autodoc_pydantic>=2.0.0; extra == "sphinx"
|
|
79
|
+
Requires-Dist: enum-tools[sphinx]<0.14.0,>=0.13.0; extra == "sphinx"
|
|
80
|
+
Requires-Dist: sphinx-polyversion>=2.0.0; extra == "sphinx"
|
|
81
|
+
Requires-Dist: beautifulsoup4>=4.12.0; extra == "sphinx"
|
|
66
82
|
Provides-Extra: docs
|
|
67
|
-
Requires-Dist:
|
|
68
|
-
Requires-Dist: sphinx<8.4.0,>=7.3.0; extra == "docs"
|
|
69
|
-
Requires-Dist: sphinx-gallery<0.20.0,>=0.17.0; extra == "docs"
|
|
70
|
-
Requires-Dist: furo<2025.10.0,>=2024.4.27; extra == "docs"
|
|
71
|
-
Requires-Dist: numpydoc<=1.9.0,>=1.6.0; extra == "docs"
|
|
72
|
-
Requires-Dist: julearn==0.3.3; extra == "docs"
|
|
73
|
-
Requires-Dist: sphinx-copybutton<0.5.3,>=0.5.1; extra == "docs"
|
|
74
|
-
Requires-Dist: towncrier<=25.8.0,>=24.7.0; extra == "docs"
|
|
75
|
-
Requires-Dist: sphinxcontrib-mermaid<=1.0.0,>=0.8.1; extra == "docs"
|
|
76
|
-
Requires-Dist: sphinxcontrib-towncrier==0.5.0a0; extra == "docs"
|
|
77
|
-
Requires-Dist: setuptools-scm>=8; extra == "docs"
|
|
78
|
-
Requires-Dist: autodoc_pydantic>=2.0.0; extra == "docs"
|
|
79
|
-
Requires-Dist: enum-tools[sphinx]<0.14.0,>=0.13.0; extra == "docs"
|
|
83
|
+
Requires-Dist: junifer[all,sphinx]; extra == "docs"
|
|
80
84
|
Dynamic: license-file
|
|
81
85
|
|
|
82
86
|

|