junifer 0.0.8.dev195__tar.gz → 0.0.8.dev198__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.
Files changed (552) hide show
  1. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/PKG-INFO +1 -1
  2. junifer-0.0.8.dev198/docs/changes/newsfragments/499.enh +1 -0
  3. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/_version.py +3 -3
  4. junifer-0.0.8.dev198/junifer/api/__init__.pyi +19 -0
  5. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/functions.py +133 -1
  6. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/tests/test_functions.py +270 -1
  7. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/cli/cli.py +6 -6
  8. junifer-0.0.8.dev198/junifer/cli/parser.py +107 -0
  9. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer.egg-info/PKG-INFO +1 -1
  10. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer.egg-info/SOURCES.txt +1 -1
  11. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer.egg-info/scm_file_list.json +1 -1
  12. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer.egg-info/scm_version.json +2 -2
  13. junifer-0.0.8.dev195/junifer/api/__init__.pyi +0 -4
  14. junifer-0.0.8.dev195/junifer/cli/parser.py +0 -236
  15. junifer-0.0.8.dev195/junifer/cli/tests/test_parser.py +0 -280
  16. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.dockerignore +0 -0
  17. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  18. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  19. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  20. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  21. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  22. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  23. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/dependabot.yml +0 -0
  24. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/pull_request_template.md +0 -0
  25. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/workflows/check-stale.yml +0 -0
  26. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/workflows/ci-docs.yml +0 -0
  27. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/workflows/ci.yml +0 -0
  28. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/workflows/docker-ci-publish.yml +0 -0
  29. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/workflows/docker-docs-publish.yml +0 -0
  30. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/workflows/docker-publish.yml +0 -0
  31. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/workflows/docs-preview.yml +0 -0
  32. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/workflows/docs.yml +0 -0
  33. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/workflows/lint.yml +0 -0
  34. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.github/workflows/publish.yml +0 -0
  35. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.gitignore +0 -0
  36. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.gitmodules +0 -0
  37. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.pre-commit-config.yaml +0 -0
  38. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/.python-version +0 -0
  39. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/AUTHORS.rst +0 -0
  40. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/Dockerfile +0 -0
  41. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/Dockerfile-ci +0 -0
  42. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/Dockerfile-docs +0 -0
  43. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/LICENSE.md +0 -0
  44. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/README.md +0 -0
  45. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/codecov.yml +0 -0
  46. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/conda-env.yml +0 -0
  47. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/Makefile +0 -0
  48. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/_static/css/custom.css +0 -0
  49. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/_static/js/custom.js +0 -0
  50. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/_templates/versions.html +0 -0
  51. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/api.rst +0 -0
  52. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/cli.rst +0 -0
  53. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/configs.rst +0 -0
  54. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/data.rst +0 -0
  55. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/datagrabbers.rst +0 -0
  56. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/datareaders.rst +0 -0
  57. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/index.rst +0 -0
  58. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/markers.rst +0 -0
  59. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/nilearn.rst +0 -0
  60. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/onthefly.rst +0 -0
  61. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/pipeline.rst +0 -0
  62. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/preprocessing.rst +0 -0
  63. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/stats.rst +0 -0
  64. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/storage.rst +0 -0
  65. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/testing.rst +0 -0
  66. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/api/utils.rst +0 -0
  67. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/builtin.rst +0 -0
  68. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/contributors.inc +0 -0
  69. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/newsfragments/.gitignore +0 -0
  70. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/newsfragments/239.enh +0 -0
  71. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/newsfragments/364.doc +0 -0
  72. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/newsfragments/364.enh +0 -0
  73. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/newsfragments/364.feature +0 -0
  74. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/newsfragments/474.misc +0 -0
  75. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/newsfragments/482.bugfix +0 -0
  76. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/newsfragments/492.bugfix +0 -0
  77. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/newsfragments/502.bugfix +0 -0
  78. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/changes/newsfragments/503.enh +0 -0
  79. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/conf.py +0 -0
  80. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/contribution.rst +0 -0
  81. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/confounds_format.rst +0 -0
  82. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/coordinates.rst +0 -0
  83. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/data_dump_asset.rst +0 -0
  84. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/data_registries.rst +0 -0
  85. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/data_types.rst +0 -0
  86. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/datagrabber.rst +0 -0
  87. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/dependencies.rst +0 -0
  88. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/extension.rst +0 -0
  89. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/index.rst +0 -0
  90. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/logging.rst +0 -0
  91. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/maps.rst +0 -0
  92. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/marker.rst +0 -0
  93. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/masks.rst +0 -0
  94. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/parcellations.rst +0 -0
  95. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/plugins.rst +0 -0
  96. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/extending/preprocessor.rst +0 -0
  97. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/faq.rst +0 -0
  98. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/help.rst +0 -0
  99. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/images/junifer_logo.png +0 -0
  100. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/index.rst +0 -0
  101. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/installation.rst +0 -0
  102. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/links.inc +0 -0
  103. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/maintaining.rst +0 -0
  104. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/redirect.html +0 -0
  105. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/starting.rst +0 -0
  106. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/understanding/data.rst +0 -0
  107. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/understanding/datagrabber.rst +0 -0
  108. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/understanding/datareader.rst +0 -0
  109. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/understanding/index.rst +0 -0
  110. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/understanding/marker.rst +0 -0
  111. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/understanding/pipeline.rst +0 -0
  112. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/understanding/preprocess.rst +0 -0
  113. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/understanding/storage.rst +0 -0
  114. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/using/codeless.rst +0 -0
  115. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/using/configuring.rst +0 -0
  116. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/using/dumping.rst +0 -0
  117. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/using/index.rst +0 -0
  118. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/using/masks.rst +0 -0
  119. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/using/queueing.rst +0 -0
  120. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/using/running.rst +0 -0
  121. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/docs/whats_new.rst +0 -0
  122. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/README.rst +0 -0
  123. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/norun_hcpfc_pearson.py +0 -0
  124. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/norun_ukbvm_gmd.py +0 -0
  125. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/run_compute_parcel_mean.py +0 -0
  126. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/run_datagrabber_bids_datalad.py +0 -0
  127. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/run_ets_rss_marker.py +0 -0
  128. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/run_junifer_julearn.py +0 -0
  129. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/run_run_gmd_mean.py +0 -0
  130. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/yamls/gmd_mean.yaml +0 -0
  131. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  132. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  133. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  134. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/ignore_words.txt +0 -0
  135. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/__init__.py +0 -0
  136. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/__init__.pyi +0 -0
  137. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/__init__.py +0 -0
  138. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/decorators.py +0 -0
  139. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/py.typed +0 -0
  140. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/queue_context/__init__.py +0 -0
  141. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/queue_context/__init__.pyi +0 -0
  142. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  143. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  144. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/queue_context/py.typed +0 -0
  145. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  146. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  147. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  148. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  149. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/afni/3dRSFC +0 -0
  150. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/afni/3dReHo +0 -0
  151. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/afni/afni +0 -0
  152. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  153. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/ants/ResampleImage +0 -0
  154. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/ants/antsApplyTransforms +0 -0
  155. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  156. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  157. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/freesurfer/mri_binarize +0 -0
  158. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/freesurfer/mri_mc +0 -0
  159. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/freesurfer/mri_pretess +0 -0
  160. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/freesurfer/mris_convert +0 -0
  161. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  162. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/fsl/applywarp +0 -0
  163. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/fsl/flirt +0 -0
  164. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/fsl/img2imgcoord +0 -0
  165. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  166. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/fsl/std2imgcoord +0 -0
  167. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/run_conda.bash +0 -0
  168. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/run_conda.zsh +0 -0
  169. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/run_venv.bash +0 -0
  170. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/res/run_venv.zsh +0 -0
  171. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/api/tests/test_decorators.py +0 -0
  172. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/cli/__init__.py +0 -0
  173. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/cli/__init__.pyi +0 -0
  174. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/cli/py.typed +0 -0
  175. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  176. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
  177. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  178. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/cli/tests/test_cli.py +0 -0
  179. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/cli/tests/test_cli_utils.py +0 -0
  180. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/cli/utils.py +0 -0
  181. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/__init__.py +0 -0
  182. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/__init__.pyi +0 -0
  183. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/__init__.py +0 -0
  184. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/__init__.pyi +0 -0
  185. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  186. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  187. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  188. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  189. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  190. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  191. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  192. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  193. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  194. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  195. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  196. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  197. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  198. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/juseless/py.typed +0 -0
  199. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/configs/py.typed +0 -0
  200. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/conftest.py +0 -0
  201. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/__init__.py +0 -0
  202. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/__init__.pyi +0 -0
  203. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/_dispatch.py +0 -0
  204. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/coordinates/__init__.py +0 -0
  205. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/coordinates/__init__.pyi +0 -0
  206. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
  207. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/coordinates/_coordinates.py +0 -0
  208. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
  209. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  210. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/maps/__init__.py +0 -0
  211. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/maps/__init__.pyi +0 -0
  212. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/maps/_ants_maps_warper.py +0 -0
  213. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/maps/_fsl_maps_warper.py +0 -0
  214. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/maps/_maps.py +0 -0
  215. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/maps/tests/test_maps.py +0 -0
  216. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/masks/__init__.py +0 -0
  217. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/masks/__init__.pyi +0 -0
  218. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/masks/_ants_mask_warper.py +0 -0
  219. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/masks/_fsl_mask_warper.py +0 -0
  220. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/masks/_masks.py +0 -0
  221. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/masks/tests/test_masks.py +0 -0
  222. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/parcellations/__init__.py +0 -0
  223. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/parcellations/__init__.pyi +0 -0
  224. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
  225. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
  226. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/parcellations/_parcellations.py +0 -0
  227. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  228. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/pipeline_data_registry_base.py +0 -0
  229. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/py.typed +0 -0
  230. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/template_spaces.py +0 -0
  231. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/tests/test_data_utils.py +0 -0
  232. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/tests/test_dispatch.py +0 -0
  233. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/tests/test_template_spaces.py +0 -0
  234. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/data/utils.py +0 -0
  235. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/__init__.py +0 -0
  236. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/__init__.pyi +0 -0
  237. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/aomic/__init__.py +0 -0
  238. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  239. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/aomic/_types.py +0 -0
  240. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/aomic/id1000.py +0 -0
  241. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/aomic/piop1.py +0 -0
  242. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/aomic/piop2.py +0 -0
  243. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/aomic/py.typed +0 -0
  244. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  245. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  246. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  247. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/base.py +0 -0
  248. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/datalad_base.py +0 -0
  249. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  250. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  251. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  252. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  253. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  254. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/hcp1200/py.typed +0 -0
  255. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  256. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/multiple.py +0 -0
  257. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/pattern.py +0 -0
  258. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/pattern_datalad.py +0 -0
  259. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
  260. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/py.typed +0 -0
  261. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/tests/test_base.py +0 -0
  262. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  263. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  264. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/tests/test_multiple.py +0 -0
  265. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/tests/test_pattern.py +0 -0
  266. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  267. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  268. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datareader/__init__.py +0 -0
  269. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datareader/__init__.pyi +0 -0
  270. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datareader/default.py +0 -0
  271. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datareader/py.typed +0 -0
  272. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/datareader/tests/test_default_reader.py +0 -0
  273. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.codecov.yml +0 -0
  274. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.codespellignore +0 -0
  275. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  276. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  277. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  278. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +0 -0
  279. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.github/dependabot.yml +0 -0
  280. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.github/workflows/build.yml +0 -0
  281. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.github/workflows/code-style.yml +0 -0
  282. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.github/workflows/doc.yml +0 -0
  283. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.github/workflows/publish.yml +0 -0
  284. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.github/workflows/pytest.yml +0 -0
  285. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/.gitignore +0 -0
  286. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/LICENSE +0 -0
  287. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/README.md +0 -0
  288. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  289. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  290. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  291. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  292. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/cli/__init__.py +0 -0
  293. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/cli/help_text.py +0 -0
  294. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/cli/parser.py +0 -0
  295. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/cli/utils.py +0 -0
  296. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
  297. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/commands/sys_info.py +0 -0
  298. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  299. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  300. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  301. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
  302. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +0 -0
  303. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  304. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/Makefile +0 -0
  305. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
  306. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +0 -0
  307. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +0 -0
  308. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +0 -0
  309. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/api/index.rst +0 -0
  310. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/conf.py +0 -0
  311. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/index.rst +0 -0
  312. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/links.inc +0 -0
  313. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/make.bat +0 -0
  314. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/doc/references.bib +0 -0
  315. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/pyproject.toml +0 -0
  316. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/BrainPrint/setup.py +0 -0
  317. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/__init__.py +0 -0
  318. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/__init__.pyi +0 -0
  319. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/.coveragerc +0 -0
  320. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/.gitattributes +0 -0
  321. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/.gitignore +0 -0
  322. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/.travis.yml +0 -0
  323. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/.vscode/launch.json +0 -0
  324. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/.vscode/settings.json +0 -0
  325. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/LICENSE.txt +0 -0
  326. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/MANIFEST.in +0 -0
  327. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/Makefile +0 -0
  328. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/README.rst +0 -0
  329. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/azure-pipelines.yml +0 -0
  330. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/h5io/__init__.py +0 -0
  331. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/h5io/_h5io.py +0 -0
  332. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/h5io/_version.py +0 -0
  333. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  334. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  335. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/h5io/tests/__init__.py +0 -0
  336. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/h5io/tests/test_chunked_array.py +0 -0
  337. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/h5io/tests/test_chunked_list.py +0 -0
  338. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/h5io/tests/test_io.py +0 -0
  339. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/setup.cfg +0 -0
  340. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/setup.py +0 -0
  341. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/h5io/versioneer.py +0 -0
  342. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/nilearn/__init__.py +0 -0
  343. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/nilearn/__init__.pyi +0 -0
  344. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  345. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  346. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/nilearn/py.typed +0 -0
  347. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  348. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  349. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/external/py.typed +0 -0
  350. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/__init__.py +0 -0
  351. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/__init__.pyi +0 -0
  352. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/base.py +0 -0
  353. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/brainprint.py +0 -0
  354. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/__init__.py +0 -0
  355. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/__init__.pyi +0 -0
  356. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/complexity_base.py +0 -0
  357. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/hurst_exponent.py +0 -0
  358. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  359. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/perm_entropy.py +0 -0
  360. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/py.typed +0 -0
  361. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/range_entropy.py +0 -0
  362. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  363. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/sample_entropy.py +0 -0
  364. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  365. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  366. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  367. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  368. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  369. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  370. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  371. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  372. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  373. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/ets_rss.py +0 -0
  374. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/__init__.py +0 -0
  375. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/__init__.pyi +0 -0
  376. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/_afni_falff.py +0 -0
  377. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/_junifer_falff.py +0 -0
  378. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/falff_base.py +0 -0
  379. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/falff_maps.py +0 -0
  380. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/falff_parcels.py +0 -0
  381. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/falff_spheres.py +0 -0
  382. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/py.typed +0 -0
  383. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/tests/test_falff_maps.py +0 -0
  384. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  385. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  386. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/__init__.py +0 -0
  387. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  388. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  389. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +0 -0
  390. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  391. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  392. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  393. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +0 -0
  394. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  395. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  396. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/py.typed +0 -0
  397. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  398. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +0 -0
  399. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  400. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  401. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  402. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +0 -0
  403. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  404. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  405. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/maps_aggregation.py +0 -0
  406. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/parcel_aggregation.py +0 -0
  407. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/py.typed +0 -0
  408. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/__init__.py +0 -0
  409. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/__init__.pyi +0 -0
  410. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/_afni_reho.py +0 -0
  411. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/_junifer_reho.py +0 -0
  412. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/py.typed +0 -0
  413. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/reho_base.py +0 -0
  414. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/reho_maps.py +0 -0
  415. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/reho_parcels.py +0 -0
  416. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/reho_spheres.py +0 -0
  417. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/tests/test_reho_maps.py +0 -0
  418. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  419. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  420. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/sphere_aggregation.py +0 -0
  421. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/__init__.py +0 -0
  422. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  423. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/py.typed +0 -0
  424. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  425. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/temporal_snr_maps.py +0 -0
  426. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  427. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  428. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  429. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +0 -0
  430. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  431. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  432. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/tests/test_brainprint.py +0 -0
  433. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/tests/test_ets_rss.py +0 -0
  434. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/tests/test_maps_aggregation.py +0 -0
  435. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/tests/test_marker_utils.py +0 -0
  436. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/tests/test_markers_base.py +0 -0
  437. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  438. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  439. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/markers/utils.py +0 -0
  440. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/onthefly/__init__.py +0 -0
  441. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/onthefly/__init__.pyi +0 -0
  442. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/onthefly/_brainprint.py +0 -0
  443. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/onthefly/py.typed +0 -0
  444. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/onthefly/read_transform.py +0 -0
  445. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/onthefly/tests/test_read_transform.py +0 -0
  446. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/__init__.py +0 -0
  447. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/__init__.pyi +0 -0
  448. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/_data_object_dumper.py +0 -0
  449. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/marker_collection.py +0 -0
  450. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/pipeline_component_registry.py +0 -0
  451. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  452. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/py.typed +0 -0
  453. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
  454. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/tests/test_marker_collection.py +0 -0
  455. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  456. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  457. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  458. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  459. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/update_meta_mixin.py +0 -0
  460. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/utils.py +0 -0
  461. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/pipeline/workdir_manager.py +0 -0
  462. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/__init__.py +0 -0
  463. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/__init__.pyi +0 -0
  464. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/_temporal_filter.py +0 -0
  465. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/_temporal_slicer.py +0 -0
  466. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/base.py +0 -0
  467. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/confounds/__init__.py +0 -0
  468. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/confounds/__init__.pyi +0 -0
  469. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  470. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/confounds/py.typed +0 -0
  471. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  472. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/py.typed +0 -0
  473. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/smoothing/__init__.py +0 -0
  474. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  475. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  476. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  477. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  478. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/smoothing/py.typed +0 -0
  479. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/smoothing/smoothing.py +0 -0
  480. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  481. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  482. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
  483. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
  484. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/warping/__init__.py +0 -0
  485. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/warping/__init__.pyi +0 -0
  486. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/warping/_ants_warper.py +0 -0
  487. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  488. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/warping/py.typed +0 -0
  489. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/warping/space_warper.py +0 -0
  490. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  491. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/py.typed +0 -0
  492. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/stats.py +0 -0
  493. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/__init__.py +0 -0
  494. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/__init__.pyi +0 -0
  495. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/base.py +0 -0
  496. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/hdf5.py +0 -0
  497. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/pandas_base.py +0 -0
  498. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/py.typed +0 -0
  499. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/sqlite.py +0 -0
  500. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/tests/test_hdf5.py +0 -0
  501. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/tests/test_pandas_base.py +0 -0
  502. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/tests/test_sqlite.py +0 -0
  503. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/tests/test_storage_base.py +0 -0
  504. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/tests/test_utils.py +0 -0
  505. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/storage/utils.py +0 -0
  506. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/__init__.py +0 -0
  507. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/__init__.pyi +0 -0
  508. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  509. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/datagrabbers.py +0 -0
  510. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/py.typed +0 -0
  511. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/registry.py +0 -0
  512. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  513. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  514. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  515. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/tests/test_testing_registry.py +0 -0
  516. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/testing/utils.py +0 -0
  517. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/tests/test_main.py +0 -0
  518. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/tests/test_stats.py +0 -0
  519. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/typing/__init__.py +0 -0
  520. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/typing/__init__.pyi +0 -0
  521. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/typing/_typing.py +0 -0
  522. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/typing/py.typed +0 -0
  523. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/__init__.py +0 -0
  524. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/__init__.pyi +0 -0
  525. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/_config.py +0 -0
  526. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/_yaml.py +0 -0
  527. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/fs.py +0 -0
  528. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/helpers.py +0 -0
  529. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/logging.py +0 -0
  530. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/py.typed +0 -0
  531. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/singleton.py +0 -0
  532. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/tests/test_config.py +0 -0
  533. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/tests/test_fs.py +0 -0
  534. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/tests/test_helpers.py +0 -0
  535. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer/utils/tests/test_logging.py +0 -0
  536. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer.egg-info/dependency_links.txt +0 -0
  537. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer.egg-info/entry_points.txt +0 -0
  538. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer.egg-info/requires.txt +0 -0
  539. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/junifer.egg-info/top_level.txt +0 -0
  540. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/justfile +0 -0
  541. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/pyproject.toml +0 -0
  542. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/setup.cfg +0 -0
  543. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/setup.py +0 -0
  544. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/tools/create_aomic1000_example_dataset.py +0 -0
  545. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/tools/create_aomicpiop1_example_dataset.py +0 -0
  546. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/tools/create_aomicpiop2_example_dataset.py +0 -0
  547. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/tools/create_bids_example_dataset.py +0 -0
  548. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/tools/create_bids_example_dataset_sessions.py +0 -0
  549. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  550. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/tools/create_hcp1200_example_dataset.py +0 -0
  551. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/tox.ini +0 -0
  552. {junifer-0.0.8.dev195 → junifer-0.0.8.dev198}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.8.dev195
