junifer 0.0.6.dev277__tar.gz → 0.0.6.dev299__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/PKG-INFO +1 -1
- junifer-0.0.6.dev299/docs/changes/newsfragments/402.change +1 -0
- junifer-0.0.6.dev299/docs/changes/newsfragments/402.enh +1 -0
- junifer-0.0.6.dev299/docs/changes/newsfragments/403.enh +1 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/conf.py +1 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/_version.py +2 -2
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/functions.py +42 -17
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/tests/test_functions.py +29 -22
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/cli.py +26 -9
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/parser.py +4 -2
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/datalad_base.py +46 -17
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/tests/test_datalad_base.py +18 -2
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/workdir_manager.py +4 -4
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer.egg-info/PKG-INFO +1 -1
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer.egg-info/SOURCES.txt +3 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.dockerignore +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/dependabot.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/pull_request_template.md +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/workflows/ci-docs.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/workflows/docker-ci-publish.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/workflows/docker-docs-publish.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.github/workflows/pypi.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.gitignore +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.gitmodules +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/AUTHORS.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/Dockerfile-ci +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/Dockerfile-docs +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/LICENSE.md +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/README.md +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/codecov.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/conda-env.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/Makefile +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/_templates/versions.html +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/api.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/cli.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/configs.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/data.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/index.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/markers.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/stats.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/storage.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/testing.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/api/utils.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/builtin.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/335.enh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/354.feature +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/355.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/356.bugfix +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/357.enh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/358.doc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/359.doc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/360.bugfix +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/361.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/362.feature +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/367.enh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/368.enh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/369.bugfix +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/370.bugfix +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/372.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/373.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/374.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/380.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/382.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/383.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/384.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/386.bugfix +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/387.change +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/387.feature +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/388.bugfix +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/389.enh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/390.change +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/390.enh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/391.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/392.feature +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/393.misc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/398.bugfix +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/changes/newsfragments/401.feature +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/contribution.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/extending/extension.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/extending/index.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/extending/marker.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/extending/masks.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/faq.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/help.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/index.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/installation.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/links.inc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/maintaining.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/redirect.html +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/starting.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/understanding/data.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/understanding/index.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/using/codeless.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/using/index.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/using/masks.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/using/queueing.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/using/running.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/docs/whats_new.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/README.rst +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/ignore_words.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/decorators.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/tests/test_cli.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/tests/test_parser.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/cli/utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/conftest.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/_dispatch.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/CogAC_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/CogAR_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/Empathy_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/Motor_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/MultiTask_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/PhysioStress_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/Rew_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/Somatosensory_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/ToM_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/VigAtt_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/WM_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/eMDN_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/eSAD_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/VOIs/meta/extDMN_VOIs.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/_coordinates.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/masks/_ants_mask_warper.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/masks/_fsl_mask_warper.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/masks/_masks.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/parcellations/_parcellations.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/template_spaces.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/data/utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datareader/default.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/markers/utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/tests/test_marker_collection.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/stats.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/storage/utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/datagrabbers.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/registry.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/testing/utils.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/typing/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/typing/_typing.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/__init__.pyi +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/_config.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/fs.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/helpers.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/logging.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/py.typed +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/singleton.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/tests/test_config.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/pyproject.toml +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/setup.cfg +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/setup.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/tox.ini +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.6.
|
3
|
+
Version: 0.0.6.dev299
|
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
|
+
Allow ``workdir`` to also be a mapping in YAML, with ``path`` and ``cleanup`` keys by `Synchon Mandal`_
|
@@ -0,0 +1 @@
|
|
1
|
+
Allow ``workdir`` mapping form in YAML for easy debugging of single element ``run`` by disabling cleanup of :class:`junifer.pipeline.WorkDirManager` by `Synchon Mandal`_
|
@@ -0,0 +1 @@
|
|
1
|
+
Use :func:`junifer.utils.ConfigManager` to skip time-consuming dataset ID and dirty checks for :class:`.DataladDataGrabber` by `Fede Raimondo`_
|
@@ -96,6 +96,7 @@ nitpick_ignore_regex = [
|
|
96
96
|
("py:obj", "sqlalchemy.engine.Engine"), # ignore sqlalchemy
|
97
97
|
("py:class", "pipeline.Pipeline"), # nilearn
|
98
98
|
("py:obj", "neurokit2.*"), # ignore neurokit2
|
99
|
+
("py:obj", "datalad.*"), # ignore datalad
|
99
100
|
]
|
100
101
|
|
101
102
|
# -- Options for HTML output -------------------------------------------------
|
@@ -12,5 +12,5 @@ __version__: str
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
13
13
|
version_tuple: VERSION_TUPLE
|
14
14
|
|
15
|
-
__version__ = version = '0.0.6.
|
16
|
-
__version_tuple__ = version_tuple = (0, 0, 6, '
|
15
|
+
__version__ = version = '0.0.6.dev299'
|
16
|
+
__version_tuple__ = version_tuple = (0, 0, 6, 'dev299')
|
@@ -21,7 +21,7 @@ from ..pipeline import (
|
|
21
21
|
from ..preprocess import BasePreprocessor
|
22
22
|
from ..storage import BaseFeatureStorage
|
23
23
|
from ..typing import DataGrabberLike, MarkerLike, PreprocessorLike, StorageLike
|
24
|
-
from ..utils import logger, raise_error, yaml
|
24
|
+
from ..utils import logger, raise_error, warn_with_log, yaml
|
25
25
|
|
26
26
|
|
27
27
|
__all__ = ["collect", "list_elements", "queue", "reset", "run"]
|
@@ -116,18 +116,18 @@ def _get_storage(storage_config: dict) -> StorageLike:
|
|
116
116
|
|
117
117
|
|
118
118
|
def run(
|
119
|
-
workdir: Union[str, Path],
|
119
|
+
workdir: Union[str, Path, dict],
|
120
120
|
datagrabber: dict,
|
121
121
|
markers: list[dict],
|
122
122
|
storage: dict,
|
123
123
|
preprocessors: Optional[list[dict]] = None,
|
124
|
-
elements:
|
124
|
+
elements: Optional[list[tuple[str, ...]]] = None,
|
125
125
|
) -> None:
|
126
126
|
"""Run the pipeline on the selected element.
|
127
127
|
|
128
128
|
Parameters
|
129
129
|
----------
|
130
|
-
workdir : str or pathlib.Path
|
130
|
+
workdir : str or pathlib.Path or dict
|
131
131
|
Directory where the pipeline will be executed.
|
132
132
|
datagrabber : dict
|
133
133
|
DataGrabber to use. Must have a key ``kind`` with the kind of
|
@@ -143,23 +143,38 @@ def run(
|
|
143
143
|
Storage to use. Must have a key ``kind`` with the kind of
|
144
144
|
storage to use. All other keys are passed to the storage
|
145
145
|
constructor.
|
146
|
-
preprocessors : list of dict, optional
|
146
|
+
preprocessors : list of dict or None, optional
|
147
147
|
List of preprocessors to use. Each preprocessor is a dict with at
|
148
148
|
least a key ``kind`` specifying the preprocessor to use. All other keys
|
149
149
|
are passed to the preprocessor constructor (default None).
|
150
|
-
elements :
|
150
|
+
elements : list of tuple or None, optional
|
151
151
|
Element(s) to process. Will be used to index the DataGrabber
|
152
152
|
(default None).
|
153
153
|
|
154
|
+
Raises
|
155
|
+
------
|
156
|
+
ValueError
|
157
|
+
If ``workdir.cleanup=False`` when ``len(elements) > 1``.
|
158
|
+
|
154
159
|
"""
|
155
|
-
#
|
156
|
-
if isinstance(workdir, str):
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
+
# Conditional to handle workdir config
|
161
|
+
if isinstance(workdir, (str, Path)):
|
162
|
+
if isinstance(workdir, str):
|
163
|
+
workdir = {"workdir": Path(workdir), "cleanup": True}
|
164
|
+
else:
|
165
|
+
workdir = {"workdir": workdir, "cleanup": True}
|
166
|
+
elif isinstance(workdir, dict):
|
167
|
+
workdir["workdir"] = workdir.pop("path")
|
160
168
|
|
161
|
-
|
162
|
-
|
169
|
+
# Initiate working directory manager with correct variation
|
170
|
+
if not workdir["cleanup"]:
|
171
|
+
if elements is None or len(elements) > 1:
|
172
|
+
raise_error(
|
173
|
+
"Cannot disable `workdir.cleanup` as "
|
174
|
+
f"{len(elements) if elements is not None else 'all'} "
|
175
|
+
"elements will be processed"
|
176
|
+
)
|
177
|
+
WorkDirManager(**workdir)
|
163
178
|
|
164
179
|
# Get datagrabber to use
|
165
180
|
datagrabber_object = _get_datagrabber(datagrabber.copy())
|
@@ -228,7 +243,7 @@ def queue(
|
|
228
243
|
kind: str,
|
229
244
|
jobname: str = "junifer_job",
|
230
245
|
overwrite: bool = False,
|
231
|
-
elements:
|
246
|
+
elements: Optional[list[tuple[str, ...]]] = None,
|
232
247
|
**kwargs: Union[str, int, bool, dict, tuple, list],
|
233
248
|
) -> None:
|
234
249
|
"""Queue a job to be executed later.
|
@@ -243,7 +258,7 @@ def queue(
|
|
243
258
|
The name of the job (default "junifer_job").
|
244
259
|
overwrite : bool, optional
|
245
260
|
Whether to overwrite if job directory already exists (default False).
|
246
|
-
elements :
|
261
|
+
elements : list of tuple or None, optional
|
247
262
|
Element(s) to process. Will be used to index the DataGrabber
|
248
263
|
(default None).
|
249
264
|
**kwargs : dict
|
@@ -282,6 +297,16 @@ def queue(
|
|
282
297
|
shutil.rmtree(jobdir)
|
283
298
|
jobdir.mkdir(exist_ok=True, parents=True)
|
284
299
|
|
300
|
+
# Check workdir config
|
301
|
+
if "workdir" in config:
|
302
|
+
if isinstance(config["workdir"], dict):
|
303
|
+
if not config["workdir"]["cleanup"]:
|
304
|
+
warn_with_log(
|
305
|
+
"`workdir.cleanup` will be set to True when queueing"
|
306
|
+
)
|
307
|
+
# Set cleanup
|
308
|
+
config["workdir"]["cleanup"] = True
|
309
|
+
|
285
310
|
# Load modules
|
286
311
|
if "with" in config:
|
287
312
|
to_load = config["with"]
|
@@ -381,7 +406,7 @@ def reset(config: dict) -> None:
|
|
381
406
|
|
382
407
|
def list_elements(
|
383
408
|
datagrabber: dict,
|
384
|
-
elements:
|
409
|
+
elements: Optional[list[tuple[str, ...]]] = None,
|
385
410
|
) -> str:
|
386
411
|
"""List elements of the datagrabber filtered using `elements`.
|
387
412
|
|
@@ -391,7 +416,7 @@ def list_elements(
|
|
391
416
|
DataGrabber to index. Must have a key ``kind`` with the kind of
|
392
417
|
DataGrabber to use. All other keys are passed to the DataGrabber
|
393
418
|
constructor.
|
394
|
-
elements :
|
419
|
+
elements : list of tuple or None, optional
|
395
420
|
Element(s) to filter using. Will be used to index the DataGrabber
|
396
421
|
(default None).
|
397
422
|
|
@@ -88,7 +88,7 @@ def test_run_single_element(
|
|
88
88
|
datagrabber=datagrabber,
|
89
89
|
markers=markers,
|
90
90
|
storage=storage,
|
91
|
-
elements=["sub-01"],
|
91
|
+
elements=[("sub-01",)],
|
92
92
|
)
|
93
93
|
# Check files
|
94
94
|
files = list(tmp_path.glob("*.sqlite"))
|
@@ -116,7 +116,7 @@ def test_run_single_element_with_preprocessing(
|
|
116
116
|
storage["uri"] = str((tmp_path / "out.sqlite").resolve())
|
117
117
|
# Run operations
|
118
118
|
run(
|
119
|
-
workdir=tmp_path,
|
119
|
+
workdir={"path": tmp_path, "cleanup": False},
|
120
120
|
datagrabber={
|
121
121
|
"kind": "PartlyCloudyTestingDataGrabber",
|
122
122
|
"reduce_confounds": False,
|
@@ -128,7 +128,7 @@ def test_run_single_element_with_preprocessing(
|
|
128
128
|
"kind": "fMRIPrepConfoundRemover",
|
129
129
|
}
|
130
130
|
],
|
131
|
-
elements=["sub-01"],
|
131
|
+
elements=[("sub-01",)],
|
132
132
|
)
|
133
133
|
# Check files
|
134
134
|
files = list(tmp_path.glob("*.sqlite"))
|
@@ -164,7 +164,7 @@ def test_run_multi_element_multi_output(
|
|
164
164
|
datagrabber=datagrabber,
|
165
165
|
markers=markers,
|
166
166
|
storage=storage,
|
167
|
-
elements=["sub-01", "sub-03"],
|
167
|
+
elements=[("sub-01",), ("sub-03",)],
|
168
168
|
)
|
169
169
|
# Check files
|
170
170
|
files = list(tmp_path.glob("*.sqlite"))
|
@@ -200,7 +200,7 @@ def test_run_multi_element_single_output(
|
|
200
200
|
datagrabber=datagrabber,
|
201
201
|
markers=markers,
|
202
202
|
storage=storage,
|
203
|
-
elements=["sub-01", "sub-03"],
|
203
|
+
elements=[("sub-01",), ("sub-03",)],
|
204
204
|
)
|
205
205
|
# Check files
|
206
206
|
files = list(tmp_path.glob("*.sqlite"))
|
@@ -287,7 +287,10 @@ def test_queue_correct_yaml_config(
|
|
287
287
|
queue(
|
288
288
|
config={
|
289
289
|
"with": "junifer.testing.registry",
|
290
|
-
"workdir":
|
290
|
+
"workdir": {
|
291
|
+
"path": str(tmp_path.resolve()),
|
292
|
+
"cleanup": True,
|
293
|
+
},
|
291
294
|
"datagrabber": datagrabber,
|
292
295
|
"markers": markers,
|
293
296
|
"storage": storage,
|
@@ -342,7 +345,7 @@ def test_queue_invalid_job_queue(
|
|
342
345
|
with monkeypatch.context() as m:
|
343
346
|
m.chdir(tmp_path)
|
344
347
|
queue(
|
345
|
-
config={"elements": ["sub-001"]},
|
348
|
+
config={"elements": [("sub-001",)]},
|
346
349
|
kind="ABC",
|
347
350
|
)
|
348
351
|
|
@@ -366,13 +369,13 @@ def test_queue_assets_disallow_overwrite(
|
|
366
369
|
m.chdir(tmp_path)
|
367
370
|
# First generate assets
|
368
371
|
queue(
|
369
|
-
config={"elements": ["sub-001"]},
|
372
|
+
config={"elements": [("sub-001",)]},
|
370
373
|
kind="HTCondor",
|
371
374
|
jobname="prevent_overwrite",
|
372
375
|
)
|
373
376
|
# Re-run to trigger error
|
374
377
|
queue(
|
375
|
-
config={"elements": ["sub-001"]},
|
378
|
+
config={"elements": [("sub-001",)]},
|
376
379
|
kind="HTCondor",
|
377
380
|
jobname="prevent_overwrite",
|
378
381
|
)
|
@@ -399,14 +402,14 @@ def test_queue_assets_allow_overwrite(
|
|
399
402
|
m.chdir(tmp_path)
|
400
403
|
# First generate assets
|
401
404
|
queue(
|
402
|
-
config={"elements": ["sub-001"]},
|
405
|
+
config={"elements": [("sub-001",)]},
|
403
406
|
kind="HTCondor",
|
404
407
|
jobname="allow_overwrite",
|
405
408
|
)
|
406
409
|
with caplog.at_level(logging.INFO):
|
407
410
|
# Re-run to overwrite
|
408
411
|
queue(
|
409
|
-
config={"elements": ["sub-001"]},
|
412
|
+
config={"elements": [("sub-001",)]},
|
410
413
|
kind="HTCondor",
|
411
414
|
jobname="allow_overwrite",
|
412
415
|
overwrite=True,
|
@@ -448,10 +451,16 @@ def test_queue_with_imports(
|
|
448
451
|
(tmp_path / "a.py").touch()
|
449
452
|
with caplog.at_level(logging.DEBUG):
|
450
453
|
queue(
|
451
|
-
config={
|
454
|
+
config={
|
455
|
+
"with": with_,
|
456
|
+
"workdir": {
|
457
|
+
"path": str(tmp_path.resolve()),
|
458
|
+
"cleanup": False,
|
459
|
+
},
|
460
|
+
},
|
452
461
|
kind="HTCondor",
|
453
462
|
jobname="with_import_check",
|
454
|
-
elements="sub-001",
|
463
|
+
elements=[("sub-001",)],
|
455
464
|
)
|
456
465
|
assert "Copying" in caplog.text
|
457
466
|
assert "Queue done" in caplog.text
|
@@ -465,10 +474,8 @@ def test_queue_with_imports(
|
|
465
474
|
@pytest.mark.parametrize(
|
466
475
|
"elements",
|
467
476
|
[
|
468
|
-
"sub-001",
|
469
|
-
["sub-001"],
|
470
|
-
["sub-001", "sub-002"],
|
471
|
-
("sub-001", "ses-001"),
|
477
|
+
[("sub-001",)],
|
478
|
+
[("sub-001",), ("sub-002",)],
|
472
479
|
[("sub-001", "ses-001")],
|
473
480
|
[("sub-001", "ses-001"), ("sub-001", "ses-002")],
|
474
481
|
],
|
@@ -477,7 +484,7 @@ def test_queue_with_elements(
|
|
477
484
|
tmp_path: Path,
|
478
485
|
monkeypatch: pytest.MonkeyPatch,
|
479
486
|
caplog: pytest.LogCaptureFixture,
|
480
|
-
elements:
|
487
|
+
elements: list[tuple[str, ...]],
|
481
488
|
) -> None:
|
482
489
|
"""Test queue with elements.
|
483
490
|
|
@@ -489,7 +496,7 @@ def test_queue_with_elements(
|
|
489
496
|
The pytest.MonkeyPatch object.
|
490
497
|
caplog : pytest.LogCaptureFixture
|
491
498
|
The pytest.LogCaptureFixture object.
|
492
|
-
elements :
|
499
|
+
elements : list of tuple
|
493
500
|
The parametrized elements for the queue.
|
494
501
|
|
495
502
|
"""
|
@@ -562,7 +569,7 @@ def test_reset_run(
|
|
562
569
|
datagrabber=datagrabber,
|
563
570
|
markers=markers,
|
564
571
|
storage=storage,
|
565
|
-
elements=["sub-01"],
|
572
|
+
elements=[("sub-01",)],
|
566
573
|
)
|
567
574
|
# Reset operation
|
568
575
|
reset(config={"storage": storage})
|
@@ -642,13 +649,13 @@ def test_reset_queue(
|
|
642
649
|
@pytest.mark.parametrize(
|
643
650
|
"elements",
|
644
651
|
[
|
645
|
-
["sub-01"],
|
652
|
+
[("sub-01",)],
|
646
653
|
None,
|
647
654
|
],
|
648
655
|
)
|
649
656
|
def test_list_elements(
|
650
657
|
datagrabber: dict[str, str],
|
651
|
-
elements: Optional[list[str]],
|
658
|
+
elements: Optional[list[tuple[str, ...]]],
|
652
659
|
) -> None:
|
653
660
|
"""Test elements listing.
|
654
661
|
|
@@ -117,15 +117,16 @@ def run(
|
|
117
117
|
filepath : click.Path
|
118
118
|
The filepath to the configuration file.
|
119
119
|
element : tuple of str
|
120
|
-
The element to operate on.
|
120
|
+
The element(s) to operate on.
|
121
121
|
verbose : click.Choice
|
122
122
|
The verbosity level: warning, info or debug (default "info").
|
123
123
|
|
124
124
|
"""
|
125
|
+
# Setup logging
|
125
126
|
configure_logging(level=verbose)
|
126
127
|
# TODO(synchon): add validation
|
127
128
|
# Parse YAML
|
128
|
-
config = parse_yaml(filepath)
|
129
|
+
config = parse_yaml(filepath)
|
129
130
|
# Retrieve working directory
|
130
131
|
workdir = config["workdir"]
|
131
132
|
# Fetch datagrabber
|
@@ -179,9 +180,12 @@ def collect(filepath: click.Path, verbose: Union[str, int]) -> None:
|
|
179
180
|
The verbosity level: warning, info or debug (default "info").
|
180
181
|
|
181
182
|
"""
|
183
|
+
# Setup logging
|
182
184
|
configure_logging(level=verbose)
|
183
185
|
# TODO: add validation
|
184
|
-
|
186
|
+
# Parse YAML
|
187
|
+
config = parse_yaml(filepath)
|
188
|
+
# Fetch storage
|
185
189
|
storage = config["storage"]
|
186
190
|
# Perform operation
|
187
191
|
cli_func.collect(storage=storage)
|
@@ -206,7 +210,7 @@ def collect(filepath: click.Path, verbose: Union[str, int]) -> None:
|
|
206
210
|
)
|
207
211
|
def queue(
|
208
212
|
filepath: click.Path,
|
209
|
-
element: str,
|
213
|
+
element: tuple[str],
|
210
214
|
overwrite: bool,
|
211
215
|
submit: bool,
|
212
216
|
verbose: Union[str, int],
|
@@ -219,8 +223,8 @@ def queue(
|
|
219
223
|
----------
|
220
224
|
filepath : click.Path
|
221
225
|
The filepath to the configuration file.
|
222
|
-
element : str
|
223
|
-
The element to operate
|
226
|
+
element : tuple of str
|
227
|
+
The element(s) to operate on.
|
224
228
|
overwrite : bool
|
225
229
|
Whether to overwrite existing directory.
|
226
230
|
submit : bool
|
@@ -228,15 +232,26 @@ def queue(
|
|
228
232
|
verbose : click.Choice
|
229
233
|
The verbosity level: warning, info or debug (default "info").
|
230
234
|
|
235
|
+
Raises
|
236
|
+
------
|
237
|
+
ValueError
|
238
|
+
If no ``queue`` section is found in the YAML.
|
239
|
+
|
231
240
|
"""
|
241
|
+
# Setup logging
|
232
242
|
configure_logging(level=verbose)
|
233
243
|
# TODO: add validation
|
244
|
+
# Parse YAML
|
234
245
|
config = parse_yaml(filepath) # type: ignore
|
235
|
-
|
246
|
+
# Check queue section
|
236
247
|
if "queue" not in config:
|
237
248
|
raise_error(f"No queue configuration found in {filepath}.")
|
249
|
+
# Parse elements
|
250
|
+
elements = parse_elements(element, config)
|
251
|
+
# Separate out queue section
|
238
252
|
queue_config = config.pop("queue")
|
239
253
|
kind = queue_config.pop("kind")
|
254
|
+
# Perform operation
|
240
255
|
cli_func.queue(
|
241
256
|
config=config,
|
242
257
|
kind=kind,
|
@@ -366,6 +381,7 @@ def reset(
|
|
366
381
|
The verbosity level: warning, info or debug (default "info").
|
367
382
|
|
368
383
|
"""
|
384
|
+
# Setup logging
|
369
385
|
configure_logging(level=verbose)
|
370
386
|
# Parse YAML
|
371
387
|
config = parse_yaml(filepath)
|
@@ -408,7 +424,7 @@ def list_elements(
|
|
408
424
|
filepath : click.Path
|
409
425
|
The filepath to the configuration file.
|
410
426
|
element : tuple of str
|
411
|
-
The element to operate on.
|
427
|
+
The element(s) to operate on.
|
412
428
|
output_file : click.Path or None
|
413
429
|
The path to write the output to. If not None, writing to
|
414
430
|
stdout is not performed.
|
@@ -416,9 +432,10 @@ def list_elements(
|
|
416
432
|
The verbosity level: warning, info or debug (default "info").
|
417
433
|
|
418
434
|
"""
|
435
|
+
# Setup logging
|
419
436
|
configure_logging(level=verbose)
|
420
437
|
# Parse YAML
|
421
|
-
config = parse_yaml(filepath)
|
438
|
+
config = parse_yaml(filepath)
|
422
439
|
# Fetch datagrabber
|
423
440
|
datagrabber = config["datagrabber"]
|
424
441
|
# Parse elements
|
@@ -140,7 +140,9 @@ def parse_yaml(filepath: Union[str, Path]) -> dict: # noqa: C901
|
|
140
140
|
return contents
|
141
141
|
|
142
142
|
|
143
|
-
def parse_elements(
|
143
|
+
def parse_elements(
|
144
|
+
element: tuple[str, ...], config: dict
|
145
|
+
) -> Union[list[tuple[str, ...]], None]:
|
144
146
|
"""Parse elements from cli.
|
145
147
|
|
146
148
|
Parameters
|
@@ -170,7 +172,7 @@ def parse_elements(element: tuple[str], config: dict) -> Union[list, None]:
|
|
170
172
|
"""
|
171
173
|
logger.debug(f"Parsing elements: {element}")
|
172
174
|
# Early return None to continue with all elements
|
173
|
-
if
|
175
|
+
if not element:
|
174
176
|
return None
|
175
177
|
# Check if the element is a file for single element;
|
176
178
|
# if yes, then parse elements from it
|
@@ -17,7 +17,7 @@ from datalad.support.exceptions import IncompleteResultsError
|
|
17
17
|
from datalad.support.gitrepo import GitRepo
|
18
18
|
|
19
19
|
from ..pipeline import WorkDirManager
|
20
|
-
from ..utils import logger, raise_error, warn_with_log
|
20
|
+
from ..utils import config, logger, raise_error, warn_with_log
|
21
21
|
from .base import BaseDataGrabber
|
22
22
|
|
23
23
|
|
@@ -143,27 +143,49 @@ class DataladDataGrabber(BaseDataGrabber):
|
|
143
143
|
"""
|
144
144
|
return super().datadir / self._rootdir
|
145
145
|
|
146
|
-
def _get_dataset_id_remote(self) -> str:
|
146
|
+
def _get_dataset_id_remote(self) -> tuple[str, bool]:
|
147
147
|
"""Get the dataset ID from the remote.
|
148
148
|
|
149
149
|
Returns
|
150
150
|
-------
|
151
151
|
str
|
152
152
|
The dataset ID.
|
153
|
+
bool
|
154
|
+
Whether the dataset is dirty.
|
155
|
+
|
156
|
+
Raises
|
157
|
+
------
|
158
|
+
ValueError
|
159
|
+
If the dataset ID cannot be obtained from the remote.
|
153
160
|
|
154
161
|
"""
|
155
162
|
remote_id = None
|
163
|
+
is_dirty = False
|
156
164
|
with tempfile.TemporaryDirectory() as tmpdir:
|
157
|
-
|
158
|
-
|
159
|
-
|
165
|
+
if not config.get("datagrabber.skipidcheck", False):
|
166
|
+
logger.debug(f"Querying {self.uri} for dataset ID")
|
167
|
+
repo = GitRepo.clone(
|
168
|
+
self.uri, path=tmpdir, clone_options=["-n", "--depth=1"]
|
169
|
+
)
|
170
|
+
repo.checkout(name=".datalad/config", options=["HEAD"])
|
171
|
+
remote_id = repo.config.get("datalad.dataset.id", None)
|
172
|
+
logger.debug(f"Got remote dataset ID = {remote_id}")
|
173
|
+
|
174
|
+
if not config.get("datagrabber.skipdirtycheck", False):
|
175
|
+
is_dirty = repo.dirty
|
176
|
+
else:
|
177
|
+
logger.debug("Skipping dirty check")
|
178
|
+
is_dirty = False
|
179
|
+
else:
|
180
|
+
logger.debug("Skipping dataset ID check")
|
181
|
+
remote_id = self._dataset.id
|
182
|
+
is_dirty = False
|
183
|
+
logger.debug(
|
184
|
+
f"Remote dataset is {'' if is_dirty else 'not'} dirty"
|
160
185
|
)
|
161
|
-
repo.checkout(name=".datalad/config", options=["HEAD"])
|
162
|
-
remote_id = repo.config.get("datalad.dataset.id", None)
|
163
|
-
logger.debug(f"Got remote dataset ID = {remote_id}")
|
164
186
|
if remote_id is None:
|
165
187
|
raise_error("Could not get dataset ID from remote")
|
166
|
-
return remote_id
|
188
|
+
return remote_id, is_dirty
|
167
189
|
|
168
190
|
def _dataset_get(self, out: dict) -> dict:
|
169
191
|
"""Get the dataset found from the path in ``out``.
|
@@ -178,6 +200,11 @@ class DataladDataGrabber(BaseDataGrabber):
|
|
178
200
|
dict
|
179
201
|
The unmodified input dictionary.
|
180
202
|
|
203
|
+
Raises
|
204
|
+
------
|
205
|
+
datalad.support.exceptions.IncompleteResultsError
|
206
|
+
If there is a datalad-related problem while fetching data.
|
207
|
+
|
181
208
|
"""
|
182
209
|
to_get = []
|
183
210
|
for type_val in out.values():
|
@@ -230,6 +257,8 @@ class DataladDataGrabber(BaseDataGrabber):
|
|
230
257
|
------
|
231
258
|
ValueError
|
232
259
|
If the dataset is already installed but with a different ID.
|
260
|
+
datalad.support.exceptions.IncompleteResultsError
|
261
|
+
If there is a datalad-related problem while cloning dataset.
|
233
262
|
|
234
263
|
"""
|
235
264
|
isinstalled = dl.Dataset(self._datadir).is_installed()
|
@@ -238,23 +267,23 @@ class DataladDataGrabber(BaseDataGrabber):
|
|
238
267
|
self._got_files = []
|
239
268
|
self._dataset: dl.Dataset = dl.Dataset(self._datadir)
|
240
269
|
|
241
|
-
|
270
|
+
# Check if dataset is already installed with a different ID
|
271
|
+
remote_id, is_dirty = self._get_dataset_id_remote()
|
242
272
|
if remote_id != self._dataset.id:
|
243
273
|
raise_error(
|
244
274
|
"Dataset already installed but with a different "
|
245
275
|
f"ID: {self._dataset.id} (local) != {remote_id} (remote)"
|
246
276
|
)
|
247
277
|
|
248
|
-
#
|
249
|
-
|
250
|
-
if
|
251
|
-
self.datalad_dirty = True
|
278
|
+
# Conditional reporting on dataset dirtiness
|
279
|
+
self.datalad_dirty = is_dirty
|
280
|
+
if self.datalad_dirty:
|
252
281
|
warn_with_log(
|
253
|
-
"At least one file is not clean,
|
254
|
-
"
|
282
|
+
"At least one file is not clean, "
|
283
|
+
f"marking dataset (id: {self._dataset.id}) as dirty."
|
255
284
|
)
|
256
285
|
else:
|
257
|
-
logger.debug("Dataset is clean")
|
286
|
+
logger.debug(f"Dataset (id: {self._dataset.id}) is clean")
|
258
287
|
|
259
288
|
else:
|
260
289
|
logger.debug(f"Installing dataset {self.uri} to {self._datadir}")
|
{junifer-0.0.6.dev277 → junifer-0.0.6.dev299}/junifer/datagrabber/tests/test_datalad_base.py
RENAMED
@@ -3,12 +3,14 @@
|
|
3
3
|
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
4
4
|
# License: AGPL
|
5
5
|
|
6
|
+
import warnings
|
6
7
|
from pathlib import Path
|
7
8
|
|
8
9
|
import datalad.api as dl
|
9
10
|
import pytest
|
10
11
|
|
11
12
|
from junifer.datagrabber import DataladDataGrabber
|
13
|
+
from junifer.utils import config
|
12
14
|
|
13
15
|
|
14
16
|
_testing_dataset = {
|
@@ -94,6 +96,12 @@ def test_DataladDataGrabber_install_errors(
|
|
94
96
|
with pytest.raises(ValueError, match=r"different ID"):
|
95
97
|
with dg:
|
96
98
|
pass
|
99
|
+
# Set config to skip id check and test
|
100
|
+
config.set(key="datagrabber.skipidcheck", val=True)
|
101
|
+
with dg:
|
102
|
+
pass
|
103
|
+
# Reset config
|
104
|
+
config.delete("datagrabber.skipidcheck")
|
97
105
|
|
98
106
|
elem1_t1w = datadir / "example_bids/sub-01/anat/sub-01_T1w.nii.gz"
|
99
107
|
elem1_t1w.unlink()
|
@@ -104,6 +112,14 @@ def test_DataladDataGrabber_install_errors(
|
|
104
112
|
with pytest.warns(RuntimeWarning, match=r"one file is not clean"):
|
105
113
|
with dg:
|
106
114
|
pass
|
115
|
+
# Set config to skip dirty check and test
|
116
|
+
with warnings.catch_warnings():
|
117
|
+
warnings.simplefilter("error")
|
118
|
+
config.set(key="datagrabber.skipdirtycheck", val=True)
|
119
|
+
with dg:
|
120
|
+
pass
|
121
|
+
# Reset config
|
122
|
+
config.delete("datagrabber.skipdirtycheck")
|
107
123
|
|
108
124
|
|
109
125
|
def test_DataladDataGrabber_clone_cleanup(
|
@@ -246,7 +262,7 @@ def test_DataladDataGrabber_previously_cloned(
|
|
246
262
|
meta = elem1["BOLD"]["meta"]
|
247
263
|
assert "datagrabber" in meta
|
248
264
|
assert "datalad_dirty" in meta["datagrabber"]
|
249
|
-
assert meta["datagrabber"]["datalad_dirty"] is
|
265
|
+
assert meta["datagrabber"]["datalad_dirty"] is True
|
250
266
|
assert "datalad_commit_id" in meta["datagrabber"]
|
251
267
|
assert meta["datagrabber"]["datalad_commit_id"] == commit
|
252
268
|
assert "datalad_id" in meta["datagrabber"]
|
@@ -326,7 +342,7 @@ def test_DataladDataGrabber_previously_cloned_and_get(
|
|
326
342
|
meta = elem1["BOLD"]["meta"]
|
327
343
|
assert "datagrabber" in meta
|
328
344
|
assert "datalad_dirty" in meta["datagrabber"]
|
329
|
-
assert meta["datagrabber"]["datalad_dirty"] is
|
345
|
+
assert meta["datagrabber"]["datalad_dirty"] is True
|
330
346
|
assert "datalad_commit_id" in meta["datagrabber"]
|
331
347
|
assert meta["datagrabber"]["datalad_commit_id"] == commit
|
332
348
|
assert "datalad_id" in meta["datagrabber"]
|
@@ -30,6 +30,9 @@ class WorkDirManager(metaclass=Singleton):
|
|
30
30
|
workdir : str or pathlib.Path, optional
|
31
31
|
The path to the super-directory. If None, "TMPDIR/junifer" is used
|
32
32
|
where TMPDIR is the platform-dependent temporary directory.
|
33
|
+
cleanup : bool, optional
|
34
|
+
If False, the directories are not cleaned up after the object is
|
35
|
+
destroyed. This is useful for debugging purposes (default True).
|
33
36
|
|
34
37
|
Attributes
|
35
38
|
----------
|
@@ -39,14 +42,11 @@ class WorkDirManager(metaclass=Singleton):
|
|
39
42
|
The path to the element directory.
|
40
43
|
root_tempdir : pathlib.Path or None
|
41
44
|
The path to the root temporary directory.
|
42
|
-
cleanup : bool, optional
|
43
|
-
If False, the directories are not cleaned up after the object is
|
44
|
-
destroyed. This is useful for debugging purposes (default True).
|
45
45
|
|
46
46
|
"""
|
47
47
|
|
48
48
|
def __init__(
|
49
|
-
self, workdir: Optional[Union[str, Path]] = None, cleanup=True
|
49
|
+
self, workdir: Optional[Union[str, Path]] = None, cleanup: bool = True
|
50
50
|
) -> None:
|
51
51
|
"""Initialize the class."""
|
52
52
|
self._workdir = Path(workdir) if isinstance(workdir, str) else workdir
|