junifer 0.0.6.dev258__tar.gz → 0.0.6.dev277__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.dev258 → junifer-0.0.6.dev277}/PKG-INFO +1 -1
- junifer-0.0.6.dev277/docs/changes/newsfragments/398.bugfix +1 -0
- junifer-0.0.6.dev277/docs/changes/newsfragments/401.feature +1 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/_version.py +2 -2
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/functions.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/parser.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/masks/_masks.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/template_spaces.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/multiple.py +6 -2
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/pattern.py +58 -52
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/pattern_validation_mixin.py +3 -3
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/tests/test_datalad_base.py +2 -2
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/tests/test_multiple.py +48 -2
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/tests/test_pattern_datalad.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/stats.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/typing/__init__.pyi +4 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/typing/_typing.py +11 -5
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/__init__.pyi +3 -0
- junifer-0.0.6.dev277/junifer/utils/_config.py +110 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/helpers.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/singleton.py +1 -1
- junifer-0.0.6.dev277/junifer/utils/tests/test_config.py +59 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer.egg-info/PKG-INFO +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer.egg-info/SOURCES.txt +4 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/tools/create_bids_example_dataset.py +2 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/tools/create_bids_example_dataset_sessions.py +2 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.dockerignore +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/dependabot.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/pull_request_template.md +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/workflows/ci-docs.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/workflows/ci.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/workflows/docker-ci-publish.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/workflows/docker-docs-publish.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/workflows/docs-preview.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/workflows/docs.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/workflows/lint.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.github/workflows/pypi.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.gitignore +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.gitmodules +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/.pre-commit-config.yaml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/AUTHORS.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/Dockerfile-ci +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/Dockerfile-docs +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/LICENSE.md +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/README.md +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/codecov.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/conda-env.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/Makefile +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/_static/css/custom.css +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/_static/js/custom.js +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/_templates/versions.html +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/api.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/cli.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/configs.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/data.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/datagrabbers.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/datareaders.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/index.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/markers.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/nilearn.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/onthefly.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/pipeline.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/preprocessing.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/stats.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/storage.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/testing.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/api/utils.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/builtin.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/contributors.inc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/.gitignore +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/335.enh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/354.feature +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/355.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/356.bugfix +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/357.enh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/358.doc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/359.doc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/360.bugfix +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/361.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/362.feature +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/367.enh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/368.enh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/369.bugfix +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/370.bugfix +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/372.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/373.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/374.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/380.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/382.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/383.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/384.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/386.bugfix +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/387.change +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/387.feature +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/388.bugfix +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/389.enh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/390.change +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/390.enh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/391.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/392.feature +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/changes/newsfragments/393.misc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/conf.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/contribution.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/extending/coordinates.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/extending/datagrabber.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/extending/dependencies.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/extending/extension.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/extending/index.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/extending/marker.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/extending/masks.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/extending/parcellations.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/extending/preprocessor.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/faq.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/help.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/images/junifer_logo.png +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/index.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/installation.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/links.inc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/maintaining.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/redirect.html +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/starting.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/understanding/data.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/understanding/datagrabber.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/understanding/datareader.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/understanding/index.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/understanding/marker.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/understanding/pipeline.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/understanding/preprocess.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/understanding/storage.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/using/codeless.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/using/index.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/using/masks.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/using/queueing.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/using/running.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/docs/whats_new.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/README.rst +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/norun_hcpfc_pearson.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/norun_ukbvm_gmd.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/run_compute_parcel_mean.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/run_datagrabber_bids_datalad.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/run_ets_rss_marker.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/run_junifer_julearn.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/run_run_gmd_mean.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/yamls/gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/examples/yamls/ukb_gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/ignore_words.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/decorators.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/queue_context/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/queue_context/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/queue_context/htcondor_adapter.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/queue_context/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/queue_context/queue_context_adapter.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/afni/3dRSFC +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/afni/3dReHo +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/afni/afni +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/afni/run_afni_docker.sh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/ants/ResampleImage +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/ants/antsApplyTransforms +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/ants/run_ants_docker.sh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/freesurfer/mri_binarize +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/freesurfer/mri_mc +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/freesurfer/mri_pretess +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/freesurfer/mris_convert +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/fsl/applywarp +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/fsl/flirt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/fsl/img2imgcoord +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/fsl/std2imgcoord +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/run_conda.bash +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/run_conda.zsh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/run_venv.bash +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/res/run_venv.zsh +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/api/tests/test_functions.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/cli.py +8 -8
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/tests/test_cli.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/tests/test_cli_utils.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/tests/test_parser.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/cli/utils.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/configs/juseless/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/conftest.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/_dispatch.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/CogAC_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/CogAR_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/Empathy_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/Motor_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/MultiTask_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/PhysioStress_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/Rew_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/Somatosensory_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/ToM_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/VigAtt_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/WM_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/eMDN_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/eSAD_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/VOIs/meta/extDMN_VOIs.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/_coordinates.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/masks/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/masks/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/masks/_ants_mask_warper.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/masks/_fsl_mask_warper.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/masks/tests/test_masks.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/parcellations/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/parcellations/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/parcellations/_parcellations.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/pipeline_data_registry_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/tests/test_data_utils.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/tests/test_template_spaces.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/data/utils.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/aomic/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/aomic/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/aomic/id1000.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/aomic/piop1.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/aomic/piop2.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/aomic/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/datalad_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/hcp1200/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/hcp1200/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/pattern_datalad.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/tests/test_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/tests/test_pattern.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datareader/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datareader/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datareader/default.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datareader/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datareader/tests/test_default_reader.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/h5io/h5io/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/h5io/h5io/_h5io.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/h5io/h5io/_version.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/h5io/h5io/chunked_array.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/h5io/h5io/chunked_list.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/nilearn/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/nilearn/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/nilearn/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/brainprint.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/complexity_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/hurst_exponent.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/perm_entropy.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/range_entropy.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/range_entropy_auc.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/sample_entropy.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/ets_rss.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/falff/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/falff/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/falff/_afni_falff.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/falff/_junifer_falff.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/falff/falff_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/falff/falff_parcels.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/falff/falff_spheres.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/falff/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/parcel_aggregation.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/reho/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/reho/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/reho/_afni_reho.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/reho/_junifer_reho.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/reho/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/reho/reho_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/reho/reho_parcels.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/reho/reho_spheres.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/sphere_aggregation.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/temporal_snr/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/temporal_snr/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/temporal_snr/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/tests/test_brainprint.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/tests/test_ets_rss.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/tests/test_marker_utils.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/tests/test_markers_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/markers/utils.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/onthefly/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/onthefly/_brainprint.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/onthefly/read_transform.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/onthefly/tests/test_read_transform.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/marker_collection.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/pipeline_component_registry.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/pipeline_step_mixin.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/tests/test_marker_collection.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/update_meta_mixin.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/utils.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/pipeline/workdir_manager.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/confounds/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/confounds/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/confounds/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/smoothing/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/smoothing/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/smoothing/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/smoothing/smoothing.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/warping/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/warping/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/warping/_ants_warper.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/warping/_fsl_warper.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/warping/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/warping/space_warper.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/hdf5.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/pandas_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/sqlite.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/tests/test_hdf5.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/tests/test_pandas_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/tests/test_sqlite.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/tests/test_storage_base.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/tests/test_utils.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/storage/utils.py +2 -2
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/__init__.pyi +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/datagrabbers.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/registry.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/tests/test_testing_registry.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/testing/utils.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/tests/test_main.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/tests/test_stats.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/typing/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/__init__.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/_yaml.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/fs.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/logging.py +1 -1
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/py.typed +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/tests/test_fs.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/tests/test_helpers.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/utils/tests/test_logging.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer.egg-info/dependency_links.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer.egg-info/entry_points.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer.egg-info/requires.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer.egg-info/top_level.txt +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/pyproject.toml +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/setup.cfg +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/setup.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/tools/create_aomic1000_example_dataset.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/tools/create_aomicpiop1_example_dataset.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/tools/create_aomicpiop2_example_dataset.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/tools/create_hcp1200_example_dataset.py +0 -0
- {junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/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.dev277
|
4
4
|
Summary: JUelich NeuroImaging FEature extractoR
|
5
5
|
Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
|
6
6
|
Maintainer-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
|
@@ -0,0 +1 @@
|
|
1
|
+
Fix metadata update for :class:`.MultipleDataGrabber` and adjust :meth:`.PatternDataGrabber.get_elements` to check ``list``-like data type values by `Fede Raimondo`_ and `Synchon Mandal`_
|
@@ -0,0 +1 @@
|
|
1
|
+
Introduce :class:`junifer.utils.ConfigManager` singleton class to manage global configuration by `Fede Raimondo`_
|
@@ -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.dev277'
|
16
|
+
__version_tuple__ = version_tuple = (0, 0, 6, 'dev277')
|
@@ -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:
|
@@ -111,8 +111,12 @@ class MultipleDataGrabber(BaseDataGrabber):
|
|
111
111
|
|
112
112
|
# Update all the metas again
|
113
113
|
for kind in out:
|
114
|
-
|
115
|
-
|
114
|
+
to_update = out[kind]
|
115
|
+
if not isinstance(to_update, list):
|
116
|
+
to_update = [to_update]
|
117
|
+
for t_kind in to_update:
|
118
|
+
self.update_meta(t_kind, "datagrabber")
|
119
|
+
t_kind["meta"]["datagrabber"]["datagrabbers"] = metas
|
116
120
|
return out
|
117
121
|
|
118
122
|
def __enter__(self) -> "MultipleDataGrabber":
|
@@ -13,6 +13,7 @@ from typing import Optional, Union
|
|
13
13
|
import numpy as np
|
14
14
|
|
15
15
|
from ..api.decorators import register_datagrabber
|
16
|
+
from ..typing import DataGrabberPatterns
|
16
17
|
from ..utils import logger, raise_error
|
17
18
|
from .base import BaseDataGrabber
|
18
19
|
from .pattern_validation_mixin import PatternValidationMixin
|
@@ -171,7 +172,7 @@ class PatternDataGrabber(BaseDataGrabber, PatternValidationMixin):
|
|
171
172
|
def __init__(
|
172
173
|
self,
|
173
174
|
types: list[str],
|
174
|
-
patterns:
|
175
|
+
patterns: DataGrabberPatterns,
|
175
176
|
replacements: Union[list[str], str],
|
176
177
|
datadir: Union[str, Path],
|
177
178
|
confounds_format: Optional[str] = None,
|
@@ -478,58 +479,63 @@ class PatternDataGrabber(BaseDataGrabber, PatternValidationMixin):
|
|
478
479
|
t_type = self.types[t_idx]
|
479
480
|
types_element = set()
|
480
481
|
|
481
|
-
#
|
482
|
-
|
483
|
-
# Conditional
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
for
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
#
|
517
|
-
if
|
518
|
-
elements
|
482
|
+
# Data type dictionary
|
483
|
+
patterns = self.patterns[t_type]
|
484
|
+
# Conditional for list dtype vals like Warp
|
485
|
+
if not isinstance(patterns, list):
|
486
|
+
patterns = [patterns]
|
487
|
+
for t_pattern in patterns:
|
488
|
+
# Conditional fetch of base pattern for getting elements
|
489
|
+
pattern = None
|
490
|
+
# Try for data type pattern
|
491
|
+
pattern = t_pattern.get("pattern")
|
492
|
+
# Try for nested data type pattern
|
493
|
+
if pattern is None and self.partial_pattern_ok:
|
494
|
+
for v in t_pattern.values():
|
495
|
+
if isinstance(v, dict) and "pattern" in v:
|
496
|
+
pattern = v["pattern"]
|
497
|
+
break
|
498
|
+
|
499
|
+
# Replace the pattern
|
500
|
+
(
|
501
|
+
re_pattern,
|
502
|
+
glob_pattern,
|
503
|
+
t_replacements,
|
504
|
+
) = self._replace_patterns_regex(pattern)
|
505
|
+
for fname in self.datadir.glob(glob_pattern):
|
506
|
+
suffix = fname.relative_to(self.datadir).as_posix()
|
507
|
+
m = re.match(re_pattern, suffix)
|
508
|
+
if m is not None:
|
509
|
+
# Find the groups of replacements present in the
|
510
|
+
# pattern. If one replacement is not present, set it
|
511
|
+
# to None. We will take care of this in the
|
512
|
+
# intersection.
|
513
|
+
t_element = tuple([m.group(k) for k in t_replacements])
|
514
|
+
if len(self.replacements) == 1:
|
515
|
+
t_element = t_element[0]
|
516
|
+
types_element.add(t_element)
|
517
|
+
# TODO: does this make sense as elements is always None
|
518
|
+
if elements is None:
|
519
|
+
elements = types_element
|
519
520
|
else:
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
)
|
531
|
-
|
532
|
-
|
521
|
+
# Do the intersection by filtering out elements in which
|
522
|
+
# the replacements are not None
|
523
|
+
if t_replacements == self.replacements:
|
524
|
+
elements.intersection(types_element)
|
525
|
+
else:
|
526
|
+
t_repl_idx = [
|
527
|
+
i
|
528
|
+
for i, v in enumerate(self.replacements)
|
529
|
+
if v in t_replacements
|
530
|
+
]
|
531
|
+
new_elements = set()
|
532
|
+
for t_element in elements:
|
533
|
+
if (
|
534
|
+
tuple(np.array(t_element)[t_repl_idx])
|
535
|
+
in types_element
|
536
|
+
):
|
537
|
+
new_elements.add(t_element)
|
538
|
+
elements = new_elements
|
533
539
|
if elements is None:
|
534
540
|
elements = set()
|
535
541
|
return list(elements)
|
{junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/pattern_validation_mixin.py
RENAMED
@@ -3,8 +3,8 @@
|
|
3
3
|
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
4
4
|
# License: AGPL
|
5
5
|
|
6
|
-
from typing import Union
|
7
6
|
|
7
|
+
from ..typing import DataGrabberPatterns
|
8
8
|
from ..utils import logger, raise_error, warn_with_log
|
9
9
|
|
10
10
|
|
@@ -96,7 +96,7 @@ class PatternValidationMixin:
|
|
96
96
|
def _validate_replacements(
|
97
97
|
self,
|
98
98
|
replacements: list[str],
|
99
|
-
patterns:
|
99
|
+
patterns: DataGrabberPatterns,
|
100
100
|
partial_pattern_ok: bool,
|
101
101
|
) -> None:
|
102
102
|
"""Validate the replacements.
|
@@ -263,7 +263,7 @@ class PatternValidationMixin:
|
|
263
263
|
self,
|
264
264
|
types: list[str],
|
265
265
|
replacements: list[str],
|
266
|
-
patterns:
|
266
|
+
patterns: DataGrabberPatterns,
|
267
267
|
partial_pattern_ok: bool = False,
|
268
268
|
) -> None:
|
269
269
|
"""Validate the patterns.
|
{junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/tests/test_datalad_base.py
RENAMED
@@ -14,8 +14,8 @@ from junifer.datagrabber import DataladDataGrabber
|
|
14
14
|
_testing_dataset = {
|
15
15
|
"example_bids": {
|
16
16
|
"uri": "https://gin.g-node.org/juaml/datalad-example-bids",
|
17
|
-
"commit": "
|
18
|
-
"id": "
|
17
|
+
"commit": "3f288c8725207ae0c9b3616e093e78cda192b570",
|
18
|
+
"id": "582b9696-f13f-42e4-9587-b4e62aa2a8e7",
|
19
19
|
},
|
20
20
|
"example_bids_ses": {
|
21
21
|
"uri": "https://gin.g-node.org/juaml/datalad-example-bids-ses",
|
@@ -29,7 +29,7 @@ def test_MultipleDataGrabber() -> None:
|
|
29
29
|
dg1 = PatternDataladDataGrabber(
|
30
30
|
rootdir=rootdir,
|
31
31
|
uri=repo_uri,
|
32
|
-
types=["T1w"],
|
32
|
+
types=["T1w", "Warp"],
|
33
33
|
patterns={
|
34
34
|
"T1w": {
|
35
35
|
"pattern": (
|
@@ -44,6 +44,28 @@ def test_MultipleDataGrabber() -> None:
|
|
44
44
|
"space": "native",
|
45
45
|
},
|
46
46
|
},
|
47
|
+
"Warp": [
|
48
|
+
{
|
49
|
+
"pattern": (
|
50
|
+
"{subject}/{session}/anat/"
|
51
|
+
"{subject}_{session}_from-MNI152NLin2009cAsym_to-T1w_"
|
52
|
+
"xfm.h5"
|
53
|
+
),
|
54
|
+
"src": "MNI152NLin2009cAsym",
|
55
|
+
"dst": "native",
|
56
|
+
"warper": "ants",
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"pattern": (
|
60
|
+
"{subject}/{session}/anat/"
|
61
|
+
"{subject}_{session}_from-T1w_to-MNI152NLin2009cAsym_"
|
62
|
+
"xfm.h5"
|
63
|
+
),
|
64
|
+
"src": "native",
|
65
|
+
"dst": "MNI152NLin2009cAsym",
|
66
|
+
"warper": "ants",
|
67
|
+
},
|
68
|
+
],
|
47
69
|
},
|
48
70
|
replacements=replacements,
|
49
71
|
)
|
@@ -75,6 +97,7 @@ def test_MultipleDataGrabber() -> None:
|
|
75
97
|
|
76
98
|
types = dg.get_types()
|
77
99
|
assert "T1w" in types
|
100
|
+
assert "Warp" in types
|
78
101
|
assert "BOLD" in types
|
79
102
|
|
80
103
|
expected_subs = [
|
@@ -90,6 +113,7 @@ def test_MultipleDataGrabber() -> None:
|
|
90
113
|
elem = dg[("sub-01", "ses-01")]
|
91
114
|
# Check data types
|
92
115
|
assert "T1w" in elem
|
116
|
+
assert "Warp" in elem
|
93
117
|
assert "BOLD" in elem
|
94
118
|
# Check meta
|
95
119
|
assert "meta" in elem["BOLD"]
|
@@ -111,7 +135,7 @@ def test_MultipleDataGrabber_no_intersection() -> None:
|
|
111
135
|
dg1 = PatternDataladDataGrabber(
|
112
136
|
rootdir=rootdir,
|
113
137
|
uri=_testing_dataset["example_bids"]["uri"],
|
114
|
-
types=["T1w"],
|
138
|
+
types=["T1w", "Warp"],
|
115
139
|
patterns={
|
116
140
|
"T1w": {
|
117
141
|
"pattern": (
|
@@ -119,6 +143,28 @@ def test_MultipleDataGrabber_no_intersection() -> None:
|
|
119
143
|
),
|
120
144
|
"space": "native",
|
121
145
|
},
|
146
|
+
"Warp": [
|
147
|
+
{
|
148
|
+
"pattern": (
|
149
|
+
"{subject}/{session}/anat/"
|
150
|
+
"{subject}_{session}_from-MNI152NLin2009cAsym_to-T1w_"
|
151
|
+
"xfm.h5"
|
152
|
+
),
|
153
|
+
"src": "MNI152NLin2009cAsym",
|
154
|
+
"dst": "native",
|
155
|
+
"warper": "ants",
|
156
|
+
},
|
157
|
+
{
|
158
|
+
"pattern": (
|
159
|
+
"{subject}/{session}/anat/"
|
160
|
+
"{subject}_{session}_from-T1w_to-MNI152NLin2009cAsym_"
|
161
|
+
"xfm.h5"
|
162
|
+
),
|
163
|
+
"src": "native",
|
164
|
+
"dst": "MNI152NLin2009cAsym",
|
165
|
+
"warper": "ants",
|
166
|
+
},
|
167
|
+
],
|
122
168
|
},
|
123
169
|
replacements=replacements,
|
124
170
|
)
|
{junifer-0.0.6.dev258 → junifer-0.0.6.dev277}/junifer/datagrabber/tests/test_pattern_datalad.py
RENAMED
@@ -15,7 +15,7 @@ from junifer.datagrabber import PatternDataladDataGrabber
|
|
15
15
|
_testing_dataset = {
|
16
16
|
"example_bids": {
|
17
17
|
"uri": "https://gin.g-node.org/juaml/datalad-example-bids",
|
18
|
-
"commit": "
|
18
|
+
"commit": "3f288c8725207ae0c9b3616e093e78cda192b570",
|
19
19
|
"id": "8fddff30-6993-420a-9d1e-b5b028c59468",
|
20
20
|
},
|
21
21
|
"example_bids_ses": {
|
@@ -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(
|
@@ -8,6 +8,8 @@ __all__ = [
|
|
8
8
|
"ConditionalDependencies",
|
9
9
|
"ExternalDependencies",
|
10
10
|
"MarkerInOutMappings",
|
11
|
+
"DataGrabberPatterns",
|
12
|
+
"ConfigVal",
|
11
13
|
]
|
12
14
|
|
13
15
|
from ._typing import (
|
@@ -20,4 +22,6 @@ from ._typing import (
|
|
20
22
|
ConditionalDependencies,
|
21
23
|
ExternalDependencies,
|
22
24
|
MarkerInOutMappings,
|
25
|
+
DataGrabberPatterns,
|
26
|
+
ConfigVal,
|
23
27
|
)
|
@@ -19,15 +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",
|
29
|
+
"MarkerLike",
|
30
|
+
"PipelineComponent",
|
31
|
+
"PreprocessorLike",
|
32
|
+
"StorageLike",
|
31
33
|
]
|
32
34
|
|
33
35
|
|
@@ -56,3 +58,7 @@ ConditionalDependencies = Sequence[
|
|
56
58
|
]
|
57
59
|
ExternalDependencies = Sequence[MutableMapping[str, Union[str, Sequence[str]]]]
|
58
60
|
MarkerInOutMappings = MutableMapping[str, MutableMapping[str, str]]
|
61
|
+
DataGrabberPatterns = dict[
|
62
|
+
str, Union[dict[str, str], Sequence[dict[str, str]]]
|
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.dev277
|
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>
|
@@ -94,6 +94,8 @@ docs/changes/newsfragments/390.enh
|
|
94
94
|
docs/changes/newsfragments/391.misc
|
95
95
|
docs/changes/newsfragments/392.feature
|
96
96
|
docs/changes/newsfragments/393.misc
|
97
|
+
docs/changes/newsfragments/398.bugfix
|
98
|
+
docs/changes/newsfragments/401.feature
|
97
99
|
docs/extending/coordinates.rst
|
98
100
|
docs/extending/datagrabber.rst
|
99
101
|
docs/extending/dependencies.rst
|
@@ -467,12 +469,14 @@ junifer/typing/__init__.pyi
|
|
467
469
|
junifer/typing/_typing.py
|
468
470
|
junifer/utils/__init__.py
|
469
471
|
junifer/utils/__init__.pyi
|
472
|
+
junifer/utils/_config.py
|
470
473
|
junifer/utils/_yaml.py
|
471
474
|
junifer/utils/fs.py
|
472
475
|
junifer/utils/helpers.py
|
473
476
|
junifer/utils/logging.py
|
474
477
|
junifer/utils/py.typed
|
475
478
|
junifer/utils/singleton.py
|
479
|
+
junifer/utils/tests/test_config.py
|
476
480
|
junifer/utils/tests/test_fs.py
|
477
481
|
junifer/utils/tests/test_helpers.py
|
478
482
|
junifer/utils/tests/test_logging.py
|