3
+ Version: 0.0.8.dev198
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
+ Move ``parse_yaml`` from ``junifer.cli`` to ``junifer.api`` by `Synchon Mandal`_
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.0.8.dev195'
22
- __version_tuple__ = version_tuple = (0, 0, 8, 'dev195')
21
+ __version__ = version = '0.0.8.dev198'
22
+ __version_tuple__ = version_tuple = (0, 0, 8, 'dev198')
23
23
 
24
- __commit_id__ = commit_id = 'g64d583140'
24
+ __commit_id__ = commit_id = 'g61fa4962c'
@@ -0,0 +1,19 @@
1
+ __all__ = [
2
+ "decorators",
3
+ "collect",
4
+ "queue",
5
+ "run",
6
+ "reset",
7
+ "list_elements",
8
+ "parse_yaml",
9
+ ]
10
+
11
+ from . import decorators
12
+ from .functions import (
13
+ collect,
14
+ list_elements,
15
+ parse_yaml,
16
+ reset,
17
+ run,
18
+ queue,
19
+ )
@@ -6,8 +6,11 @@
6
6
  # License: AGPL
7
7
 
8
8
  import atexit
9
+ import importlib
10
+ import importlib.util
9
11
  import os
10
12
  import shutil
13
+ import sys
11
14
  from pathlib import Path
