junifer 0.0.6.dev266__tar.gz → 0.0.6.dev285__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.dev266 → junifer-0.0.6.dev285}/PKG-INFO +1 -1
- junifer-0.0.6.dev285/docs/changes/newsfragments/401.feature +1 -0
- junifer-0.0.6.dev285/docs/changes/newsfragments/403.enh +1 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/conf.py +1 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/_version.py +2 -2
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/functions.py +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/parser.py +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/masks/_masks.py +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/template_spaces.py +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/datalad_base.py +46 -17
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/tests/test_datalad_base.py +18 -2
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/stats.py +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/typing/__init__.pyi +2 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/typing/_typing.py +8 -6
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/__init__.pyi +3 -0
- junifer-0.0.6.dev285/junifer/utils/_config.py +110 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/helpers.py +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/singleton.py +1 -1
- junifer-0.0.6.dev285/junifer/utils/tests/test_config.py +59 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer.egg-info/PKG-INFO +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer.egg-info/SOURCES.txt +4 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.dockerignore +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/dependabot.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/pull_request_template.md +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/workflows/ci-docs.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/workflows/docker-ci-publish.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/workflows/docker-docs-publish.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.github/workflows/pypi.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.gitignore +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.gitmodules +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/AUTHORS.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/Dockerfile-ci +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/Dockerfile-docs +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/LICENSE.md +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/README.md +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/codecov.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/conda-env.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/Makefile +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/_templates/versions.html +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/api.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/cli.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/configs.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/data.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/index.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/markers.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/stats.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/storage.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/testing.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/api/utils.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/builtin.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/335.enh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/354.feature +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/355.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/356.bugfix +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/357.enh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/358.doc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/359.doc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/360.bugfix +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/361.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/362.feature +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/367.enh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/368.enh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/369.bugfix +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/370.bugfix +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/372.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/373.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/374.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/380.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/382.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/383.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/384.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/386.bugfix +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/387.change +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/387.feature +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/388.bugfix +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/389.enh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/390.change +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/390.enh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/391.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/392.feature +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/393.misc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/changes/newsfragments/398.bugfix +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/contribution.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/extending/extension.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/extending/index.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/extending/marker.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/extending/masks.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/faq.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/help.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/index.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/installation.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/links.inc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/maintaining.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/redirect.html +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/starting.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/understanding/data.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/understanding/index.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/using/codeless.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/using/index.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/using/masks.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/using/queueing.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/using/running.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/docs/whats_new.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/README.rst +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/ignore_words.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/decorators.py +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/api/tests/test_functions.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/cli.py +8 -8
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/tests/test_cli.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/tests/test_parser.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/cli/utils.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/conftest.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/_dispatch.py +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/CogAC_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/CogAR_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/Empathy_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/Motor_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/MultiTask_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/PhysioStress_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/Rew_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/Somatosensory_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/ToM_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/VigAtt_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/WM_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/eMDN_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/eSAD_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/VOIs/meta/extDMN_VOIs.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/_coordinates.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/masks/_ants_mask_warper.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/masks/_fsl_mask_warper.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/parcellations/_parcellations.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/data/utils.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/multiple.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/pattern.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/tests/test_multiple.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datareader/default.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/markers/utils.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/tests/test_marker_collection.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/pipeline/workdir_manager.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/storage/utils.py +2 -2
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/datagrabbers.py +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/registry.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/testing/utils.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/fs.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/logging.py +1 -1
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/py.typed +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/pyproject.toml +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/setup.cfg +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/setup.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/tools/create_bids_example_dataset.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/tools/create_bids_example_dataset_sessions.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/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.dev285
|
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
|
+
Introduce :class:`junifer.utils.ConfigManager` singleton class to manage global configuration by `Fede Raimondo`_
|
@@ -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.dev285'
|
16
|
+
__version_tuple__ = version_tuple = (0, 0, 6, 'dev285')
|
@@ -24,7 +24,7 @@ from ..typing import DataGrabberLike, MarkerLike, PreprocessorLike, StorageLike
|
|
24
24
|
from ..utils import logger, raise_error, yaml
|
25
25
|
|
26
26
|
|
27
|
-
__all__ = ["
|
27
|
+
__all__ = ["collect", "list_elements", "queue", "reset", "run"]
|
28
28
|
|
29
29
|
|
30
30
|
def _get_datagrabber(datagrabber_config: dict) -> DataGrabberLike:
|
@@ -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.dev266 → junifer-0.0.6.dev285}/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"]
|
@@ -13,7 +13,7 @@ from scipy.stats.mstats import winsorize
|
|
13
13
|
from .utils import logger, raise_error
|
14
14
|
|
15
15
|
|
16
|
-
__all__ = ["
|
16
|
+
__all__ = ["count", "get_aggfunc_by_name", "select", "winsorized_mean"]
|
17
17
|
|
18
18
|
|
19
19
|
def get_aggfunc_by_name(
|
@@ -9,6 +9,7 @@ __all__ = [
|
|
9
9
|
"ExternalDependencies",
|
10
10
|
"MarkerInOutMappings",
|
11
11
|
"DataGrabberPatterns",
|
12
|
+
"ConfigVal",
|
12
13
|
]
|
13
14
|
|
14
15
|
from ._typing import (
|
@@ -22,4 +23,5 @@ from ._typing import (
|
|
22
23
|
ExternalDependencies,
|
23
24
|
MarkerInOutMappings,
|
24
25
|
DataGrabberPatterns,
|
26
|
+
ConfigVal,
|
25
27
|
)
|
@@ -19,16 +19,17 @@ if TYPE_CHECKING:
|
|
19
19
|
|
20
20
|
|
21
21
|
__all__ = [
|
22
|
+
"ConditionalDependencies",
|
23
|
+
"ConfigVal",
|
22
24
|
"DataGrabberLike",
|
23
|
-
"
|
24
|
-
"MarkerLike",
|
25
|
-
"StorageLike",
|
26
|
-
"PipelineComponent",
|
25
|
+
"DataGrabberPatterns",
|
27
26
|
"Dependencies",
|
28
|
-
"ConditionalDependencies",
|
29
27
|
"ExternalDependencies",
|
30
28
|
"MarkerInOutMappings",
|
31
|
-
"
|
29
|
+
"MarkerLike",
|
30
|
+
"PipelineComponent",
|
31
|
+
"PreprocessorLike",
|
32
|
+
"StorageLike",
|
32
33
|
]
|
33
34
|
|
34
35
|
|
@@ -60,3 +61,4 @@ MarkerInOutMappings = MutableMapping[str, MutableMapping[str, str]]
|
|
60
61
|
DataGrabberPatterns = dict[
|
61
62
|
str, Union[dict[str, str], Sequence[dict[str, str]]]
|
62
63
|
]
|
64
|
+
ConfigVal = Union[bool, int, float]
|
@@ -1,15 +1,18 @@
|
|
1
1
|
__all__ = [
|
2
2
|
"make_executable",
|
3
3
|
"configure_logging",
|
4
|
+
"config",
|
4
5
|
"logger",
|
5
6
|
"raise_error",
|
6
7
|
"warn_with_log",
|
7
8
|
"run_ext_cmd",
|
8
9
|
"deep_update",
|
9
10
|
"yaml",
|
11
|
+
"ConfigManager",
|
10
12
|
]
|
11
13
|
|
12
14
|
from .fs import make_executable
|
13
15
|
from .logging import configure_logging, logger, raise_error, warn_with_log
|
16
|
+
from ._config import config, ConfigManager
|
14
17
|
from .helpers import run_ext_cmd, deep_update
|
15
18
|
from ._yaml import yaml
|
@@ -0,0 +1,110 @@
|
|
1
|
+
"""Provide junifer global configuration."""
|
2
|
+
|
3
|
+
# Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
|
4
|
+
# Synchon Mandal <s.mandal@fz-juelich.de>
|
5
|
+
# License: AGPL
|
6
|
+
|
7
|
+
import os
|
8
|
+
from typing import Optional
|
9
|
+
|
10
|
+
from ..typing import ConfigVal
|
11
|
+
from .logging import logger
|
12
|
+
from .singleton import Singleton
|
13
|
+
|
14
|
+
|
15
|
+
__all__ = ["ConfigManager", "config"]
|
16
|
+
|
17
|
+
|
18
|
+
class ConfigManager(metaclass=Singleton):
|
19
|
+
"""Manage configuration parameters.
|
20
|
+
|
21
|
+
Attributes
|
22
|
+
----------
|
23
|
+
_config : dict
|
24
|
+
Configuration parameters.
|
25
|
+
|
26
|
+
"""
|
27
|
+
|
28
|
+
def __init__(self) -> None:
|
29
|
+
"""Initialize the class."""
|
30
|
+
self._config = {}
|
31
|
+
# Initial setup from process env
|
32
|
+
self._reload()
|
33
|
+
|
34
|
+
def _reload(self) -> None:
|
35
|
+
"""Reload env vars."""
|
36
|
+
for t_var in os.environ:
|
37
|
+
if t_var.startswith("JUNIFER_"):
|
38
|
+
# Set correct type
|
39
|
+
var_value = os.environ[t_var]
|
40
|
+
# bool
|
41
|
+
if var_value.lower() == "true":
|
42
|
+
var_value = True
|
43
|
+
elif var_value.lower() == "false":
|
44
|
+
var_value = False
|
45
|
+
# numeric
|
46
|
+
else:
|
47
|
+
try:
|
48
|
+
var_value = int(var_value)
|
49
|
+
except ValueError:
|
50
|
+
try:
|
51
|
+
var_value = float(var_value)
|
52
|
+
except ValueError:
|
53
|
+
pass
|
54
|
+
# Set value
|
55
|
+
var_name = (
|
56
|
+
t_var.replace("JUNIFER_", "").lower().replace("_", ".")
|
57
|
+
)
|
58
|
+
logger.debug(
|
59
|
+
f"Setting `{var_name}` from environment to "
|
60
|
+
f"`{var_value}` (type: {type(var_value)})"
|
61
|
+
)
|
62
|
+
self._config[var_name] = var_value
|
63
|
+
|
64
|
+
def get(self, key: str, default: Optional[ConfigVal] = None) -> ConfigVal:
|
65
|
+
"""Get configuration parameter.
|
66
|
+
|
67
|
+
Parameters
|
68
|
+
----------
|
69
|
+
key : str
|
70
|
+
The configuration key to get.
|
71
|
+
default : bool or int or float or None, optional
|
72
|
+
The default value to return if the key is not found (default None).
|
73
|
+
|
74
|
+
Returns
|
75
|
+
-------
|
76
|
+
bool or int or float
|
77
|
+
The configuration value.
|
78
|
+
|
79
|
+
"""
|
80
|
+
return self._config.get(key, default)
|
81
|
+
|
82
|
+
def set(self, key: str, val: ConfigVal) -> None:
|
83
|
+
"""Set configuration parameter.
|
84
|
+
|
85
|
+
Parameters
|
86
|
+
----------
|
87
|
+
key : str
|
88
|
+
The configuration key to set.
|
89
|
+
val : bool or int or float
|
90
|
+
The value to set ``key`` to.
|
91
|
+
|
92
|
+
"""
|
93
|
+
logger.debug(f"Setting `{key}` to `{val}` (type: {type(val)})")
|
94
|
+
self._config[key] = val
|
95
|
+
|
96
|
+
def delete(self, key: str) -> None:
|
97
|
+
"""Delete configuration parameter.
|
98
|
+
|
99
|
+
Parameters
|
100
|
+
----------
|
101
|
+
key : str
|
102
|
+
The configuration key to delete.
|
103
|
+
|
104
|
+
"""
|
105
|
+
logger.debug(f"Deleting `{key}` from config")
|
106
|
+
_ = self._config.pop(key)
|
107
|
+
|
108
|
+
|
109
|
+
# Initialize here to access from anywhere
|
110
|
+
config = ConfigManager()
|
@@ -0,0 +1,59 @@
|
|
1
|
+
"""Provide tests for ConfigManager."""
|
2
|
+
|
3
|
+
# Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
|
4
|
+
# Synchon Mandal <s.mandal@fz-juelich.de>
|
5
|
+
# License: AGPL
|
6
|
+
|
7
|
+
import os
|
8
|
+
|
9
|
+
import pytest
|
10
|
+
|
11
|
+
from junifer.typing import ConfigVal
|
12
|
+
from junifer.utils import config
|
13
|
+
from junifer.utils._config import ConfigManager
|
14
|
+
|
15
|
+
|
16
|
+
def test_config_manager_singleton() -> None:
|
17
|
+
"""Test that ConfigManager is a singleton."""
|
18
|
+
config_mgr_1 = ConfigManager()
|
19
|
+
config_mgr_2 = ConfigManager()
|
20
|
+
assert id(config_mgr_1) == id(config_mgr_2)
|
21
|
+
|
22
|
+
|
23
|
+
def test_config_manager() -> None:
|
24
|
+
"""Test config operations for ConfigManager."""
|
25
|
+
# Get non-existing with default
|
26
|
+
assert config.get(key="scooby") is None
|
27
|
+
# Set
|
28
|
+
config.set(key="scooby", val=True)
|
29
|
+
# Get existing
|
30
|
+
assert config.get("scooby")
|
31
|
+
# Delete
|
32
|
+
config.delete("scooby")
|
33
|
+
# Get non-existing with default
|
34
|
+
assert config.get(key="scooby") is None
|
35
|
+
|
36
|
+
|
37
|
+
@pytest.mark.parametrize(
|
38
|
+
"val, expected_val",
|
39
|
+
[("TRUE", True), ("FALSE", False), ("1", 1), ("0.0", 0.0)],
|
40
|
+
)
|
41
|
+
def test_config_manager_env_reload(val: str, expected_val: ConfigVal) -> None:
|
42
|
+
"""Test config parsing from env reload.
|
43
|
+
|
44
|
+
Parameters
|
45
|
+
----------
|
46
|
+
val : str
|
47
|
+
The parametrized values.
|
48
|
+
expected_val : bool or int or float
|
49
|
+
The parametrized expected value.
|
50
|
+
|
51
|
+
"""
|
52
|
+
# Set env var
|
53
|
+
os.environ["JUNIFER_TESTME"] = val
|
54
|
+
# Check
|
55
|
+
config._reload()
|
56
|
+
assert config.get("testme") == expected_val
|
57
|
+
# Cleanup
|
58
|
+
del os.environ["JUNIFER_TESTME"]
|
59
|
+
config.delete("testme")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.6.
|
3
|
+
Version: 0.0.6.dev285
|
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>
|
@@ -95,6 +95,8 @@ docs/changes/newsfragments/391.misc
|
|
95
95
|
docs/changes/newsfragments/392.feature
|
96
96
|
docs/changes/newsfragments/393.misc
|
97
97
|
docs/changes/newsfragments/398.bugfix
|
98
|
+
docs/changes/newsfragments/401.feature
|
99
|
+
docs/changes/newsfragments/403.enh
|
98
100
|
docs/extending/coordinates.rst
|
99
101
|
docs/extending/datagrabber.rst
|
100
102
|
docs/extending/dependencies.rst
|
@@ -468,12 +470,14 @@ junifer/typing/__init__.pyi
|
|
468
470
|
junifer/typing/_typing.py
|
469
471
|
junifer/utils/__init__.py
|
470
472
|
junifer/utils/__init__.pyi
|
473
|
+
junifer/utils/_config.py
|
471
474
|
junifer/utils/_yaml.py
|
472
475
|
junifer/utils/fs.py
|
473
476
|
junifer/utils/helpers.py
|
474
477
|
junifer/utils/logging.py
|
475
478
|
junifer/utils/py.typed
|
476
479
|
junifer/utils/singleton.py
|
480
|
+
junifer/utils/tests/test_config.py
|
477
481
|
junifer/utils/tests/test_fs.py
|
478
482
|
junifer/utils/tests/test_helpers.py
|
479
483
|
junifer/utils/tests/test_logging.py
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{junifer-0.0.6.dev266 → junifer-0.0.6.dev285}/.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
|