junifer 0.0.8.dev298__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.dev298/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.dev298 → junifer-0.0.8.dev303}/junifer/_version.py +3 -3
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/functions.py +54 -13
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/tests/test_functions.py +173 -1
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/cli.py +27 -5
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/tests/test_cli.py +72 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_workdir_manager.py +15 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/workdir_manager.py +8 -8
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303/junifer.egg-info}/PKG-INFO +1 -1
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer.egg-info/SOURCES.txt +1 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer.egg-info/scm_file_list.json +1 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer.egg-info/scm_version.json +2 -2
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.dockerignore +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/pull_request_template.md +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/workflows/check-stale.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/workflows/docker-publish.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/workflows/publish.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.gitignore +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.gitmodules +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.python-version +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/AUTHORS.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/Dockerfile +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/Dockerfile-ci +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/LICENSE.md +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/README.md +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/codecov.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/conda-env.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/Makefile +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/_static/css/version_selector.css +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/_templates/versions.html +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/api.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/cli.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/configs.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/data.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/index.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/markers.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/stats.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/storage.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/testing.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/api/utils.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/builtin.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/239.enh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/364.doc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/364.enh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/364.feature +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/474.misc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/482.bugfix +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/492.bugfix +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/499.enh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/502.bugfix +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/503.enh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/510.bugfix +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.bugfix +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.bugfix.1 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.change +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.enh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.enh.1 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.feature +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.misc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.misc.1 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/513.doc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/513.misc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/514.bugfix +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/514.bugfix.1 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/514.enh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.doc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.enh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.enh.1 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.misc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.misc.1 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.bugfix +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.bugfix.1 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.bugfix.2 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.change +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.change.1 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.misc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.1 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.2 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.3 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.4 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.5 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.6 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.change +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.doc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc.1 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc.2 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc.3 +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.removal +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/521.bugfix +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/522.bugfix +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/522.enh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/changes/newsfragments/523.misc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/conf.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/contribution.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/confounds_format.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/data_dump_asset.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/data_registries.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/data_types.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/extension.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/index.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/logging.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/maps.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/marker.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/masks.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/plugins.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/faq.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/help.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/index.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/installation.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/links.inc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/maintaining.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/poly.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/poly_files/patches/version_banner.html +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/poly_files/patches/versions.html +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/poly_files/templates/index.html +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/starting.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/understanding/data.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/understanding/index.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/using/codeless.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/using/configuring.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/using/dumping.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/using/index.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/using/masks.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/using/queueing.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/using/running.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/docs/whats_new.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/README.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/ignore_words.txt +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/decorators.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/api/tests/test_decorators.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/parser.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/cli/utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/configs/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/conftest.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/_dispatch.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/coordinates/_coordinates.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/coordinates/tests/test_coordinates_names.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/maps/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/maps/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/maps/_ants_maps_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/maps/_fsl_maps_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/maps/_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/maps/tests/test_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/masks/_ants_mask_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/masks/_fsl_mask_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/masks/_masks.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/parcellations/_parcellations.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/tests/test_dispatch.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/data/utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/_types.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/datalad_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datareader/default.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.codecov.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.codespellignore +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/build.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/code-style.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/doc.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/publish.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/pytest.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.gitignore +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/LICENSE +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/README.md +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/help_text.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/parser.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/commands/sys_info.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/Makefile +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/api/index.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/conf.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/index.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/links.inc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/make.bat +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/references.bib +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/pyproject.toml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/setup.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/.coveragerc +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/.gitattributes +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/.gitignore +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/.travis.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/.vscode/launch.json +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/.vscode/settings.json +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/LICENSE.txt +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/MANIFEST.in +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/Makefile +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/README.rst +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/azure-pipelines.yml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/test_chunked_array.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/test_chunked_list.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/test_io.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/setup.cfg +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/setup.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/h5io/versioneer.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/external/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/tests/test_falff_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/maps_aggregation.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_junifer_reho.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_reho_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/tests/test_lost_regions.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/tests/test_maps_aggregation.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/markers/utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/onthefly/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/onthefly/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_marker_collection.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/_temporal_filter.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/_temporal_slicer.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/stats.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/storage/utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/registry.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/tests/test_adhdtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/tests/test_testing_utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/tests/test_uclacnpvbmtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/testing/utils.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/typing/_typing.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/typing/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/__init__.pyi +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/_config.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/fs.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/logging.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/py.typed +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/justfile +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/pyproject.toml +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/scripts/start.sh +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/setup.cfg +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/setup.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/tox.ini +0 -0
- {junifer-0.0.8.dev298 → 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`_
|
|
@@ -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
|
|
|
@@ -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],
|
|
@@ -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
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
# Synchon Mandal <s.mandal@fz-juelich.de>
|
|
5
5
|
# License: AGPL
|
|
6
6
|
|
|
7
|
+
import tempfile
|
|
7
8
|
from collections.abc import Callable
|
|
8
9
|
from pathlib import Path
|
|
9
10
|
|
|
@@ -12,6 +13,7 @@ from click.testing import CliRunner
|
|
|
12
13
|
from ruamel.yaml import YAML
|
|
13
14
|
|
|
14
15
|
from junifer.cli.cli import (
|
|
16
|
+
_parse_yaml,
|
|
15
17
|
collect,
|
|
16
18
|
list_elements,
|
|
17
19
|
queue,
|
|
@@ -21,6 +23,7 @@ from junifer.cli.cli import (
|
|
|
21
23
|
wtf,
|
|
22
24
|
)
|
|
23
25
|
from junifer.cli.parser import _parse_elements_file
|
|
26
|
+
from junifer.pipeline import WorkDirManager
|
|
24
27
|
|
|
25
28
|
|
|
26
29
|
pytestmark = pytest.mark.external
|
|
@@ -383,6 +386,75 @@ def test_list_elements_output_file(
|
|
|
383
386
|
assert f"{elements[0]}\n{elements[1]}" == f.read()
|
|
384
387
|
|
|
385
388
|
|
|
389
|
+
@pytest.mark.parametrize(
|
|
390
|
+
"workdir, expected",
|
|
391
|
+
[
|
|
392
|
+
("workdir", "workdir"),
|
|
393
|
+
({"path": "workdir", "cleanup": False}, "workdir"),
|
|
394
|
+
(None, "junifer"),
|
|
395
|
+
],
|
|
396
|
+
ids=["path", "dict", "default"],
|
|
397
|
+
)
|
|
398
|
+
def test_parse_yaml_workdir(
|
|
399
|
+
tmp_path: Path,
|
|
400
|
+
monkeypatch: pytest.MonkeyPatch,
|
|
401
|
+
workdir: str | dict | None,
|
|
402
|
+
expected: str,
|
|
403
|
+
) -> None:
|
|
404
|
+
"""Test the working directory is set up when parsing the YAML.
|
|
405
|
+
|
|
406
|
+
Parameters
|
|
407
|
+
----------
|
|
408
|
+
tmp_path : pathlib.Path
|
|
409
|
+
The path to the test directory.
|
|
410
|
+
monkeypatch : pytest.MonkeyPatch
|
|
411
|
+
The pytest.MonkeyPatch object.
|
|
412
|
+
workdir : str or dict or None
|
|
413
|
+
The parametrized working directory in the YAML. If None, the YAML
|
|
414
|
+
has no working directory.
|
|
415
|
+
expected : str
|
|
416
|
+
The parametrized working directory set up, relative to ``tmp_path``.
|
|
417
|
+
|
|
418
|
+
"""
|
|
419
|
+
# Use the test directory for relative paths and as temporary directory,
|
|
420
|
+
# where the default working directory is
|
|
421
|
+
monkeypatch.chdir(tmp_path)
|
|
422
|
+
monkeypatch.setattr(tempfile, "tempdir", str(tmp_path))
|
|
423
|
+
contents = {"datagrabber": {"kind": "PartlyCloudyTestingDataGrabber"}}
|
|
424
|
+
if workdir is not None:
|
|
425
|
+
contents["workdir"] = workdir
|
|
426
|
+
yaml.dump(contents, stream=tmp_path / "in.yaml")
|
|
427
|
+
# The configuration is not changed
|
|
428
|
+
assert _parse_yaml(tmp_path / "in.yaml") == contents # type: ignore
|
|
429
|
+
assert WorkDirManager().workdir.resolve() == tmp_path / expected
|
|
430
|
+
assert (tmp_path / expected).is_dir()
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
def test_list_elements_workdir(tmp_path: Path) -> None:
|
|
434
|
+
"""Test elements listing in the working directory of the YAML.
|
|
435
|
+
|
|
436
|
+
Parameters
|
|
437
|
+
----------
|
|
438
|
+
tmp_path : pathlib.Path
|
|
439
|
+
The path to the test directory.
|
|
440
|
+
|
|
441
|
+
"""
|
|
442
|
+
# Get test config
|
|
443
|
+
infile = Path(__file__).parent / "data" / "partly_cloudy_agg_mean_tian.yml"
|
|
444
|
+
contents = yaml.load(infile)
|
|
445
|
+
# Working directory
|
|
446
|
+
workdir = tmp_path / "workdir"
|
|
447
|
+
contents["workdir"] = str(workdir)
|
|
448
|
+
# Write new test config
|
|
449
|
+
outfile = tmp_path / "in.yaml"
|
|
450
|
+
yaml.dump(contents, stream=outfile)
|
|
451
|
+
# Invoke list elements command
|
|
452
|
+
list_elements_result = runner.invoke(list_elements, [str(outfile)])
|
|
453
|
+
# Check
|
|
454
|
+
assert list_elements_result.exit_code == 0
|
|
455
|
+
assert WorkDirManager().workdir == workdir
|
|
456
|
+
|
|
457
|
+
|
|
386
458
|
def test_wtf_short() -> None:
|
|
387
459
|
"""Test short version of wtf command."""
|
|
388
460
|
# Invoke wtf command
|
{junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_workdir_manager.py
RENAMED
|
@@ -29,6 +29,21 @@ def test_workdir_manager_workdir(tmp_path: Path) -> None:
|
|
|
29
29
|
assert workdir_mgr.workdir == tmp_path
|
|
30
30
|
|
|
31
31
|
|
|
32
|
+
def test_workdir_manager_create_workdir(tmp_path: Path) -> None:
|
|
33
|
+
"""Test WorkDirManager creates the workdir if it does not exist.
|
|
34
|
+
|
|
35
|
+
Parameters
|
|
36
|
+
----------
|
|
37
|
+
tmp_path : pathlib.Path
|
|
38
|
+
The path to the test directory.
|
|
39
|
+
|
|
40
|
+
"""
|
|
41
|
+
workdir = tmp_path / "new" / "workdir"
|
|
42
|
+
workdir_mgr = WorkDirManager(workdir=workdir)
|
|
43
|
+
assert workdir_mgr.workdir == workdir
|
|
44
|
+
assert workdir.is_dir()
|
|
45
|
+
|
|
46
|
+
|
|
32
47
|
def test_workdir_manager_get_and_delete_element_tempdir(
|
|
33
48
|
tmp_path: Path,
|
|
34
49
|
) -> None:
|
|
@@ -63,16 +63,16 @@ class WorkDirManager(metaclass=Singleton):
|
|
|
63
63
|
# Check and set topmost level directory if not provided
|
|
64
64
|
if self._workdir is None:
|
|
65
65
|
self._workdir = Path(tempfile.gettempdir()) / "junifer"
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
"Creating working directory at "
|
|
70
|
-
f"{self._workdir.resolve()!s}"
|
|
71
|
-
)
|
|
72
|
-
self._workdir.mkdir(parents=True)
|
|
66
|
+
|
|
67
|
+
# Create directory if not found
|
|
68
|
+
if not self._workdir.is_dir():
|
|
73
69
|
logger.debug(
|
|
74
|
-
f"
|
|
70
|
+
f"Creating working directory at {self._workdir.resolve()!s}"
|
|
75
71
|
)
|
|
72
|
+
self._workdir.mkdir(parents=True)
|
|
73
|
+
logger.debug(
|
|
74
|
+
f"Setting working directory to {self._workdir.resolve()!s}"
|
|
75
|
+
)
|
|
76
76
|
|
|
77
77
|
def _cleanup(self) -> None:
|
|
78
78
|
"""Clean up the element and temporary directories."""
|
|
@@ -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>
|
|
@@ -76,6 +76,7 @@ docs/changes/newsfragments/492.bugfix
|
|
|
76
76
|
docs/changes/newsfragments/499.enh
|
|
77
77
|
docs/changes/newsfragments/502.bugfix
|
|
78
78
|
docs/changes/newsfragments/503.enh
|
|
79
|
+
docs/changes/newsfragments/509.enh
|
|
79
80
|
docs/changes/newsfragments/510.bugfix
|
|
80
81
|
docs/changes/newsfragments/511.bugfix
|
|
81
82
|
docs/changes/newsfragments/511.bugfix.1
|
|
@@ -61,6 +61,7 @@
|
|
|
61
61
|
"docs/changes/newsfragments/499.enh",
|
|
62
62
|
"docs/changes/newsfragments/502.bugfix",
|
|
63
63
|
"docs/changes/newsfragments/503.enh",
|
|
64
|
+
"docs/changes/newsfragments/509.enh",
|
|
64
65
|
"docs/changes/newsfragments/510.bugfix",
|
|
65
66
|
"docs/changes/newsfragments/511.bugfix",
|
|
66
67
|
"docs/changes/newsfragments/511.bugfix.1",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{junifer-0.0.8.dev298 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/documention-request.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|