junifer 0.0.8.dev295__tar.gz → 0.0.8.dev303__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.dev295/junifer.egg-info → junifer-0.0.8.dev303}/PKG-INFO +1 -1
- junifer-0.0.8.dev303/docs/changes/newsfragments/509.enh +1 -0
- junifer-0.0.8.dev303/docs/changes/newsfragments/523.misc +1 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/storage.rst +8 -1
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/running.rst +2 -2
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/_version.py +3 -3
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/functions.py +54 -13
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/tests/test_functions.py +188 -16
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/cli.py +27 -5
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/tests/data/gmd_mean.yaml +2 -2
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +2 -2
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/tests/test_cli.py +74 -2
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/base.py +2 -2
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_hurst_exponent.py +2 -2
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +3 -3
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_perm_entropy.py +2 -2
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_range_entropy.py +2 -2
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_range_entropy_auc.py +2 -4
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_sample_entropy.py +2 -2
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +3 -3
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/tests/test_falff_parcels.py +2 -4
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/tests/test_falff_spheres.py +2 -4
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +3 -4
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +3 -3
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +3 -3
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +3 -3
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +3 -3
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_reho_parcels.py +2 -4
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_reho_spheres.py +2 -4
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_ets_rss.py +2 -2
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_maps_aggregation.py +1 -1
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_parcel_aggregation.py +5 -7
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_sphere_aggregation.py +5 -7
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/read_transform.py +1 -1
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_marker_collection.py +8 -5
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_pipeline_component_registry.py +13 -8
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_workdir_manager.py +15 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/workdir_manager.py +8 -8
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303/junifer.egg-info}/PKG-INFO +1 -1
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/SOURCES.txt +2 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/scm_file_list.json +2 -0
- junifer-0.0.8.dev303/junifer.egg-info/scm_version.json +8 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/pyproject.toml +1 -0
- junifer-0.0.8.dev295/junifer.egg-info/scm_version.json +0 -8
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.dockerignore +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/pull_request_template.md +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/check-stale.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/docker-publish.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/publish.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.gitignore +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.gitmodules +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.python-version +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/AUTHORS.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/Dockerfile +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/Dockerfile-ci +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/LICENSE.md +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/README.md +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/codecov.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/conda-env.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/Makefile +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/_static/css/version_selector.css +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/_templates/versions.html +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/api.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/cli.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/configs.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/data.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/index.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/markers.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/stats.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/storage.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/testing.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/utils.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/builtin.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/239.enh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/364.doc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/364.enh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/364.feature +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/474.misc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/482.bugfix +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/492.bugfix +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/499.enh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/502.bugfix +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/503.enh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/510.bugfix +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.bugfix +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.bugfix.1 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.change +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.enh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.enh.1 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.feature +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.misc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.misc.1 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/513.doc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/513.misc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/514.bugfix +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/514.bugfix.1 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/514.enh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.doc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.enh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.enh.1 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.misc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.misc.1 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.bugfix +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.bugfix.1 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.bugfix.2 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.change +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.change.1 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.misc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.1 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.2 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.3 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.4 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.5 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.6 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.change +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.doc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc.1 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc.2 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc.3 +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.removal +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/521.bugfix +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/522.bugfix +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/522.enh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/conf.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/contribution.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/confounds_format.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/data_dump_asset.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/data_registries.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/data_types.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/extension.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/index.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/logging.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/maps.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/marker.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/masks.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/plugins.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/faq.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/help.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/index.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/installation.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/links.inc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/maintaining.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/poly.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/poly_files/patches/version_banner.html +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/poly_files/patches/versions.html +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/poly_files/templates/index.html +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/starting.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/data.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/index.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/codeless.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/configuring.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/dumping.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/index.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/masks.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/queueing.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/whats_new.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/README.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/ignore_words.txt +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/decorators.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/tests/test_decorators.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/parser.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/conftest.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/_dispatch.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/_coordinates.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/tests/test_coordinates_names.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/_ants_maps_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/_fsl_maps_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/tests/test_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/_ants_mask_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/_fsl_mask_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/_masks.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/_parcellations.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/tests/test_dispatch.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/_types.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/datalad_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datareader/default.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.codecov.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.codespellignore +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/build.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/code-style.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/doc.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/publish.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/pytest.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.gitignore +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/LICENSE +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/README.md +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/help_text.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/parser.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/commands/sys_info.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/Makefile +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/api/index.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/conf.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/index.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/links.inc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/make.bat +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/references.bib +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/pyproject.toml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/setup.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.coveragerc +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.gitattributes +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.gitignore +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.travis.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.vscode/launch.json +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.vscode/settings.json +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/LICENSE.txt +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/MANIFEST.in +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/Makefile +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/README.rst +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/azure-pipelines.yml +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/test_chunked_array.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/test_chunked_list.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/test_io.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/setup.cfg +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/setup.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/versioneer.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/tests/test_falff_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/maps_aggregation.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_junifer_reho.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_reho_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_lost_regions.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/_temporal_filter.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/_temporal_slicer.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/stats.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/registry.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_adhdtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_testing_utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_uclacnpvbmtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/utils.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/typing/_typing.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/typing/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/__init__.pyi +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/_config.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/fs.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/logging.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/py.typed +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/justfile +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/scripts/start.sh +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/setup.cfg +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/setup.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tox.ini +0 -0
- {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: junifer
|
|
3
|
-
Version: 0.0.8.
|
|
3
|
+
Version: 0.0.8.dev303
|
|
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>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Set up the working directory first in all the commands of the CLI (from ``workdir`` in the YAML) and in :func:`.run`, :func:`.collect`, :func:`.queue`, :func:`.reset` and :func:`.list_elements`, adding the ``workdir`` parameter to :func:`.collect` and :func:`.list_elements`, and create the working directory if it does not exist by `Synchon Mandal`_ and `Fede Raimondo`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Use :class:`.HDF5FeatureStorage` instead of :class:`.SQLiteFeatureStorage` in the tests and documentation, as the latter is only kept for compatibility, and fix the component registry test leaving components de-registered by `Fede Raimondo`_
|
|
@@ -21,7 +21,7 @@ The :ref:`Markers <marker>` are responsible for mapping the input
|
|
|
21
21
|
:ref:`data type <data_types>` to its output :ref:`storage type <storage_types>`
|
|
22
22
|
as shown :ref:`here <extending_markers_input_output>`.
|
|
23
23
|
The storage object in turn declares and provides implementation for
|
|
24
|
-
specific *storage type*. For example, :class:`.
|
|
24
|
+
specific *storage type*. For example, :class:`.HDF5FeatureStorage` supports
|
|
25
25
|
saving ``matrix``, ``vector`` and ``timeseries`` via ``store_matrix``,
|
|
26
26
|
``store_vector`` and ``store_timeseries`` methods respectively.
|
|
27
27
|
|
|
@@ -88,3 +88,10 @@ Storage Interfaces
|
|
|
88
88
|
- ``.hdf5``
|
|
89
89
|
- HDF5
|
|
90
90
|
- ``matrix``, ``vector``, ``timeseries``, ``timeseries_2d``, ``scalar_table``
|
|
91
|
+
|
|
92
|
+
.. note::
|
|
93
|
+
|
|
94
|
+
:class:`.HDF5FeatureStorage` is the recommended storage.
|
|
95
|
+
:class:`.SQLiteFeatureStorage` is only kept for compatibility with features
|
|
96
|
+
stored in previous versions of ``junifer`` and should not be used for new
|
|
97
|
+
analyses.
|
|
@@ -130,8 +130,8 @@ First we load the storage like so:
|
|
|
130
130
|
|
|
131
131
|
from junifer.storage import HDF5FeatureStorage
|
|
132
132
|
|
|
133
|
-
#
|
|
134
|
-
#
|
|
133
|
+
# If the features were stored with the legacy SQLiteFeatureStorage,
|
|
134
|
+
# import and use that class instead
|
|
135
135
|
storage = HDF5FeatureStorage("<path/to/your/collected/file>")
|
|
136
136
|
|
|
137
137
|
The best way to start analysing would be to list all the extracted features
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.0.8.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 0, 8, '
|
|
21
|
+
__version__ = version = '0.0.8.dev303'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 0, 8, 'dev303')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g4a74bdf26'
|
|
@@ -136,6 +136,45 @@ def _get_storage(storage_config: dict) -> StorageLike:
|
|
|
136
136
|
)
|
|
137
137
|
|
|
138
138
|
|
|
139
|
+
def _get_workdir_params(workdir: str | Path | dict | None) -> dict:
|
|
140
|
+
"""Get the parameters of the working directory manager.
|
|
141
|
+
|
|
142
|
+
Parameters
|
|
143
|
+
----------
|
|
144
|
+
workdir : str or pathlib.Path or dict or None
|
|
145
|
+
The working directory as a path, or as a dictionary with the keys
|
|
146
|
+
``path`` and ``cleanup`` (default True). If None, the default of
|
|
147
|
+
:class:`.WorkDirManager` is used.
|
|
148
|
+
|
|
149
|
+
Returns
|
|
150
|
+
-------
|
|
151
|
+
dict
|
|
152
|
+
The parameters for :class:`.WorkDirManager`.
|
|
153
|
+
|
|
154
|
+
"""
|
|
155
|
+
if isinstance(workdir, dict):
|
|
156
|
+
return {
|
|
157
|
+
"workdir": Path(workdir["path"]),
|
|
158
|
+
"cleanup": workdir.get("cleanup", True),
|
|
159
|
+
}
|
|
160
|
+
if workdir is None:
|
|
161
|
+
return {"workdir": None, "cleanup": True}
|
|
162
|
+
return {"workdir": Path(workdir), "cleanup": True}
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
def _setup_workdir(workdir: str | Path | dict | None) -> None:
|
|
166
|
+
"""Set up the working directory manager.
|
|
167
|
+
|
|
168
|
+
Parameters
|
|
169
|
+
----------
|
|
170
|
+
workdir : str or pathlib.Path or dict or None
|
|
171
|
+
The working directory (see :func:`_get_workdir_params`).
|
|
172
|
+
|
|
173
|
+
"""
|
|
174
|
+
WorkDirManager(**_get_workdir_params(workdir))
|
|
175
|
+
atexit.register(WorkDirManager()._cleanup)
|
|
176
|
+
|
|
177
|
+
|
|
139
178
|
def run(
|
|
140
179
|
workdir: str | Path | dict,
|
|
141
180
|
datagrabber: dict,
|
|
@@ -180,25 +219,15 @@ def run(
|
|
|
180
219
|
If invalid element selectors are found.
|
|
181
220
|
|
|
182
221
|
"""
|
|
183
|
-
# Conditional to handle workdir config
|
|
184
|
-
if isinstance(workdir, str | Path):
|
|
185
|
-
if isinstance(workdir, str):
|
|
186
|
-
workdir = {"workdir": Path(workdir), "cleanup": True}
|
|
187
|
-
else:
|
|
188
|
-
workdir = {"workdir": workdir, "cleanup": True}
|
|
189
|
-
elif isinstance(workdir, dict):
|
|
190
|
-
workdir["workdir"] = workdir.pop("path")
|
|
191
|
-
|
|
192
222
|
# Initiate working directory manager with correct variation
|
|
193
|
-
if not workdir["cleanup"]:
|
|
223
|
+
if not _get_workdir_params(workdir)["cleanup"]:
|
|
194
224
|
if elements is None or len(elements) > 1:
|
|
195
225
|
raise_error(
|
|
196
226
|
"Cannot disable `workdir.cleanup` as "
|
|
197
227
|
f"{len(elements) if elements is not None else 'all'} "
|
|
198
228
|
"elements will be processed"
|
|
199
229
|
)
|
|
200
|
-
|
|
201
|
-
atexit.register(WorkDirManager()._cleanup)
|
|
230
|
+
_setup_workdir(workdir)
|
|
202
231
|
|
|
203
232
|
# Get datagrabber to use
|
|
204
233
|
datagrabber_object = _get_datagrabber(datagrabber.copy())
|
|
@@ -253,7 +282,7 @@ def run(
|
|
|
253
282
|
mc.fit(datagrabber_object[t_element])
|
|
254
283
|
|
|
255
284
|
|
|
256
|
-
def collect(storage: dict) -> None:
|
|
285
|
+
def collect(storage: dict, workdir: str | Path | dict | None = None) -> None:
|
|
257
286
|
"""Collect and store data.
|
|
258
287
|
|
|
259
288
|
Parameters
|
|
@@ -262,8 +291,12 @@ def collect(storage: dict) -> None:
|
|
|
262
291
|
Storage to use. Must have a key ``kind`` with the kind of
|
|
263
292
|
storage to use. All other keys are passed to the storage
|
|
264
293
|
constructor.
|
|
294
|
+
workdir : str or pathlib.Path or dict or None, optional
|
|
295
|
+
The working directory, as in :func:`.run`. If None, the default of
|
|
296
|
+
:class:`.WorkDirManager` is used (default None).
|
|
265
297
|
|
|
266
298
|
"""
|
|
299
|
+
_setup_workdir(workdir)
|
|
267
300
|
logger.info(f"Collecting data using {storage['kind']}")
|
|
268
301
|
logger.debug(f"\tStorage params: {storage}")
|
|
269
302
|
if "single_output" not in storage:
|
|
@@ -307,6 +340,7 @@ def queue(
|
|
|
307
340
|
if the ``jobdir`` exists and ``overwrite = False``.
|
|
308
341
|
|
|
309
342
|
"""
|
|
343
|
+
_setup_workdir(config.get("workdir"))
|
|
310
344
|
valid_kind = ["HTCondor", "GNUParallelLocal"]
|
|
311
345
|
if kind not in valid_kind:
|
|
312
346
|
raise_error(
|
|
@@ -410,6 +444,7 @@ def reset(config: dict) -> None:
|
|
|
410
444
|
The configuration to be used for resetting.
|
|
411
445
|
|
|
412
446
|
"""
|
|
447
|
+
_setup_workdir(config.get("workdir"))
|
|
413
448
|
# Fetch storage
|
|
414
449
|
storage = config["storage"]
|
|
415
450
|
storage_uri = Path(storage["uri"])
|
|
@@ -442,6 +477,7 @@ def reset(config: dict) -> None:
|
|
|
442
477
|
def list_elements(
|
|
443
478
|
datagrabber: dict,
|
|
444
479
|
elements: Elements | None = None,
|
|
480
|
+
workdir: str | Path | dict | None = None,
|
|
445
481
|
) -> str:
|
|
446
482
|
"""List elements of the datagrabber filtered using `elements`.
|
|
447
483
|
|
|
@@ -454,8 +490,13 @@ def list_elements(
|
|
|
454
490
|
elements : list or None, optional
|
|
455
491
|
Element(s) to filter using. Will be used to index the DataGrabber
|
|
456
492
|
(default None).
|
|
493
|
+
workdir : str or pathlib.Path or dict or None, optional
|
|
494
|
+
Directory where the DataGrabber will be used, as in :func:`.run`.
|
|
495
|
+
If None, the default of :class:`.WorkDirManager` is used
|
|
496
|
+
(default None).
|
|
457
497
|
|
|
458
498
|
"""
|
|
499
|
+
_setup_workdir(workdir)
|
|
459
500
|
# Get datagrabber to use
|
|
460
501
|
datagrabber_object = _get_datagrabber(datagrabber)
|
|
461
502
|
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import logging
|
|
9
9
|
import sys
|
|
10
|
+
import tempfile
|
|
10
11
|
from contextlib import AbstractContextManager, nullcontext
|
|
11
12
|
from pathlib import Path
|
|
12
13
|
from typing import Any
|
|
@@ -18,7 +19,7 @@ from ruamel.yaml import YAML
|
|
|
18
19
|
import junifer.testing.registry # noqa: F401
|
|
19
20
|
from junifer.api import collect, list_elements, parse_yaml, queue, reset, run
|
|
20
21
|
from junifer.datagrabber.base import BaseDataGrabber
|
|
21
|
-
from junifer.pipeline import PipelineComponentRegistry
|
|
22
|
+
from junifer.pipeline import PipelineComponentRegistry, WorkDirManager
|
|
22
23
|
from junifer.typing import Elements
|
|
23
24
|
|
|
24
25
|
|
|
@@ -92,7 +93,7 @@ def markers() -> list[dict[str, list[str] | str]]:
|
|
|
92
93
|
def storage() -> dict[str, str]:
|
|
93
94
|
"""Return a storage as a dictionary."""
|
|
94
95
|
return {
|
|
95
|
-
"kind": "
|
|
96
|
+
"kind": "HDF5FeatureStorage",
|
|
96
97
|
}
|
|
97
98
|
|
|
98
99
|
|
|
@@ -158,7 +159,7 @@ def test_run_single_element(
|
|
|
158
159
|
|
|
159
160
|
"""
|
|
160
161
|
# Set storage
|
|
161
|
-
storage["uri"] = str((tmp_path / "out.
|
|
162
|
+
storage["uri"] = str((tmp_path / "out.hdf5").resolve())
|
|
162
163
|
# Run operations
|
|
163
164
|
with expect:
|
|
164
165
|
run(
|
|
@@ -169,7 +170,7 @@ def test_run_single_element(
|
|
|
169
170
|
elements=element,
|
|
170
171
|
)
|
|
171
172
|
# Check files
|
|
172
|
-
files = list(tmp_path.glob("*.
|
|
173
|
+
files = list(tmp_path.glob("*.hdf5"))
|
|
173
174
|
assert len(files) == 1
|
|
174
175
|
|
|
175
176
|
|
|
@@ -191,7 +192,7 @@ def test_run_single_element_with_preprocessing(
|
|
|
191
192
|
|
|
192
193
|
"""
|
|
193
194
|
# Set storage
|
|
194
|
-
storage["uri"] = str((tmp_path / "out.
|
|
195
|
+
storage["uri"] = str((tmp_path / "out.hdf5").resolve())
|
|
195
196
|
# Run operations
|
|
196
197
|
run(
|
|
197
198
|
workdir={"path": tmp_path, "cleanup": False},
|
|
@@ -209,7 +210,7 @@ def test_run_single_element_with_preprocessing(
|
|
|
209
210
|
elements=["sub-01"],
|
|
210
211
|
)
|
|
211
212
|
# Check files
|
|
212
|
-
files = list(tmp_path.glob("*.
|
|
213
|
+
files = list(tmp_path.glob("*.hdf5"))
|
|
213
214
|
assert len(files) == 1
|
|
214
215
|
|
|
215
216
|
|
|
@@ -250,7 +251,7 @@ def test_run_multi_element_multi_output(
|
|
|
250
251
|
|
|
251
252
|
"""
|
|
252
253
|
# Set storage
|
|
253
|
-
storage["uri"] = str((tmp_path / "out.
|
|
254
|
+
storage["uri"] = str((tmp_path / "out.hdf5").resolve())
|
|
254
255
|
storage["single_output"] = False # type: ignore
|
|
255
256
|
# Run operations
|
|
256
257
|
with expect:
|
|
@@ -262,7 +263,7 @@ def test_run_multi_element_multi_output(
|
|
|
262
263
|
elements=element,
|
|
263
264
|
)
|
|
264
265
|
# Check files
|
|
265
|
-
files = list(tmp_path.glob("*.
|
|
266
|
+
files = list(tmp_path.glob("*.hdf5"))
|
|
266
267
|
assert len(files) == 2
|
|
267
268
|
|
|
268
269
|
|
|
@@ -287,7 +288,7 @@ def test_run_multi_element_single_output(
|
|
|
287
288
|
|
|
288
289
|
"""
|
|
289
290
|
# Set storage
|
|
290
|
-
storage["uri"] = str((tmp_path / "out.
|
|
291
|
+
storage["uri"] = str((tmp_path / "out.hdf5").resolve())
|
|
291
292
|
storage["single_output"] = True # type: ignore
|
|
292
293
|
# Run operations
|
|
293
294
|
run(
|
|
@@ -298,9 +299,9 @@ def test_run_multi_element_single_output(
|
|
|
298
299
|
elements=["sub-01", "sub-03"],
|
|
299
300
|
)
|
|
300
301
|
# Check files
|
|
301
|
-
files = list(tmp_path.glob("*.
|
|
302
|
+
files = list(tmp_path.glob("*.hdf5"))
|
|
302
303
|
assert len(files) == 1
|
|
303
|
-
assert files[0].name == "out.
|
|
304
|
+
assert files[0].name == "out.hdf5"
|
|
304
305
|
|
|
305
306
|
|
|
306
307
|
def test_run_and_collect(
|
|
@@ -324,7 +325,7 @@ def test_run_and_collect(
|
|
|
324
325
|
|
|
325
326
|
"""
|
|
326
327
|
# Set storage
|
|
327
|
-
uri = tmp_path / "out.
|
|
328
|
+
uri = tmp_path / "out.hdf5"
|
|
328
329
|
storage["uri"] = str(uri.resolve())
|
|
329
330
|
storage["single_output"] = False # type: ignore
|
|
330
331
|
# Run operations
|
|
@@ -343,9 +344,9 @@ def test_run_and_collect(
|
|
|
343
344
|
)
|
|
344
345
|
elements = dg.get_elements() # type: ignore
|
|
345
346
|
# This should create one file per element
|
|
346
|
-
files = list(tmp_path.glob("*.
|
|
347
|
+
files = list(tmp_path.glob("*.hdf5"))
|
|
347
348
|
assert len(files) == len(elements)
|
|
348
|
-
# But the test.
|
|
349
|
+
# But the test.hdf5 file should not exist
|
|
349
350
|
assert not uri.exists()
|
|
350
351
|
# Collect in storage
|
|
351
352
|
collect(storage)
|
|
@@ -639,6 +640,143 @@ def test_queue_without_elements(
|
|
|
639
640
|
assert "Queue done" in caplog.text
|
|
640
641
|
|
|
641
642
|
|
|
643
|
+
def _workdir(tmp_path: Path, as_dict: bool) -> tuple[str | dict, Path]:
|
|
644
|
+
"""Get a working directory in the test directory.
|
|
645
|
+
|
|
646
|
+
Parameters
|
|
647
|
+
----------
|
|
648
|
+
tmp_path : pathlib.Path
|
|
649
|
+
The path to the test directory.
|
|
650
|
+
as_dict : bool
|
|
651
|
+
Whether to give the working directory as a dictionary or a path.
|
|
652
|
+
|
|
653
|
+
Returns
|
|
654
|
+
-------
|
|
655
|
+
str or dict
|
|
656
|
+
The working directory, as given to the functions.
|
|
657
|
+
pathlib.Path
|
|
658
|
+
The path to the working directory.
|
|
659
|
+
|
|
660
|
+
"""
|
|
661
|
+
path = tmp_path / "workdir"
|
|
662
|
+
workdir = {"path": str(path), "cleanup": True} if as_dict else str(path)
|
|
663
|
+
return workdir, path
|
|
664
|
+
|
|
665
|
+
|
|
666
|
+
@pytest.mark.parametrize("as_dict", [False, True])
|
|
667
|
+
@pytest.mark.parametrize("elements", [None, ["sub-01"]])
|
|
668
|
+
def test_queue_workdir(
|
|
669
|
+
tmp_path: Path,
|
|
670
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
671
|
+
datagrabber: dict[str, str],
|
|
672
|
+
elements: list[str] | None,
|
|
673
|
+
as_dict: bool,
|
|
674
|
+
) -> None:
|
|
675
|
+
"""Test queue sets up the working directory.
|
|
676
|
+
|
|
677
|
+
Parameters
|
|
678
|
+
----------
|
|
679
|
+
tmp_path : pathlib.Path
|
|
680
|
+
The path to the test directory.
|
|
681
|
+
monkeypatch : pytest.MonkeyPatch
|
|
682
|
+
The pytest.MonkeyPatch object.
|
|
683
|
+
datagrabber : dict
|
|
684
|
+
Testing datagrabber as dictionary.
|
|
685
|
+
elements : list of str or None
|
|
686
|
+
The parametrized elements to queue. If None, the elements are
|
|
687
|
+
listed using the datagrabber.
|
|
688
|
+
as_dict : bool
|
|
689
|
+
Whether to give the working directory as a dictionary or a path.
|
|
690
|
+
|
|
691
|
+
"""
|
|
692
|
+
workdir, path = _workdir(tmp_path, as_dict)
|
|
693
|
+
with monkeypatch.context() as m:
|
|
694
|
+
m.chdir(tmp_path)
|
|
695
|
+
queue(
|
|
696
|
+
config={"workdir": workdir, "datagrabber": datagrabber},
|
|
697
|
+
kind="HTCondor",
|
|
698
|
+
elements=elements,
|
|
699
|
+
)
|
|
700
|
+
assert WorkDirManager().workdir == path
|
|
701
|
+
assert path.is_dir()
|
|
702
|
+
# The working directory is written to the job configuration as given
|
|
703
|
+
config = YAML().load(tmp_path / "junifer_jobs/junifer_job/config.yaml")
|
|
704
|
+
assert config["workdir"] == workdir
|
|
705
|
+
|
|
706
|
+
|
|
707
|
+
def test_queue_workdir_cleanup(
|
|
708
|
+
tmp_path: Path,
|
|
709
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
710
|
+
datagrabber: dict[str, str],
|
|
711
|
+
) -> None:
|
|
712
|
+
"""Test queued jobs clean up the working directory.
|
|
713
|
+
|
|
714
|
+
Disabling the cleanup only applies to queueing (e.g. to debug it), as
|
|
715
|
+
the jobs would otherwise leave the files of each element.
|
|
716
|
+
|
|
717
|
+
Parameters
|
|
718
|
+
----------
|
|
719
|
+
tmp_path : pathlib.Path
|
|
720
|
+
The path to the test directory.
|
|
721
|
+
monkeypatch : pytest.MonkeyPatch
|
|
722
|
+
The pytest.MonkeyPatch object.
|
|
723
|
+
datagrabber : dict
|
|
724
|
+
Testing datagrabber as dictionary.
|
|
725
|
+
|
|
726
|
+
"""
|
|
727
|
+
workdir = {"path": str(tmp_path / "workdir"), "cleanup": False}
|
|
728
|
+
with monkeypatch.context() as m:
|
|
729
|
+
m.chdir(tmp_path)
|
|
730
|
+
with pytest.warns(RuntimeWarning, match="will be set to True"):
|
|
731
|
+
queue(
|
|
732
|
+
config={"workdir": workdir, "datagrabber": datagrabber},
|
|
733
|
+
kind="HTCondor",
|
|
734
|
+
)
|
|
735
|
+
# Queueing does not clean up
|
|
736
|
+
assert WorkDirManager()._cleanup_dirs is False
|
|
737
|
+
# The jobs clean up
|
|
738
|
+
config = YAML().load(tmp_path / "junifer_jobs/junifer_job/config.yaml")
|
|
739
|
+
assert config["workdir"]["cleanup"] is True
|
|
740
|
+
|
|
741
|
+
|
|
742
|
+
@pytest.mark.parametrize("as_dict", [False, True])
|
|
743
|
+
def test_collect_workdir(tmp_path: Path, as_dict: bool) -> None:
|
|
744
|
+
"""Test collect sets up the working directory.
|
|
745
|
+
|
|
746
|
+
Parameters
|
|
747
|
+
----------
|
|
748
|
+
tmp_path : pathlib.Path
|
|
749
|
+
The path to the test directory.
|
|
750
|
+
as_dict : bool
|
|
751
|
+
Whether to give the working directory as a dictionary or a path.
|
|
752
|
+
|
|
753
|
+
"""
|
|
754
|
+
workdir, path = _workdir(tmp_path, as_dict)
|
|
755
|
+
storage = {"kind": "HDF5FeatureStorage", "uri": str(tmp_path / "out.hdf5")}
|
|
756
|
+
collect(storage, workdir=workdir)
|
|
757
|
+
assert WorkDirManager().workdir == path
|
|
758
|
+
assert path.is_dir()
|
|
759
|
+
|
|
760
|
+
|
|
761
|
+
@pytest.mark.parametrize("as_dict", [False, True])
|
|
762
|
+
def test_reset_workdir(tmp_path: Path, as_dict: bool) -> None:
|
|
763
|
+
"""Test reset sets up the working directory.
|
|
764
|
+
|
|
765
|
+
Parameters
|
|
766
|
+
----------
|
|
767
|
+
tmp_path : pathlib.Path
|
|
768
|
+
The path to the test directory.
|
|
769
|
+
as_dict : bool
|
|
770
|
+
Whether to give the working directory as a dictionary or a path.
|
|
771
|
+
|
|
772
|
+
"""
|
|
773
|
+
workdir, path = _workdir(tmp_path, as_dict)
|
|
774
|
+
storage = {"uri": str(tmp_path / "out.hdf5")}
|
|
775
|
+
reset(config={"workdir": workdir, "storage": storage})
|
|
776
|
+
assert WorkDirManager().workdir == path
|
|
777
|
+
assert path.is_dir()
|
|
778
|
+
|
|
779
|
+
|
|
642
780
|
def test_reset_run(
|
|
643
781
|
tmp_path: Path,
|
|
644
782
|
datagrabber: dict[str, str],
|
|
@@ -660,7 +798,7 @@ def test_reset_run(
|
|
|
660
798
|
|
|
661
799
|
"""
|
|
662
800
|
# Create storage
|
|
663
|
-
storage["uri"] = tmp_path / "test_reset_run.
|
|
801
|
+
storage["uri"] = tmp_path / "test_reset_run.hdf5" # type: ignore
|
|
664
802
|
# Run operation to generate files
|
|
665
803
|
run(
|
|
666
804
|
workdir=tmp_path,
|
|
@@ -711,7 +849,7 @@ def test_reset_queue(
|
|
|
711
849
|
with monkeypatch.context() as m:
|
|
712
850
|
m.chdir(tmp_path)
|
|
713
851
|
# Create storage
|
|
714
|
-
storage["uri"] = "test_reset_queue.
|
|
852
|
+
storage["uri"] = "test_reset_queue.hdf5"
|
|
715
853
|
# Set job name
|
|
716
854
|
if job_name is None:
|
|
717
855
|
job_name = "junifer_job"
|
|
@@ -769,6 +907,40 @@ def test_list_elements(
|
|
|
769
907
|
assert "sub-01" in listed_elements
|
|
770
908
|
|
|
771
909
|
|
|
910
|
+
@pytest.mark.parametrize("as_dict", [False, True, None])
|
|
911
|
+
def test_list_elements_workdir(
|
|
912
|
+
tmp_path: Path,
|
|
913
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
914
|
+
datagrabber: dict[str, str],
|
|
915
|
+
as_dict: bool | None,
|
|
916
|
+
) -> None:
|
|
917
|
+
"""Test elements listing sets up the working directory.
|
|
918
|
+
|
|
919
|
+
Parameters
|
|
920
|
+
----------
|
|
921
|
+
tmp_path : pathlib.Path
|
|
922
|
+
The path to the test directory.
|
|
923
|
+
monkeypatch : pytest.MonkeyPatch
|
|
924
|
+
The pytest.MonkeyPatch object.
|
|
925
|
+
datagrabber : dict
|
|
926
|
+
Testing datagrabber as dictionary.
|
|
927
|
+
as_dict : bool or None
|
|
928
|
+
Whether to give the working directory as a dictionary or a path.
|
|
929
|
+
If None, no working directory is given and the default is used.
|
|
930
|
+
|
|
931
|
+
"""
|
|
932
|
+
if as_dict is None:
|
|
933
|
+
# The default working directory is in the temporary directory
|
|
934
|
+
monkeypatch.setattr(tempfile, "tempdir", str(tmp_path))
|
|
935
|
+
workdir, path = None, tmp_path / "junifer"
|
|
936
|
+
else:
|
|
937
|
+
workdir, path = _workdir(tmp_path, as_dict)
|
|
938
|
+
listed_elements = list_elements(datagrabber, workdir=workdir)
|
|
939
|
+
assert "sub-01" in listed_elements
|
|
940
|
+
assert WorkDirManager().workdir == path
|
|
941
|
+
assert path.is_dir()
|
|
942
|
+
|
|
943
|
+
|
|
772
944
|
def test_parse_yaml_failure() -> None:
|
|
773
945
|
"""Test YAML parsing failure."""
|
|
774
946
|
with pytest.raises(ValueError, match="does not exist"):
|
|
@@ -44,6 +44,28 @@ __all__ = [
|
|
|
44
44
|
]
|
|
45
45
|
|
|
46
46
|
|
|
47
|
+
def _parse_yaml(filepath: click.Path) -> dict:
|
|
48
|
+
"""Parse the YAML file and set up the working directory.
|
|
49
|
+
|
|
50
|
+
The working directory is set up before anything else, as all the
|
|
51
|
+
components assume it is available.
|
|
52
|
+
|
|
53
|
+
Parameters
|
|
54
|
+
----------
|
|
55
|
+
filepath : click.Path
|
|
56
|
+
The filepath to the configuration file.
|
|
57
|
+
|
|
58
|
+
Returns
|
|
59
|
+
-------
|
|
60
|
+
dict
|
|
61
|
+
The configuration.
|
|
62
|
+
|
|
63
|
+
"""
|
|
64
|
+
config = cli_func.parse_yaml(filepath) # type: ignore
|
|
65
|
+
cli_func._setup_workdir(config.get("workdir"))
|
|
66
|
+
return config
|
|
67
|
+
|
|
68
|
+
|
|
47
69
|
def _validate_optional_verbose(
|
|
48
70
|
ctx: click.Context, param: str, value: str | None
|
|
49
71
|
):
|
|
@@ -162,7 +184,7 @@ def run(
|
|
|
162
184
|
configure_logging(level=verbose, level_datalad=verbose_datalad)
|
|
163
185
|
# TODO(synchon): add validation
|
|
164
186
|
# Parse YAML
|
|
165
|
-
config =
|
|
187
|
+
config = _parse_yaml(filepath)
|
|
166
188
|
# Retrieve working directory
|
|
167
189
|
workdir = config["workdir"]
|
|
168
190
|
# Fetch datagrabber
|
|
@@ -232,7 +254,7 @@ def collect(
|
|
|
232
254
|
configure_logging(level=verbose, level_datalad=verbose_datalad)
|
|
233
255
|
# TODO: add validation
|
|
234
256
|
# Parse YAML
|
|
235
|
-
config =
|
|
257
|
+
config = _parse_yaml(filepath)
|
|
236
258
|
# Fetch storage
|
|
237
259
|
storage = config["storage"]
|
|
238
260
|
# Perform operation
|
|
@@ -299,7 +321,7 @@ def queue(
|
|
|
299
321
|
configure_logging(level=verbose, level_datalad=verbose_datalad)
|
|
300
322
|
# TODO: add validation
|
|
301
323
|
# Parse YAML
|
|
302
|
-
config =
|
|
324
|
+
config = _parse_yaml(filepath)
|
|
303
325
|
# Check queue section
|
|
304
326
|
if "queue" not in config:
|
|
305
327
|
raise_error(f"No queue configuration found in {filepath}.")
|
|
@@ -450,7 +472,7 @@ def reset(
|
|
|
450
472
|
# Setup logging
|
|
451
473
|
configure_logging(level=verbose, level_datalad=verbose_datalad)
|
|
452
474
|
# Parse YAML
|
|
453
|
-
config =
|
|
475
|
+
config = _parse_yaml(filepath)
|
|
454
476
|
# Perform operation
|
|
455
477
|
cli_func.reset(config)
|
|
456
478
|
|
|
@@ -510,7 +532,7 @@ def list_elements(
|
|
|
510
532
|
# Setup logging
|
|
511
533
|
configure_logging(level=verbose, level_datalad=verbose_datalad)
|
|
512
534
|
# Parse YAML
|
|
513
|
-
config =
|
|
535
|
+
config = _parse_yaml(filepath)
|
|
514
536
|
# Fetch datagrabber
|
|
515
537
|
datagrabber = config["datagrabber"]
|
|
516
538
|
# Parse elements
|
|
@@ -10,5 +10,5 @@ markers:
|
|
|
10
10
|
parcellation: TianxS2x3TxMNInonlinear2009cAsym
|
|
11
11
|
method: mean
|
|
12
12
|
storage:
|
|
13
|
-
kind:
|
|
14
|
-
uri: /Users/fraimondo/dev/tbox/junifer/scratch/db/test.
|
|
13
|
+
kind: HDF5FeatureStorage
|
|
14
|
+
uri: /Users/fraimondo/dev/tbox/junifer/scratch/db/test.hdf5
|
|
@@ -9,8 +9,8 @@ markers:
|
|
|
9
9
|
parcellation: TianxS2x3TxMNInonlinear2009cAsym
|
|
10
10
|
method: mean
|
|
11
11
|
storage:
|
|
12
|
-
kind:
|
|
13
|
-
uri: /Users/fraimondo/dev/tbox/junifer/scratch/db/test.
|
|
12
|
+
kind: HDF5FeatureStorage
|
|
13
|
+
uri: /Users/fraimondo/dev/tbox/junifer/scratch/db/test.hdf5
|
|
14
14
|
queue:
|
|
15
15
|
jobname: TestHTCondorQueue
|
|
16
16
|
kind: HTCondor
|