junifer 0.0.8.dev314__tar.gz → 0.0.8.dev318__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.dev314/junifer.egg-info → junifer-0.0.8.dev318}/PKG-INFO +1 -1
- junifer-0.0.8.dev318/docs/changes/newsfragments/528.bugfix +1 -0
- junifer-0.0.8.dev318/docs/changes/newsfragments/528.change +1 -0
- junifer-0.0.8.dev318/docs/changes/newsfragments/528.doc +1 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/datagrabber.rst +11 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/_version.py +3 -3
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +28 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/hcp1200.py +26 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +61 -0
- junifer-0.0.8.dev318/junifer/datagrabber/pattern_datalad.py +123 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_pattern_datalad.py +101 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318/junifer.egg-info}/PKG-INFO +1 -1
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/SOURCES.txt +3 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/scm_file_list.json +3 -0
- junifer-0.0.8.dev318/junifer.egg-info/scm_version.json +8 -0
- junifer-0.0.8.dev314/junifer/datagrabber/pattern_datalad.py +0 -63
- junifer-0.0.8.dev314/junifer.egg-info/scm_version.json +0 -8
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.dockerignore +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/pull_request_template.md +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/check-stale.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/docker-publish.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/publish.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.gitignore +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.gitmodules +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.python-version +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/AUTHORS.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/Dockerfile +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/Dockerfile-ci +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/LICENSE.md +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/README.md +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/codecov.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/conda-env.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/Makefile +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/_static/css/version_selector.css +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/_templates/versions.html +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/api.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/cli.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/configs.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/data.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/index.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/markers.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/stats.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/storage.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/testing.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/utils.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/builtin.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/239.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/364.doc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/364.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/364.feature +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/474.misc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/482.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/492.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/499.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/502.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/503.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/504.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/504.misc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/509.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/510.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.bugfix.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.change +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.enh.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.feature +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.misc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.misc.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/513.doc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/513.misc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/514.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/514.bugfix.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/514.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/515.doc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/515.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/515.enh.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/515.misc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/515.misc.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.bugfix.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.bugfix.2 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.change +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.change.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.misc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.2 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.3 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.4 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.5 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.6 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.change +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.doc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.misc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.misc.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.misc.2 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.misc.3 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.removal +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/521.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/522.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/522.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/523.misc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.bugfix.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.change +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.change.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.change.2 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.doc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.feature +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.feature.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.bugfix +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.bugfix.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.change +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.change.1 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.change.2 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.change.3 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.change.4 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.doc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.enh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.feature +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/conf.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/contribution.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/confounds_format.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/data_dump_asset.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/data_registries.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/data_types.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/extension.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/index.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/logging.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/maps.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/marker.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/masks.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/plugins.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/faq.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/help.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/index.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/installation.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/internals.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/links.inc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/maintaining.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/poly.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/poly_files/patches/version_banner.html +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/poly_files/patches/versions.html +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/poly_files/templates/index.html +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/starting.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/data.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/index.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/codeless.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/configuring.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/dumping.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/index.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/masks.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/queueing.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/running.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/whats_new.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/README.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/ignore_words.txt +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/decorators.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/functions.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/tests/test_decorators.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/tests/test_functions.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/cli.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/parser.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/tests/test_cli.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/conftest.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/_dispatch.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/_coordinates.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/tests/test_coordinates_names.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/_ants_maps_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/_fsl_maps_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/tests/test_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/_ants_mask_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/_fsl_mask_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/_masks.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/_parcellations.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/tests/test_dispatch.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/_types.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/datalad_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datareader/default.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.codecov.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.codespellignore +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/dependabot.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/workflows/build.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/workflows/code-style.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/workflows/doc.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/workflows/publish.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/workflows/pytest.yml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.gitignore +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/LICENSE +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/README.md +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/cli/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/cli/help_text.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/cli/parser.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/cli/utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/commands/sys_info.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/Makefile +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/api/index.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/conf.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/index.rst +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/links.inc +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/make.bat +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/references.bib +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/pyproject.toml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/setup.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/falff_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/tests/test_falff_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/maps_aggregation.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/reho_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/tests/test_junifer_reho.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/tests/test_reho_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/temporal_snr_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_lost_regions.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_maps_aggregation.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_marker_collection.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/workdir_manager.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/_temporal_filter.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/_temporal_slicer.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/stats.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/data/collected_h5io_fork.hdf5 +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_repeated_storage.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/registry.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_adhdtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_testing_utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_uclacnpvbmtesting_datagrabber.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/utils.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/typing/_typing.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/typing/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/__init__.pyi +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/_config.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/fs.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/logging.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/py.typed +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/tests/test_config.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/justfile +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/pyproject.toml +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/scripts/start.sh +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/setup.cfg +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/setup.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tox.ini +0 -0
- {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/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.dev318
|
|
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
|
+
Fix :class:`.DataladHCP1200` listing only the subjects already installed (the subjects are sub-datasets) and not finding the BOLD data of the subjects not installed, by listing all the subjects without searching the files and building the paths of the BOLD data without wildcards by `Fede Raimondo`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Raise an error when installing the dataset of a :class:`.PatternDataladDataGrabber` if a pattern searches the files of a sub-dataset, which are only there once the sub-dataset is installed, instead of not finding the elements by `Fede Raimondo`_
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Document that the DataGrabbers with files in datalad sub-datasets must list their elements and build the paths without searching the files by `Fede Raimondo`_
|
|
@@ -399,6 +399,17 @@ This approach can be used directly from the YAML, like so:
|
|
|
399
399
|
uri: "https://cerebra.fz-juelich.de/junifer/datalad-example-bids-ses.git"
|
|
400
400
|
rootdir: example_bids_ses
|
|
401
401
|
|
|
402
|
+
.. important::
|
|
403
|
+
|
|
404
|
+
The elements are found by searching the files of the dataset, but the files
|
|
405
|
+
of a datalad *sub-dataset* are only there once the sub-dataset is installed.
|
|
406
|
+
If the patterns search the files of a sub-dataset (e.g., a dataset with a
|
|
407
|
+
sub-dataset for each subject), :class:`.PatternDataladDataGrabber` raises
|
|
408
|
+
an error when installing the dataset. These DataGrabbers must implement
|
|
409
|
+
``get_elements`` without searching the files (e.g., from the names of the
|
|
410
|
+
sub-datasets) and build the paths in the sub-datasets without wildcards,
|
|
411
|
+
as :class:`.DataladHCP1200` does.
|
|
412
|
+
|
|
402
413
|
.. _extending_datagrabbers_path_expansion:
|
|
403
414
|
|
|
404
415
|
Advanced: Using Unix-like path expansion directives
|
|
@@ -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.dev318'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 0, 8, 'dev318')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'gd4a9dcd3a'
|
{junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/datalad_hcp1200.py
RENAMED
|
@@ -5,12 +5,14 @@
|
|
|
5
5
|
# Synchon Mandal <s.mandal@fz-juelich.de>
|
|
6
6
|
# License: AGPL
|
|
7
7
|
|
|
8
|
+
from itertools import product
|
|
8
9
|
from pathlib import Path
|
|
9
10
|
from typing import Annotated, Literal
|
|
10
11
|
|
|
11
12
|
from pydantic import AnyUrl, BeforeValidator
|
|
12
13
|
|
|
13
14
|
from ...api.decorators import register_datagrabber
|
|
15
|
+
from ...typing import Elements
|
|
14
16
|
from ...utils import ensure_list
|
|
15
17
|
from ..base import DataType
|
|
16
18
|
from ..datalad_base import DataladDataGrabber
|
|
@@ -67,3 +69,29 @@ class DataladHCP1200(DataladDataGrabber, HCP1200):
|
|
|
67
69
|
def skip_file_check(self) -> bool:
|
|
68
70
|
"""Skip file check existence."""
|
|
69
71
|
return True
|
|
72
|
+
|
|
73
|
+
def get_elements(self) -> Elements:
|
|
74
|
+
"""Implement fetching list of elements in the dataset.
|
|
75
|
+
|
|
76
|
+
The subjects are sub-datasets, whose files are only there once they
|
|
77
|
+
are installed, so the files are not searched: the elements are all
|
|
78
|
+
the subjects (the directories of the dataset) with the tasks and
|
|
79
|
+
phase encodings to grab, even if some of them have no data.
|
|
80
|
+
|
|
81
|
+
Returns
|
|
82
|
+
-------
|
|
83
|
+
list
|
|
84
|
+
The list of elements that can be grabbed in the dataset.
|
|
85
|
+
|
|
86
|
+
"""
|
|
87
|
+
subjects = sorted(
|
|
88
|
+
x.name
|
|
89
|
+
for x in self.fulldir.iterdir()
|
|
90
|
+
if x.is_dir() and not x.name.startswith(".")
|
|
91
|
+
)
|
|
92
|
+
values = {"subject": subjects, **self.get_replacement_values()}
|
|
93
|
+
element_keys = self.get_element_keys()
|
|
94
|
+
elements = list(product(*(values[k] for k in element_keys)))
|
|
95
|
+
if len(element_keys) == 1:
|
|
96
|
+
return [element[0] for element in elements]
|
|
97
|
+
return elements
|
|
@@ -162,3 +162,29 @@ class HCP1200(PatternDataGrabber):
|
|
|
162
162
|
"pattern"
|
|
163
163
|
].replace("{suffix}", suffix)
|
|
164
164
|
super().validate_datagrabber_params()
|
|
165
|
+
|
|
166
|
+
def _replace_patterns_glob(self, element: dict, pattern: str) -> str:
|
|
167
|
+
"""Replace ``pattern`` with the ``element`` so it can be globbed.
|
|
168
|
+
|
|
169
|
+
The BOLD data of the resting-state tasks is in ``rfMRI_*`` and of the
|
|
170
|
+
other tasks in ``tfMRI_*``, so the path of an element is built
|
|
171
|
+
without searching the files, which are in sub-datasets in
|
|
172
|
+
:class:`.DataladHCP1200`.
|
|
173
|
+
|
|
174
|
+
Parameters
|
|
175
|
+
----------
|
|
176
|
+
element : dict
|
|
177
|
+
The element to be used in the replacement.
|
|
178
|
+
pattern : str
|
|
179
|
+
The pattern to be replaced.
|
|
180
|
+
|
|
181
|
+
Returns
|
|
182
|
+
-------
|
|
183
|
+
str
|
|
184
|
+
The pattern with the element replaced.
|
|
185
|
+
|
|
186
|
+
"""
|
|
187
|
+
if "task" in element:
|
|
188
|
+
prefix = "rfMRI" if "REST" in element["task"] else "tfMRI"
|
|
189
|
+
pattern = pattern.replace("?fMRI_", f"{prefix}_")
|
|
190
|
+
return super()._replace_patterns_glob(element, pattern)
|
{junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py
RENAMED
|
@@ -8,6 +8,7 @@ import tempfile
|
|
|
8
8
|
from collections.abc import Iterable
|
|
9
9
|
from pathlib import Path
|
|
10
10
|
|
|
11
|
+
import datalad.api as dl
|
|
11
12
|
import pytest
|
|
12
13
|
from pydantic import AnyUrl
|
|
13
14
|
|
|
@@ -320,3 +321,63 @@ def test_HCP1200_incorrect_access_icafix(
|
|
|
320
321
|
tasks=tasks,
|
|
321
322
|
ica_fix=ica_fix,
|
|
322
323
|
)
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
def test_DataladHCP1200_subdatasets(tmp_path: Path) -> None:
|
|
327
|
+
"""Test DataladHCP1200 with a sub-dataset for each subject, as HCP.
|
|
328
|
+
|
|
329
|
+
Parameters
|
|
330
|
+
----------
|
|
331
|
+
tmp_path : pathlib.Path
|
|
332
|
+
The path to the test directory.
|
|
333
|
+
|
|
334
|
+
"""
|
|
335
|
+
dataset = dl.create(tmp_path / "origin", result_renderer="disabled")
|
|
336
|
+
for subject in ("100206", "100307"):
|
|
337
|
+
subdataset = dataset.create(subject, result_renderer="disabled")
|
|
338
|
+
for folder in ("rfMRI_REST1_LR", "tfMRI_WM_RL"):
|
|
339
|
+
path = (
|
|
340
|
+
subdataset.pathobj
|
|
341
|
+
/ "MNINonLinear"
|
|
342
|
+
/ "Results"
|
|
343
|
+
/ folder
|
|
344
|
+
/ f"{folder}.nii.gz"
|
|
345
|
+
)
|
|
346
|
+
path.parent.mkdir(parents=True)
|
|
347
|
+
path.write_text(f"{subject} {folder}")
|
|
348
|
+
path = subdataset.pathobj / "T1w" / "T1w_acpc_dc_restore.nii.gz"
|
|
349
|
+
path.parent.mkdir(parents=True)
|
|
350
|
+
path.write_text(f"{subject} T1w")
|
|
351
|
+
dataset.save(recursive=True, result_renderer="disabled")
|
|
352
|
+
dg = DataladHCP1200(
|
|
353
|
+
uri=AnyUrl(f"file://{dataset.path}"),
|
|
354
|
+
datadir=tmp_path / "clone",
|
|
355
|
+
rootdir=Path("."),
|
|
356
|
+
types=["BOLD", "T1w"],
|
|
357
|
+
tasks=["REST1", "WM"],
|
|
358
|
+
phase_encodings=["LR", "RL"],
|
|
359
|
+
)
|
|
360
|
+
with config_override("datagrabber.skipidcheck", True), dg:
|
|
361
|
+
# All the subjects with the tasks and phase encodings, without
|
|
362
|
+
# installing the sub-datasets
|
|
363
|
+
assert dg.get_elements() == [
|
|
364
|
+
(subject, task, phase_encoding)
|
|
365
|
+
for subject in ("100206", "100307")
|
|
366
|
+
for task in ("REST1", "WM")
|
|
367
|
+
for phase_encoding in ("LR", "RL")
|
|
368
|
+
]
|
|
369
|
+
assert not (dg.fulldir / "100206" / "T1w").exists()
|
|
370
|
+
out = dg[("100307", "WM", "RL")]
|
|
371
|
+
assert out["BOLD"]["path"].read_text() == "100307 tfMRI_WM_RL"
|
|
372
|
+
assert out["T1w"]["path"].read_text() == "100307 T1w"
|
|
373
|
+
out = dg[("100206", "REST1", "LR")]
|
|
374
|
+
assert out["BOLD"]["path"].read_text() == "100206 rfMRI_REST1_LR"
|
|
375
|
+
dg = DataladHCP1200(
|
|
376
|
+
uri=AnyUrl(f"file://{dataset.path}"),
|
|
377
|
+
datadir=tmp_path / "clone",
|
|
378
|
+
rootdir=Path("."),
|
|
379
|
+
types=["T1w"],
|
|
380
|
+
)
|
|
381
|
+
with config_override("datagrabber.skipidcheck", True), dg:
|
|
382
|
+
assert dg.get_elements() == ["100206", "100307"]
|
|
383
|
+
assert dg["100206"]["T1w"]["path"].read_text() == "100206 T1w"
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"""Provide concrete implementation for pattern + datalad based DataGrabber."""
|
|
2
|
+
|
|
3
|
+
# Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
|
|
4
|
+
# Leonard Sasse <l.sasse@fz-juelich.de>
|
|
5
|
+
# Synchon Mandal <s.mandal@fz-juelich.de>
|
|
6
|
+
# License: AGPL
|
|
7
|
+
|
|
8
|
+
from fnmatch import fnmatchcase
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
from pydantic import ConfigDict
|
|
12
|
+
|
|
13
|
+
from ..api.decorators import register_datagrabber
|
|
14
|
+
from ..utils import raise_error
|
|
15
|
+
from .base import logger
|
|
16
|
+
from .datalad_base import DataladDataGrabber
|
|
17
|
+
from .pattern import PatternDataGrabber
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
__all__ = ["PatternDataladDataGrabber"]
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@register_datagrabber
|
|
24
|
+
class PatternDataladDataGrabber(DataladDataGrabber, PatternDataGrabber):
|
|
25
|
+
"""Concrete implementation for pattern and datalad based data fetching.
|
|
26
|
+
|
|
27
|
+
Implements a DataGrabber that gets data from a datalad sibling,
|
|
28
|
+
interpreting patterns.
|
|
29
|
+
|
|
30
|
+
Parameters
|
|
31
|
+
----------
|
|
32
|
+
uri : pydantic.AnyUrl
|
|
33
|
+
URI of the datalad sibling.
|
|
34
|
+
types : enum:`.DataType` or list of variants
|
|
35
|
+
The data type(s) to grab.
|
|
36
|
+
patterns : ``DataGrabberPatterns``
|
|
37
|
+
The datagrabber patterns. Check :class:`DataTypeSchema` for the schema.
|
|
38
|
+
replacements : list of str
|
|
39
|
+
All possible replacements in ``patterns.<data_type>.pattern``.
|
|
40
|
+
rootdir : pathlib.Path, optional
|
|
41
|
+
The path within the datalad dataset to the root directory
|
|
42
|
+
(default Path(".")).
|
|
43
|
+
confounds_format : :enum:`.ConfoundsFormat` or None, optional
|
|
44
|
+
The format of the confounds for the dataset (default None).
|
|
45
|
+
datadir : pathlib.Path, optional
|
|
46
|
+
That path where the datalad dataset will be cloned.
|
|
47
|
+
If not specified, the datalad dataset will be cloned into a temporary
|
|
48
|
+
directory.
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
See Also
|
|
52
|
+
--------
|
|
53
|
+
DataladDataGrabber:
|
|
54
|
+
Abstract base class for datalad-based data fetching.
|
|
55
|
+
PatternDataGrabber:
|
|
56
|
+
Concrete implementation for pattern-based data fetching.
|
|
57
|
+
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
model_config = ConfigDict(extra="allow")
|
|
61
|
+
|
|
62
|
+
def validate_datagrabber_params(self) -> None:
|
|
63
|
+
"""Run extra logical validation for datagrabber."""
|
|
64
|
+
super().validate_datagrabber_params()
|
|
65
|
+
logger.debug("Initializing PatternDataladDataGrabber")
|
|
66
|
+
for key, val in self.__pydantic_extra__.items():
|
|
67
|
+
logger.debug(f"\t{key} = {val}")
|
|
68
|
+
|
|
69
|
+
def install(self) -> None:
|
|
70
|
+
"""Install the datalad dataset and check the patterns.
|
|
71
|
+
|
|
72
|
+
The elements are found by searching the files of the patterns, but the
|
|
73
|
+
files of a sub-dataset are only there once the sub-dataset is
|
|
74
|
+
installed, so the patterns cannot search the files of the
|
|
75
|
+
sub-datasets (e.g., with one sub-dataset per subject).
|
|
76
|
+
|
|
77
|
+
Raises
|
|
78
|
+
------
|
|
79
|
+
RuntimeError
|
|
80
|
+
If a pattern searches the files of a sub-dataset.
|
|
81
|
+
|
|
82
|
+
"""
|
|
83
|
+
super().install()
|
|
84
|
+
subdatasets = [
|
|
85
|
+
Path(x)
|
|
86
|
+
for x in self._dataset.subdatasets(
|
|
87
|
+
result_xfm="relpaths",
|
|
88
|
+
result_renderer="disabled",
|
|
89
|
+
return_type="list",
|
|
90
|
+
)
|
|
91
|
+
]
|
|
92
|
+
if len(subdatasets) == 0:
|
|
93
|
+
return
|
|
94
|
+
for data_type in self.types:
|
|
95
|
+
for pattern in self._get_type_patterns(data_type):
|
|
96
|
+
_, glob_pattern, _ = self._replace_patterns_regex(pattern)
|
|
97
|
+
if not any(x in glob_pattern for x in "*?["):
|
|
98
|
+
continue
|
|
99
|
+
pattern_parts = (self.rootdir / glob_pattern).parts
|
|
100
|
+
for subdataset in subdatasets:
|
|
101
|
+
n_parts = len(subdataset.parts)
|
|
102
|
+
if len(pattern_parts) > n_parts and all(
|
|
103
|
+
fnmatchcase(x, y)
|
|
104
|
+
for x, y in zip(
|
|
105
|
+
subdataset.parts, pattern_parts, strict=False
|
|
106
|
+
)
|
|
107
|
+
):
|
|
108
|
+
# Remove the dataset if cloned, as the context is
|
|
109
|
+
# not entered
|
|
110
|
+
self.cleanup()
|
|
111
|
+
raise_error(
|
|
112
|
+
msg=(
|
|
113
|
+
f"The pattern {pattern} of {data_type} "
|
|
114
|
+
"searches the files of the sub-dataset "
|
|
115
|
+
f"{subdataset}, which are only there if it "
|
|
116
|
+
"is installed. A DataGrabber with files in "
|
|
117
|
+
"sub-datasets must list its elements and "
|
|
118
|
+
"build the paths of the files without "
|
|
119
|
+
"searching them (e.g., without wildcards), "
|
|
120
|
+
"as DataladHCP1200."
|
|
121
|
+
),
|
|
122
|
+
klass=RuntimeError,
|
|
123
|
+
)
|
{junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_pattern_datalad.py
RENAMED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
|
|
10
|
+
import datalad.api as dl
|
|
11
|
+
import pytest
|
|
10
12
|
from pydantic import AnyUrl
|
|
11
13
|
|
|
12
14
|
from junifer.datagrabber import DataType, PatternDataladDataGrabber
|
|
@@ -174,3 +176,102 @@ def test_bids_PatternDataladDataGrabber_session():
|
|
|
174
176
|
for i in range(1, 10)
|
|
175
177
|
]
|
|
176
178
|
assert set(subs) == set(expected_subs)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
@pytest.fixture
|
|
182
|
+
def subdatasets_uri(tmp_path: Path) -> AnyUrl:
|
|
183
|
+
"""Return the URI of a dataset with a sub-dataset for each subject.
|
|
184
|
+
|
|
185
|
+
Parameters
|
|
186
|
+
----------
|
|
187
|
+
tmp_path : pathlib.Path
|
|
188
|
+
The path to the test directory.
|
|
189
|
+
|
|
190
|
+
"""
|
|
191
|
+
dataset = dl.create(tmp_path / "origin", result_renderer="disabled")
|
|
192
|
+
for subject in ("sub-01", "sub-02"):
|
|
193
|
+
subdataset = dataset.create(subject, result_renderer="disabled")
|
|
194
|
+
(subdataset.pathobj / "T1w.nii").write_text(subject)
|
|
195
|
+
(dataset.pathobj / f"{subject}_T1w.nii").write_text(subject)
|
|
196
|
+
dataset.save(recursive=True, result_renderer="disabled")
|
|
197
|
+
return AnyUrl(f"file://{dataset.path}")
|
|
198
|
+
|
|
199
|
+
|
|
200
|
+
@pytest.mark.parametrize(
|
|
201
|
+
"pattern",
|
|
202
|
+
["{subject}/T1w.nii", "{subject}/T1*.nii"],
|
|
203
|
+
)
|
|
204
|
+
def test_PatternDataladDataGrabber_subdatasets_search(
|
|
205
|
+
tmp_path: Path, subdatasets_uri: AnyUrl, pattern: str
|
|
206
|
+
) -> None:
|
|
207
|
+
"""Test searching the files of the sub-datasets raises an error.
|
|
208
|
+
|
|
209
|
+
Parameters
|
|
210
|
+
----------
|
|
211
|
+
tmp_path : pathlib.Path
|
|
212
|
+
The path to the test directory.
|
|
213
|
+
subdatasets_uri : pydantic.AnyUrl
|
|
214
|
+
The URI of the dataset with a sub-dataset for each subject.
|
|
215
|
+
pattern : str
|
|
216
|
+
The parametrized pattern, which searches the files of the
|
|
217
|
+
sub-datasets.
|
|
218
|
+
|
|
219
|
+
"""
|
|
220
|
+
dg = PatternDataladDataGrabber(
|
|
221
|
+
uri=subdatasets_uri,
|
|
222
|
+
datadir=tmp_path / "clone",
|
|
223
|
+
types=["T1w"],
|
|
224
|
+
patterns={"T1w": {"pattern": pattern, "space": "native"}},
|
|
225
|
+
replacements=["subject"],
|
|
226
|
+
)
|
|
227
|
+
with pytest.raises(RuntimeError, match="searches the files of the"):
|
|
228
|
+
with dg:
|
|
229
|
+
pass
|
|
230
|
+
# The cloned dataset is removed
|
|
231
|
+
assert not (tmp_path / "clone").exists() or not any(
|
|
232
|
+
(tmp_path / "clone").iterdir()
|
|
233
|
+
)
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
def test_PatternDataladDataGrabber_subdatasets_files(
|
|
237
|
+
tmp_path: Path, subdatasets_uri: AnyUrl
|
|
238
|
+
) -> None:
|
|
239
|
+
"""Test the patterns of a dataset with sub-datasets.
|
|
240
|
+
|
|
241
|
+
The files of the dataset can be searched, and the patterns without
|
|
242
|
+
wildcards can have files in the sub-datasets.
|
|
243
|
+
|
|
244
|
+
Parameters
|
|
245
|
+
----------
|
|
246
|
+
tmp_path : pathlib.Path
|
|
247
|
+
The path to the test directory.
|
|
248
|
+
subdatasets_uri : pydantic.AnyUrl
|
|
249
|
+
The URI of the dataset with a sub-dataset for each subject.
|
|
250
|
+
|
|
251
|
+
"""
|
|
252
|
+
dg = PatternDataladDataGrabber(
|
|
253
|
+
uri=subdatasets_uri,
|
|
254
|
+
datadir=tmp_path / "clone",
|
|
255
|
+
types=["T1w"],
|
|
256
|
+
patterns={"T1w": {"pattern": "{subject}_T1w.nii", "space": "native"}},
|
|
257
|
+
replacements=["subject"],
|
|
258
|
+
)
|
|
259
|
+
with dg:
|
|
260
|
+
assert dg.get_elements() == ["sub-01", "sub-02"]
|
|
261
|
+
assert dg["sub-02"]["T1w"]["path"].read_text() == "sub-02"
|
|
262
|
+
# A pattern without wildcards in a sub-dataset
|
|
263
|
+
dg = PatternDataladDataGrabber(
|
|
264
|
+
uri=subdatasets_uri,
|
|
265
|
+
datadir=tmp_path / "clone",
|
|
266
|
+
types=["T1w"],
|
|
267
|
+
patterns={
|
|
268
|
+
"T1w": {
|
|
269
|
+
"pattern": "{subject}_T1w.nii",
|
|
270
|
+
"space": "native",
|
|
271
|
+
"mask": {"pattern": "sub-01/T1w.nii", "space": "native"},
|
|
272
|
+
}
|
|
273
|
+
},
|
|
274
|
+
replacements=["subject"],
|
|
275
|
+
)
|
|
276
|
+
with dg:
|
|
277
|
+
assert dg.get_elements() == ["sub-01", "sub-02"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: junifer
|
|
3
|
-
Version: 0.0.8.
|
|
3
|
+
Version: 0.0.8.dev318
|
|
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>
|
|
@@ -142,6 +142,9 @@ docs/changes/newsfragments/525.change.4
|
|
|
142
142
|
docs/changes/newsfragments/525.doc
|
|
143
143
|
docs/changes/newsfragments/525.enh
|
|
144
144
|
docs/changes/newsfragments/525.feature
|
|
145
|
+
docs/changes/newsfragments/528.bugfix
|
|
146
|
+
docs/changes/newsfragments/528.change
|
|
147
|
+
docs/changes/newsfragments/528.doc
|
|
145
148
|
docs/extending/confounds_format.rst
|
|
146
149
|
docs/extending/coordinates.rst
|
|
147
150
|
docs/extending/data_dump_asset.rst
|
|
@@ -126,6 +126,9 @@
|
|
|
126
126
|
"docs/changes/newsfragments/525.doc",
|
|
127
127
|
"docs/changes/newsfragments/525.enh",
|
|
128
128
|
"docs/changes/newsfragments/525.feature",
|
|
129
|
+
"docs/changes/newsfragments/528.bugfix",
|
|
130
|
+
"docs/changes/newsfragments/528.change",
|
|
131
|
+
"docs/changes/newsfragments/528.doc",
|
|
129
132
|
"docs/conf.py",
|
|
130
133
|
"docs/contribution.rst",
|
|
131
134
|
"docs/extending/confounds_format.rst",
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"""Provide concrete implementation for pattern + datalad based DataGrabber."""
|
|
2
|
-
|
|
3
|
-
# Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
|
|
4
|
-
# Leonard Sasse <l.sasse@fz-juelich.de>
|
|
5
|
-
# Synchon Mandal <s.mandal@fz-juelich.de>
|
|
6
|
-
# License: AGPL
|
|
7
|
-
|
|
8
|
-
from pydantic import ConfigDict
|
|
9
|
-
|
|
10
|
-
from ..api.decorators import register_datagrabber
|
|
11
|
-
from .base import logger
|
|
12
|
-
from .datalad_base import DataladDataGrabber
|
|
13
|
-
from .pattern import PatternDataGrabber
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
__all__ = ["PatternDataladDataGrabber"]
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@register_datagrabber
|
|
20
|
-
class PatternDataladDataGrabber(DataladDataGrabber, PatternDataGrabber):
|
|
21
|
-
"""Concrete implementation for pattern and datalad based data fetching.
|
|
22
|
-
|
|
23
|
-
Implements a DataGrabber that gets data from a datalad sibling,
|
|
24
|
-
interpreting patterns.
|
|
25
|
-
|
|
26
|
-
Parameters
|
|
27
|
-
----------
|
|
28
|
-
uri : pydantic.AnyUrl
|
|
29
|
-
URI of the datalad sibling.
|
|
30
|
-
types : enum:`.DataType` or list of variants
|
|
31
|
-
The data type(s) to grab.
|
|
32
|
-
patterns : ``DataGrabberPatterns``
|
|
33
|
-
The datagrabber patterns. Check :class:`DataTypeSchema` for the schema.
|
|
34
|
-
replacements : list of str
|
|
35
|
-
All possible replacements in ``patterns.<data_type>.pattern``.
|
|
36
|
-
rootdir : pathlib.Path, optional
|
|
37
|
-
The path within the datalad dataset to the root directory
|
|
38
|
-
(default Path(".")).
|
|
39
|
-
confounds_format : :enum:`.ConfoundsFormat` or None, optional
|
|
40
|
-
The format of the confounds for the dataset (default None).
|
|
41
|
-
datadir : pathlib.Path, optional
|
|
42
|
-
That path where the datalad dataset will be cloned.
|
|
43
|
-
If not specified, the datalad dataset will be cloned into a temporary
|
|
44
|
-
directory.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
See Also
|
|
48
|
-
--------
|
|
49
|
-
DataladDataGrabber:
|
|
50
|
-
Abstract base class for datalad-based data fetching.
|
|
51
|
-
PatternDataGrabber:
|
|
52
|
-
Concrete implementation for pattern-based data fetching.
|
|
53
|
-
|
|
54
|
-
"""
|
|
55
|
-
|
|
56
|
-
model_config = ConfigDict(extra="allow")
|
|
57
|
-
|
|
58
|
-
def validate_datagrabber_params(self) -> None:
|
|
59
|
-
"""Run extra logical validation for datagrabber."""
|
|
60
|
-
super().validate_datagrabber_params()
|
|
61
|
-
logger.debug("Initializing PatternDataladDataGrabber")
|
|
62
|
-
for key, val in self.__pydantic_extra__.items():
|
|
63
|
-
logger.debug(f"\t{key} = {val}")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.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
|
|
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
|