12
15
 
13
16
  import structlog
@@ -32,7 +35,14 @@ from ..typing import (
32
35
  from ..utils import raise_error, warn_with_log, yaml
33
36
 
34
37
 
35
- __all__ = ["collect", "list_elements", "queue", "reset", "run"]
38
+ __all__ = [
39
+ "collect",
40
+ "list_elements",
41
+ "parse_yaml",
42
+ "queue",
43
+ "reset",
44
+ "run",
45
+ ]
36
46
 
37
47
  _log = structlog.get_logger("junifer")
38
48
  logger = _log.bind(pkg="api")
@@ -468,3 +478,125 @@ def list_elements(
468
478
  elements_to_list.append(str_element)
469
479
 
470
480
  return "\n".join(elements_to_list)
481
+
482
+
483
+ def parse_yaml(filepath: str | Path) -> dict: # noqa: C901
484
+ """Parse YAML.
485
+
486
+ Parameters
487
+ ----------
488
+ filepath : str or pathlib.Path
489
+ The filepath to read from.
490
+
491
+ Returns
492
+ -------
493
+ dict
494
+ The contents represented as dictionary.
495
+
496
+ """
497
+ # Convert str to Path
498
+ if not isinstance(filepath, Path):
499
+ filepath = Path(filepath)
500
+
501
+ logger.info(f"Parsing yaml file: {filepath.absolute()!s}")
502
+ # Filepath existence check
503
+ if not filepath.exists():
504
+ raise_error(f"File does not exist: {filepath.absolute()!s}")
505
+ # Filepath reading
506
+ contents = yaml.load(filepath)
507
+ if "elements" in contents:
508
+ if contents["elements"] is None:
509
+ raise_error(
510
+ "The elements key was defined but its content is empty. "
511
+ "Please define the elements to operate on or remove the key."
512
+ )
513
+ # load modules
514
+ if "with" in contents:
515
+ to_load = contents["with"]
516
+ # Convert load modules to list
517
+ if not isinstance(to_load, list):
518
+ to_load = [to_load]
519
+ # Initialize list to have absolute paths for custom modules
520
+ final_to_load = []
521
+ for t_module in to_load:
522
+ if t_module.endswith(".py"):
523
+ logger.debug(f"Importing file: {t_module}")
524
+ # This resolves both absolute and relative paths
525
+ file_path = filepath.parent / t_module
526
+ if not file_path.exists():
527
+ raise_error(
528
+ f"File in 'with' section does not exist: {file_path}"
529
+ )
530
+ # Add the parent directory to the sys.path so that the
531
+ # any imports from this module work correctly
532
+ t_path = str(file_path.parent)
533
+ if t_path not in sys.path:
534
+ sys.path.append(str(file_path.parent))
535
+
536
+ spec = importlib.util.spec_from_file_location(
537
+ t_module, file_path
538
+ )
539
+ module = importlib.util.module_from_spec(spec) # type: ignore
540
+ sys.modules[t_module] = module
541
+ spec.loader.exec_module(module) # type: ignore
542
+
543
+ # Add absolute path to final list
544
+ final_to_load.append(str(file_path.resolve()))
545
+
546
+ # Check if the module has junifer_module_deps function
547
+ if hasattr(module, "junifer_module_deps"):
548
+ logger.debug(
549
+ f"Module {t_module} has junifer_module_deps function"
550
+ )
551
+ # Get the dependencies
552
+ deps = module.junifer_module_deps()
553
+ # Add the dependencies to the final list
554
+ for dep in deps:
555
+ if dep not in final_to_load:
556
+ final_to_load.append(
557
+ str((file_path.parent / dep).resolve())
558
+ )
559
+ else:
560
+ logger.info(f"Importing module: {t_module}")
561
+ importlib.import_module(t_module)
562
+ # Add module to final list
563
+ final_to_load.append(t_module)
564
+
565
+ # Replace modules to be loaded so that custom modules will take the
566
+ # absolute path. This was not the case as found in #224. Similar thing
567
+ # is done with the storage URI below.
568
+ contents["with"] = final_to_load
569
+
570
+ # Compute path for the URI parameter in storage files that are relative
571
+ # This is a tricky thing that appeared in #127. The problem is that
572
+ # the path in the URI parameter is relative to YAML file, not to the
573
+ # current working directory. If we leave it as is in the contents
574
+ # dict, then it will be used later in the ``build`` function as is,
575
+ # which will be computed relative to the current working directory.
576
+ # The solution is to compute the absolute path and replace the
577
+ # relative path in the contents dict with the absolute path.
578
+
579
+ # Check if the storage file is defined
580
+ if "storage" in contents:
581
+ if "uri" in contents["storage"]:
582
+ # Check if the storage file is relative
583
+ uri_path = Path(contents["storage"]["uri"])
584
+ if not uri_path.is_absolute():
585
+ # Compute the absolute path
586
+ contents["storage"]["uri"] = str(
587
+ (filepath.parent / uri_path).resolve()
588
+ )
589
+
590
+ # Allow relative path if queue env kind is venv; same motivation as above
591
+ if "queue" in contents:
592
+ if "env" in contents["queue"]:
593
+ if "venv" == contents["queue"]["env"]["kind"]:
594
+ # Check if the env name is relative
595
+ venv_path = Path(contents["queue"]["env"]["name"])
596
+ if not venv_path.is_absolute():
597
+ # Compute the absolute path
598
+ contents["queue"]["env"]["name"] = str(
599
+ (filepath.parent / venv_path).resolve()
600
+ )
601
+
602
+ return contents
@@ -6,6 +6,7 @@
6
6
  # License: AGPL
7
7
 
8
8
  import logging
9
+ import sys
9
10
  from contextlib import AbstractContextManager, nullcontext
10
11
  from pathlib import Path
11
12
  from typing import Any
@@ -15,7 +16,7 @@ from nibabel.filebasedimages import ImageFileError
15
16
  from ruamel.yaml import YAML
16
17
 
17
18
  import junifer.testing.registry # noqa: F401
18
- from junifer.api import collect, list_elements, queue, reset, run
19
+ from junifer.api import collect, list_elements, parse_yaml, queue, reset, run
19
20
  from junifer.datagrabber.base import BaseDataGrabber
20
21
  from junifer.pipeline import PipelineComponentRegistry
21
22
  from junifer.typing import Elements
@@ -756,3 +757,271 @@ def test_list_elements(
756
757
  """
757
758
  listed_elements = list_elements(datagrabber, elements)
758
759
  assert "sub-01" in listed_elements
760
+
761
+
762
+ def test_parse_yaml_failure() -> None:
763
+ """Test YAML parsing failure."""
764
+ with pytest.raises(ValueError, match="does not exist"):
765
+ parse_yaml("foo.yaml")
766
+
767
+
768
+ def test_parse_yaml_empty_elements_failure(tmp_path: Path) -> None:
769
+ """Test YAML parsing with empty elements failure.
770
+
771
+ Parameters
772
+ ----------
773
+ tmp_path : pathlib.Path
774
+ The path to the test directory.
775
+
776
+ """
777
+ # Write test file
778
+ fname = tmp_path / "test_parse_yaml_empty_elements_failure.yaml"
779
+ fname.write_text("elements:")
780
+ # Check test file
781
+ with pytest.raises(ValueError, match="elements key was defined"):
782
+ parse_yaml(fname)
783
+
784
+
785
+ def test_parse_yaml_success(tmp_path: Path) -> None:
786
+ """Test YAML parsing success.
787
+
788
+ Parameters
789
+ ----------
790
+ tmp_path : pathlib.Path
791
+ The path to the test directory.
792
+
793
+ """
794
+ # Write test file
795
+ fname = tmp_path / "test_parse_yaml_success.yaml"
796
+ fname.write_text("foo: bar")
797
+ # Check test file
798
+ contents = parse_yaml(fname)
799
+ assert "foo" in contents
800
+ assert contents["foo"] == "bar"
801
+
802
+
803
+ def test_parse_yaml_success_with_module_autoload(tmp_path: Path) -> None:
804
+ """Test YAML parsing with single module autoload success.
805
+
806
+ Parameters
807
+ ----------
808
+ tmp_path : pathlib.Path
809
+ The path to the test directory.
810
+
811
+ """
812
+ # Write test file
813
+ fname = tmp_path / "test_parse_yaml_with_single_module_autoload.yaml"
814
+ fname.write_text("foo: bar\nwith: numpy")
815
+ # Check test file
816
+ contents = parse_yaml(fname)
817
+ assert "foo" in contents
818
+ assert contents["foo"] == "bar"
819
+ assert "with" in contents
820
+ assert contents["with"] == ["numpy"]
821
+ assert "numpy" in sys.modules
822
+ assert "junifer.configs.wrong_config" not in sys.modules
823
+
824
+
825
+ def test_parse_yaml_failure_with_multi_module_autoload(tmp_path: Path) -> None:
826
+ """Test YAML parsing with multi module autoload failure.
827
+
828
+ Parameters
829
+ ----------
830
+ tmp_path : pathlib.Path
831
+ The path to the test directory.
832
+
833
+ """
834
+ # Write test file
835
+ fname = tmp_path / "test_parse_yaml_with_multi_module_autoload.yaml"
836
+ fname.write_text(
837
+ "foo: bar\nwith:\n - numpy\n - junifer.testing.wrong_config"
838
+ )
839
+ # Check test file
840
+ with pytest.raises(ImportError, match="wrong_config"):
841
+ parse_yaml(fname)
842
+
843
+
844
+ def test_parse_yaml_with_wrong_path(tmp_path: Path) -> None:
845
+ """Test YAML parsing with wrong paths in with.
846
+
847
+ Parameters
848
+ ----------
849
+ tmp_path : pathlib.Path
850
+ The path to the test directory.
851
+
852
+ """
853
+ t_tmp_path = tmp_path / "test_relative_with"
854
+ # Write yaml that includes a relative path
855
+ yaml_path = t_tmp_path / "yamls"
856
+ yaml_path.mkdir(exist_ok=True, parents=True)
857
+ yaml_fname = yaml_path / "test_parse_yaml_wrong_path.yaml"
858
+
859
+ yaml_fname.write_text("foo: bar\nwith:\n - missingt.py\n - scipy\n")
860
+
861
+ # Check test file
862
+ with pytest.raises(ValueError, match="does not exist"):
863
+ parse_yaml(yaml_fname)
864
+
865
+
866
+ def test_parse_yaml_relative_path(tmp_path: Path) -> None:
867
+ """Test YAML parsing with relative paths in with.
868
+
869
+ Parameters
870
+ ----------
871
+ tmp_path : pathlib.Path
872
+ The path to the test directory.
873
+
874
+ """
875
+ t_tmp_path = tmp_path / "test_relative_with"
876
+
877
+ # Write .py to include
878
+ py_path = t_tmp_path / "external"
879
+ py_path.mkdir(exist_ok=True, parents=True)
880
+ py_fname = py_path / "first.py"
881
+ py_fname.write_text("import numpy as np\n")
882
+
883
+ # Write yaml that includes a relative path
884
+ yaml_path = t_tmp_path / "yamls"
885
+ yaml_path.mkdir(exist_ok=True, parents=True)
886
+ yaml_fname = yaml_path / "test_parse_yaml_relative_path.yaml"
887
+
888
+ yaml_fname.write_text(
889
+ "foo: bar\nwith:\n - ../external/first.py\n - scipy\n"
890
+ )
891
+
892
+ # Check test file
893
+ parse_yaml(yaml_fname)
894
+
895
+
896
+ def test_parse_yaml_absolute_path(tmp_path: Path) -> None:
897
+ """Test YAML parsing with absolute paths in with.
898
+
899
+ Parameters
900
+ ----------
901
+ tmp_path : pathlib.Path
902
+ The path to the test directory.
903
+
904
+ """
905
+ t_tmp_path = tmp_path / "test_relative_with"
906
+
907
+ # Write .py to include
908
+ py_path = t_tmp_path / "external"
909
+ py_path.mkdir(exist_ok=True, parents=True)
910
+ py_fname = py_path / "first.py"
911
+ py_fname.write_text("import numpy as np\n")
912
+
913
+ # Write yaml that includes a relative path
914
+ yaml_path = t_tmp_path / "yamls"
915
+ yaml_path.mkdir(exist_ok=True, parents=True)
916
+ yaml_fname = yaml_path / "test_parse_yaml_relative_path.yaml"
917
+
918
+ yaml_fname.write_text(
919
+ f"foo: bar\nwith:\n - {py_fname.absolute()}\n - scipy\n"
920
+ )
921
+
922
+ # Check test file
923
+ parse_yaml(yaml_fname)
924
+
925
+
926
+ def test_parse_yaml_multi_module_deps(tmp_path: Path) -> None:
927
+ """Test YAML parsing with multi-module import with deps.
928
+
929
+ Parameters
930
+ ----------
931
+ tmp_path : pathlib.Path
932
+ The path to the test directory.
933
+
934
+ """
935
+ t_tmp_path = tmp_path / "test_with_multi_module"
936
+
937
+ # Write .py to include
938
+ py_path = t_tmp_path / "external"
939
+ py_path.mkdir(exist_ok=True, parents=True)
940
+ py_fname_1 = py_path / "first.py"
941
+ py_fname_1.write_text(
942
+ "import numpy as np\nfrom second import hej\n"
943
+ "def junifer_module_deps(): return ['second.py']\n"
944
+ )
945
+ py_fname_2 = py_path / "second.py"
946
+ py_fname_2.write_text("def hej(): print('hej')\n")
947
+
948
+ # Write yaml
949
+ yaml_path = t_tmp_path / "yamls"
950
+ yaml_path.mkdir(exist_ok=True, parents=True)
951
+ yaml_fname = yaml_path / "test_parse_yaml_multi_module.yaml"
952
+
953
+ yaml_fname.write_text(
954
+ "foo: bar\nwith:\n - ../external/first.py\n - scipy\n"
955
+ )
956
+
957
+ # Check test file
958
+ parse_yaml(yaml_fname)
959
+
960
+
961
+ def test_parse_storage_uri_relative(tmp_path: Path) -> None:
962
+ """Test YAML parsing with storage and relative URI.
963
+
964
+ Parameters
965
+ ----------
966
+ tmp_path : pathlib.Path
967
+ The path to the test directory.
968
+
969
+ """
970
+ fname = tmp_path / "test_parse_yaml_with_storage_uri.yaml"
971
+ fname.write_text("foo: bar\nwith: numpy\nstorage:\n uri: test.db\n")
972
+
973
+ contents = parse_yaml(fname)
974
+ assert "foo" in contents
975
+ assert contents["foo"] == "bar"
976
+ assert "storage" in contents
977
+ assert "uri" in contents["storage"]
978
+ assert contents["storage"]["uri"] == str(tmp_path / "test.db")
979
+
980
+ fname = tmp_path / "test_parse_yaml_with_storage_uri.yaml"
981
+ fname.write_text(
982
+ "foo: bar\nwith: numpy\nstorage:\n uri: ../another/test.db\n"
983
+ )
984
+
985
+ contents = parse_yaml(fname)
986
+ assert "foo" in contents
987
+ assert contents["foo"] == "bar"
988
+ assert "storage" in contents
989
+ assert "uri" in contents["storage"]
990
+ assert contents["storage"]["uri"] == str(
991
+ (tmp_path / "../another/test.db").resolve()
992
+ )
993
+
994
+ fname = tmp_path / "test_parse_yaml_with_storage_uri.yaml"
995
+ fname.write_text(
996
+ "foo: bar\nwith: numpy\nstorage:\n uri: /absolute/test.db\n"
997
+ )
998
+
999
+ contents = parse_yaml(fname)
1000
+ assert "foo" in contents
1001
+ assert contents["foo"] == "bar"
1002
+ assert "storage" in contents
1003
+ assert "uri" in contents["storage"]
1004
+ assert contents["storage"]["uri"] == "/absolute/test.db"
1005
+
1006
+ # Just to trick coverage
1007
+ fname = tmp_path / "test_parse_yaml_with_storage_uri.yaml"
1008
+ fname.write_text("foo: bar\nwith: numpy\nstorage:\n kind: SomeStorage\n")
1009
+
1010
+ contents = parse_yaml(fname)
1011
+ assert "foo" in contents
1012
+ assert contents["foo"] == "bar"
1013
+ assert "storage" in contents
1014
+
1015
+
1016
+ def test_parse_yaml_queue_venv_relative(tmp_path: Path) -> None:
1017
+ """Test YAML parsing with relative venv queue.
1018
+
1019
+ Parameters
1020
+ ----------
1021
+ tmp_path : pathlib.Path
1022
+ The path to the test directory.
1023
+
1024
+ """
1025
+ fname = tmp_path / "test_parse_yaml_queue_venv_relative.yaml"
1026
+ fname.write_text("queue:\n env:\n kind: venv\n name: .venv\n")
1027
+ _ = parse_yaml(fname)
@@ -17,7 +17,7 @@ from ..utils import (
17
17
  raise_error,
18
18
  yaml,
19
19
  )
20
- from .parser import parse_elements, parse_yaml
20
+ from .parser import parse_elements
21
21
  from .utils import (
22
22
  _get_dependency_information,
23
23
  _get_environment_information,
@@ -162,7 +162,7 @@ def run(
162
162
  configure_logging(level=verbose, level_datalad=verbose_datalad)
163
163
  # TODO(synchon): add validation
164
164
  # Parse YAML
165
- config = parse_yaml(filepath)
165
+ config = cli_func.parse_yaml(filepath)
166
166
  # Retrieve working directory
167
167
  workdir = config["workdir"]
168
168
  # Fetch datagrabber
@@ -232,7 +232,7 @@ def collect(
232
232
  configure_logging(level=verbose, level_datalad=verbose_datalad)
233
233
  # TODO: add validation
234
234
  # Parse YAML
235
- config = parse_yaml(filepath)
235
+ config = cli_func.parse_yaml(filepath)
236
236
  # Fetch storage
237
237
  storage = config["storage"]
238
238
  # Perform operation
@@ -299,7 +299,7 @@ def queue(
299
299
  configure_logging(level=verbose, level_datalad=verbose_datalad)
300
300
  # TODO: add validation
301
301
  # Parse YAML
302
- config = parse_yaml(filepath) # type: ignore
302
+ config = cli_func.parse_yaml(filepath) # type: ignore
303
303
  # Check queue section
304
304
  if "queue" not in config:
305
305
  raise_error(f"No queue configuration found in {filepath}.")
@@ -450,7 +450,7 @@ def reset(
450
450
  # Setup logging
451
451
  configure_logging(level=verbose, level_datalad=verbose_datalad)
452
452
  # Parse YAML
453
- config = parse_yaml(filepath)
453
+ config = cli_func.parse_yaml(filepath)
454
454
  # Perform operation
455
455
  cli_func.reset(config)
456
456
 
@@ -510,7 +510,7 @@ def list_elements(
510
510
  # Setup logging
511
511
  configure_logging(level=verbose, level_datalad=verbose_datalad)
512
512
  # Parse YAML
513
- config = parse_yaml(filepath)
513
+ config = cli_func.parse_yaml(filepath)
514
514
  # Fetch datagrabber
515
515
  datagrabber = config["datagrabber"]
516
516
  # Parse elements
@@ -0,0 +1,107 @@
1
+ """Provide functions for CLI parser."""
2
+
3
+ # Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
4
+ # Synchon Mandal <s.mandal@fz-juelich.de>
5
+ # License: AGPL
6
+
7
+ from pathlib import Path
8
+
9
+ import pandas as pd
10
+
11
+ from ..typing import Elements
12
+ from ..utils import logger, raise_error, warn_with_log
13
+
14
+
15
+ __all__ = ["parse_elements"]
16
+
17
+
18
+ def parse_elements(element: tuple[str, ...], config: dict) -> Elements | None:
19
+ """Parse elements from cli.
20
+
21
+ Parameters
22
+ ----------
23
+ element : tuple of str
24
+ The element(s) to operate on.
25
+ config : dict
26
+ The configuration to operate using.
27
+
28
+ Returns
29
+ -------
30
+ list or None
31
+ The element(s) as list or None.
32
+
33
+ Raises
34
+ ------
35
+ ValueError
36
+ If no element is found either in the command-line options or
37
+ the configuration file.
38
+
39
+ Warns
40
+ -----
41
+ RuntimeWarning
42
+ If elements are specified both via the command-line options and
43
+ the configuration file.
44
+
45
+ """
46
+ logger.debug(f"Parsing elements: {element}")
47
+ # Early return None to continue with all elements
48
+ if not element:
49
+ return None
50
+ # Check if the element is a file for single element;
51
+ # if yes, then parse elements from it
52
+ if len(element) == 1 and Path(element[0]).resolve().is_file():
53
+ elements = _parse_elements_file(Path(element[0]).resolve())
54
+ else:
55
+ # Process multi-keyed elements
56
+ elements = [tuple(x.split(",")) if "," in x else x for x in element]
57
+ logger.debug(f"Parsed elements: {elements}")
58
+ if elements is not None and "elements" in config:
59
+ warn_with_log(
60
+ "One or more elements have been specified in both the command "
61
+ "line and in the config file. The command line has precedence "
62
+ "over the configuration file. That is, the elements specified "
63
+ "in the command line will be used. The elements specified in "
64
+ "the configuration file will be ignored. To remove this warning, "
65
+ "please remove the `elements` item from the configuration file."
66
+ )
67
+ elif elements is None:
68
+ # Check in config
69
+ elements = config.get("elements", None)
70
+ if elements is None:
71
+ raise_error(
72
+ "The `elements` key is set in the configuration, but its value"
73
+ " is `None`. It is likely that there is an empty `elements` "
74
+ "section in the yaml configuration file."
75
+ )
76
+ return elements
77
+
78
+
79
+ def _parse_elements_file(filepath: Path) -> Elements:
80
+ """Parse elements from file.
81
+
82
+ Parameters
83
+ ----------
84
+ filepath : pathlib.Path
85
+ The path to the element file.
86
+
87
+ Returns
88
+ -------
89
+ list
90
+ The element(s) as list.
91
+
92
+ """
93
+ # Read CSV into dataframe
94
+ csv_df = pd.read_csv(
95
+ filepath,
96
+ header=None, # no header # type: ignore
97
+ index_col=False, # no index column
98
+ dtype=str,
99
+ skipinitialspace=True, # no leading space after delimiter
100
+ )
101
+ # Remove trailing whitespace in cell entries
102
+ csv_df_trimmed = csv_df.apply(lambda x: x.str.strip())
103
+ # Convert to list of tuple of str if more than one column else flatten
104
+ if len(csv_df_trimmed.columns) == 1:
105
+ return csv_df_trimmed.to_numpy().flatten().tolist()
106
+ else:
107
+ return list(map(tuple, csv_df_trimmed.to_numpy()))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.8.dev195
3
+ Version: 0.0.8.dev198
4
4
  Summary: JUelich NeuroImaging FEature extractoR
5
5
  Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
6
6
  Maintainer-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
@@ -76,6 +76,7 @@ docs/changes/newsfragments/364.feature
76
76
  docs/changes/newsfragments/474.misc
77
77
  docs/changes/newsfragments/482.bugfix
78
78
  docs/changes/newsfragments/492.bugfix
79
+ docs/changes/newsfragments/499.enh
79
80
  docs/changes/newsfragments/502.bugfix
80
81
  docs/changes/newsfragments/503.enh
81
82
  docs/extending/confounds_format.rst
@@ -182,7 +183,6 @@ junifer/cli/py.typed
182
183
  junifer/cli/utils.py
183
184
  junifer/cli/tests/test_cli.py
184
185
  junifer/cli/tests/test_cli_utils.py
185
- junifer/cli/tests/test_parser.py
186
186
  junifer/cli/tests/data/gmd_mean.yaml
187
187
  junifer/cli/tests/data/gmd_mean_htcondor.yaml
188
188
  junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml
@@ -427,7 +427,6 @@
427
427
  "junifer/cli/cli.py",
428
428
  "junifer/cli/py.typed",
429
429
  "junifer/cli/__init__.py",
430
- "junifer/cli/tests/test_parser.py",
431
430
  "junifer/cli/tests/test_cli_utils.py",
432
431
  "junifer/cli/tests/test_cli.py",
433
432
  "junifer/cli/tests/data/gmd_mean_htcondor.yaml",
@@ -536,6 +535,7 @@
536
535
  "docs/changes/newsfragments/239.enh",
537
536
  "docs/changes/newsfragments/364.doc",
538
537
  "docs/changes/newsfragments/482.bugfix",
538
+ "docs/changes/newsfragments/499.enh",
539
539
  "docs/_templates/versions.html",
540
540
  "docs/images/junifer_logo.png"
541
541
  ]