junifer 0.0.5.dev219__tar.gz → 0.0.5.dev242__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 (411) hide show
  1. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/PKG-INFO +1 -1
  2. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/whats_new.rst +121 -0
  3. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/_version.py +2 -2
  4. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/__init__.py +2 -0
  5. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/base.py +10 -6
  6. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/hcp1200/hcp1200.py +1 -1
  7. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/multiple.py +42 -6
  8. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/pattern.py +33 -10
  9. junifer-0.0.5.dev242/junifer/datagrabber/pattern_validation_mixin.py +388 -0
  10. junifer-0.0.5.dev242/junifer/datagrabber/tests/test_multiple.py +280 -0
  11. junifer-0.0.5.dev219/junifer/datagrabber/tests/test_datagrabber_utils.py → junifer-0.0.5.dev242/junifer/datagrabber/tests/test_pattern_validation_mixin.py +133 -108
  12. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/utils/__init__.py +2 -1
  13. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/utils/helpers.py +30 -2
  14. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/utils/logging.py +18 -1
  15. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/utils/tests/test_logging.py +8 -0
  16. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer.egg-info/PKG-INFO +1 -1
  17. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer.egg-info/SOURCES.txt +2 -31
  18. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/tools/create_aomic1000_example_dataset.py +2 -1
  19. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/tools/create_aomicpiop1_example_dataset.py +1 -0
  20. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/tools/create_aomicpiop2_example_dataset.py +1 -0
  21. junifer-0.0.5.dev242/tools/create_bids_example_dataset.py +40 -0
  22. junifer-0.0.5.dev242/tools/create_bids_example_dataset_sessions.py +50 -0
  23. junifer-0.0.5.dev219/docs/changes/newsfragments/115.doc +0 -1
  24. junifer-0.0.5.dev219/docs/changes/newsfragments/136.enh +0 -1
  25. junifer-0.0.5.dev219/docs/changes/newsfragments/161.feature +0 -1
  26. junifer-0.0.5.dev219/docs/changes/newsfragments/273.feature +0 -1
  27. junifer-0.0.5.dev219/docs/changes/newsfragments/318.misc +0 -1
  28. junifer-0.0.5.dev219/docs/changes/newsfragments/323.feature +0 -1
  29. junifer-0.0.5.dev219/docs/changes/newsfragments/324.bugfix +0 -1
  30. junifer-0.0.5.dev219/docs/changes/newsfragments/327.doc +0 -1
  31. junifer-0.0.5.dev219/docs/changes/newsfragments/330.doc +0 -1
  32. junifer-0.0.5.dev219/docs/changes/newsfragments/331.bugfix +0 -1
  33. junifer-0.0.5.dev219/docs/changes/newsfragments/332.bugfix +0 -1
  34. junifer-0.0.5.dev219/docs/changes/newsfragments/336.removal +0 -1
  35. junifer-0.0.5.dev219/docs/changes/newsfragments/337.misc +0 -1
  36. junifer-0.0.5.dev219/docs/changes/newsfragments/339.bugfix +0 -1
  37. junifer-0.0.5.dev219/docs/changes/newsfragments/340.bugfix +0 -1
  38. junifer-0.0.5.dev219/docs/changes/newsfragments/341.enh +0 -1
  39. junifer-0.0.5.dev219/docs/changes/newsfragments/342.misc +0 -1
  40. junifer-0.0.5.dev219/docs/changes/newsfragments/343.feature +0 -1
  41. junifer-0.0.5.dev219/docs/changes/newsfragments/344.feature +0 -1
  42. junifer-0.0.5.dev219/docs/changes/newsfragments/345.feature +0 -1
  43. junifer-0.0.5.dev219/docs/changes/newsfragments/346.enh +0 -1
  44. junifer-0.0.5.dev219/docs/changes/newsfragments/346.feature +0 -1
  45. junifer-0.0.5.dev219/docs/changes/newsfragments/347.misc +0 -1
  46. junifer-0.0.5.dev219/docs/changes/newsfragments/348.change +0 -1
  47. junifer-0.0.5.dev219/docs/changes/newsfragments/348.enh +0 -1
  48. junifer-0.0.5.dev219/docs/changes/newsfragments/348.feature +0 -1
  49. junifer-0.0.5.dev219/docs/changes/newsfragments/349.change +0 -1
  50. junifer-0.0.5.dev219/docs/changes/newsfragments/349.enh +0 -1
  51. junifer-0.0.5.dev219/docs/changes/newsfragments/350.enh +0 -1
  52. junifer-0.0.5.dev219/junifer/datagrabber/tests/test_multiple.py +0 -203
  53. junifer-0.0.5.dev219/junifer/datagrabber/utils.py +0 -317
  54. junifer-0.0.5.dev219/tools/create_bids_example_dataset.py +0 -34
  55. junifer-0.0.5.dev219/tools/create_bids_example_dataset_sessions.py +0 -41
  56. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  57. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  58. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  59. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  60. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  61. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  62. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/dependabot.yml +0 -0
  63. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/pull_request_template.md +0 -0
  64. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/workflows/ci-docs.yml +0 -0
  65. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/workflows/ci.yml +0 -0
  66. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/workflows/docs-preview.yml +0 -0
  67. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/workflows/docs.yml +0 -0
  68. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/workflows/lint.yml +0 -0
  69. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.github/workflows/pypi.yml +0 -0
  70. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.gitignore +0 -0
  71. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.gitmodules +0 -0
  72. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/.pre-commit-config.yaml +0 -0
  73. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/AUTHORS.rst +0 -0
  74. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/LICENSE.md +0 -0
  75. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/README.md +0 -0
  76. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/codecov.yml +0 -0
  77. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/conda-env.yml +0 -0
  78. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/Makefile +0 -0
  79. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/_static/css/custom.css +0 -0
  80. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/_static/js/custom.js +0 -0
  81. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/_templates/versions.html +0 -0
  82. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/api.rst +0 -0
  83. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/configs.rst +0 -0
  84. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/data.rst +0 -0
  85. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/datagrabbers.rst +0 -0
  86. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/datareaders.rst +0 -0
  87. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/index.rst +0 -0
  88. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/markers.rst +0 -0
  89. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/nilearn.rst +0 -0
  90. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/onthefly.rst +0 -0
  91. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/pipeline.rst +0 -0
  92. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/preprocessing.rst +0 -0
  93. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/stats.rst +0 -0
  94. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/storage.rst +0 -0
  95. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/testing.rst +0 -0
  96. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/api/utils.rst +0 -0
  97. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/builtin.rst +0 -0
  98. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/changes/contributors.inc +0 -0
  99. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/changes/newsfragments/.gitignore +0 -0
  100. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/conf.py +0 -0
  101. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/contribution.rst +0 -0
  102. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/extending/coordinates.rst +0 -0
  103. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/extending/datagrabber.rst +0 -0
  104. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/extending/dependencies.rst +0 -0
  105. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/extending/extension.rst +0 -0
  106. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/extending/index.rst +0 -0
  107. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/extending/marker.rst +0 -0
  108. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/extending/masks.rst +0 -0
  109. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/extending/parcellations.rst +0 -0
  110. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/extending/preprocessor.rst +0 -0
  111. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/faq.rst +0 -0
  112. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/help.rst +0 -0
  113. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/images/junifer_logo.png +0 -0
  114. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/index.rst +0 -0
  115. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/installation.rst +0 -0
  116. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/links.inc +0 -0
  117. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/maintaining.rst +0 -0
  118. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/redirect.html +0 -0
  119. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/sphinxext/gh_substitutions.py +0 -0
  120. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/starting.rst +0 -0
  121. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/understanding/data.rst +0 -0
  122. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/understanding/datagrabber.rst +0 -0
  123. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/understanding/datareader.rst +0 -0
  124. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/understanding/index.rst +0 -0
  125. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/understanding/marker.rst +0 -0
  126. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/understanding/pipeline.rst +0 -0
  127. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/understanding/preprocess.rst +0 -0
  128. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/understanding/storage.rst +0 -0
  129. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/using/codeless.rst +0 -0
  130. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/using/index.rst +0 -0
  131. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/using/masks.rst +0 -0
  132. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/using/queueing.rst +0 -0
  133. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/docs/using/running.rst +0 -0
  134. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/README.rst +0 -0
  135. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/norun_hcpfc_pearson.py +0 -0
  136. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/norun_ukbvm_gmd.py +0 -0
  137. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/run_compute_parcel_mean.py +0 -0
  138. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/run_datagrabber_bids_datalad.py +0 -0
  139. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/run_ets_rss_marker.py +0 -0
  140. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/run_junifer_julearn.py +0 -0
  141. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/run_run_gmd_mean.py +0 -0
  142. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/yamls/gmd_mean.yaml +0 -0
  143. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  144. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  145. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  146. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/ignore_words.txt +0 -0
  147. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/__init__.py +0 -0
  148. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/__init__.py +0 -0
  149. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/cli.py +0 -0
  150. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/decorators.py +0 -0
  151. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/functions.py +0 -0
  152. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/parser.py +0 -0
  153. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/queue_context/__init__.py +0 -0
  154. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  155. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  156. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  157. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  158. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  159. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  160. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/afni/3dRSFC +0 -0
  161. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/afni/3dReHo +0 -0
  162. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/afni/afni +0 -0
  163. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  164. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/ants/ResampleImage +0 -0
  165. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/ants/antsApplyTransforms +0 -0
  166. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  167. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  168. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/freesurfer/mri_binarize +0 -0
  169. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/freesurfer/mri_mc +0 -0
  170. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/freesurfer/mri_pretess +0 -0
  171. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/freesurfer/mris_convert +0 -0
  172. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  173. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/fsl/applywarp +0 -0
  174. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/fsl/flirt +0 -0
  175. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/fsl/img2imgcoord +0 -0
  176. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  177. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/fsl/std2imgcoord +0 -0
  178. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/run_conda.bash +0 -0
  179. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/run_conda.zsh +0 -0
  180. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/run_venv.bash +0 -0
  181. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/res/run_venv.zsh +0 -0
  182. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/tests/data/gmd_mean.yaml +0 -0
  183. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/tests/data/gmd_mean_htcondor.yaml +0 -0
  184. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  185. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/tests/test_api_utils.py +0 -0
  186. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/tests/test_cli.py +0 -0
  187. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/tests/test_functions.py +0 -0
  188. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/tests/test_parser.py +0 -0
  189. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/api/utils.py +0 -0
  190. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/__init__.py +0 -0
  191. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/__init__.py +0 -0
  192. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  193. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  194. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  195. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  196. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  197. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  198. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  199. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  200. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  201. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  202. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  203. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
  204. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/CogAC_VOIs.txt +0 -0
  205. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/CogAR_VOIs.txt +0 -0
  206. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
  207. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
  208. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/Empathy_VOIs.txt +0 -0
  209. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/Motor_VOIs.txt +0 -0
  210. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/MultiTask_VOIs.txt +0 -0
  211. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/PhysioStress_VOIs.txt +0 -0
  212. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
  213. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
  214. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/Rew_VOIs.txt +0 -0
  215. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/Somatosensory_VOIs.txt +0 -0
  216. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/ToM_VOIs.txt +0 -0
  217. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/VigAtt_VOIs.txt +0 -0
  218. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/WM_VOIs.txt +0 -0
  219. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/eMDN_VOIs.txt +0 -0
  220. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/eSAD_VOIs.txt +0 -0
  221. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/VOIs/meta/extDMN_VOIs.txt +0 -0
  222. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/__init__.py +0 -0
  223. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/coordinates.py +0 -0
  224. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
  225. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
  226. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
  227. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
  228. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/masks.py +0 -0
  229. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/parcellations.py +0 -0
  230. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/template_spaces.py +0 -0
  231. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/tests/test_coordinates.py +0 -0
  232. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/tests/test_data_utils.py +0 -0
  233. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/tests/test_masks.py +0 -0
  234. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/tests/test_parcellations.py +0 -0
  235. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/tests/test_template_spaces.py +0 -0
  236. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/data/utils.py +0 -0
  237. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/aomic/__init__.py +0 -0
  238. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/aomic/id1000.py +0 -0
  239. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/aomic/piop1.py +0 -0
  240. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/aomic/piop2.py +0 -0
  241. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  242. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  243. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  244. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/datalad_base.py +0 -0
  245. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  246. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  247. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  248. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  249. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/pattern_datalad.py +0 -0
  250. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/tests/test_base.py +0 -0
  251. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  252. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  253. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/tests/test_pattern.py +0 -0
  254. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  255. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datareader/__init__.py +0 -0
  256. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datareader/default.py +0 -0
  257. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/datareader/tests/test_default_reader.py +0 -0
  258. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  259. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  260. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  261. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  262. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  263. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  264. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  265. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  266. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/__init__.py +0 -0
  267. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/h5io/h5io/__init__.py +0 -0
  268. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/h5io/h5io/_h5io.py +0 -0
  269. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/h5io/h5io/_version.py +0 -0
  270. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  271. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  272. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/nilearn/__init__.py +0 -0
  273. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  274. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  275. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  276. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  277. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/__init__.py +0 -0
  278. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/base.py +0 -0
  279. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/brainprint.py +0 -0
  280. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/collection.py +0 -0
  281. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/__init__.py +0 -0
  282. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/complexity_base.py +0 -0
  283. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/hurst_exponent.py +0 -0
  284. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  285. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/perm_entropy.py +0 -0
  286. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/range_entropy.py +0 -0
  287. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  288. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/sample_entropy.py +0 -0
  289. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  290. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  291. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  292. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  293. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  294. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  295. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  296. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  297. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  298. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/ets_rss.py +0 -0
  299. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/falff/__init__.py +0 -0
  300. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/falff/_afni_falff.py +0 -0
  301. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/falff/_junifer_falff.py +0 -0
  302. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/falff/falff_base.py +0 -0
  303. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/falff/falff_parcels.py +0 -0
  304. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/falff/falff_spheres.py +0 -0
  305. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  306. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  307. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/__init__.py +0 -0
  308. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  309. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  310. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  311. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  312. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  313. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  314. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  315. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  316. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  317. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  318. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  319. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  320. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/parcel_aggregation.py +0 -0
  321. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/reho/__init__.py +0 -0
  322. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/reho/_afni_reho.py +0 -0
  323. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/reho/_junifer_reho.py +0 -0
  324. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/reho/reho_base.py +0 -0
  325. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/reho/reho_parcels.py +0 -0
  326. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/reho/reho_spheres.py +0 -0
  327. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  328. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  329. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/sphere_aggregation.py +0 -0
  330. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/temporal_snr/__init__.py +0 -0
  331. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  332. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  333. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  334. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  335. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  336. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  337. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/tests/test_brainprint.py +0 -0
  338. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/tests/test_collection.py +0 -0
  339. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/tests/test_ets_rss.py +0 -0
  340. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/tests/test_marker_utils.py +0 -0
  341. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/tests/test_markers_base.py +0 -0
  342. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  343. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  344. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/markers/utils.py +0 -0
  345. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/onthefly/__init__.py +0 -0
  346. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/onthefly/read_transform.py +0 -0
  347. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/onthefly/tests/test_read_transform.py +0 -0
  348. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/__init__.py +0 -0
  349. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  350. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/registry.py +0 -0
  351. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/singleton.py +0 -0
  352. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  353. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/tests/test_registry.py +0 -0
  354. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  355. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  356. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/update_meta_mixin.py +0 -0
  357. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/utils.py +0 -0
  358. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/pipeline/workdir_manager.py +0 -0
  359. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/__init__.py +0 -0
  360. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/base.py +0 -0
  361. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/confounds/__init__.py +0 -0
  362. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  363. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  364. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/smoothing/__init__.py +0 -0
  365. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  366. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  367. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  368. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/smoothing/smoothing.py +0 -0
  369. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  370. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  371. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/warping/__init__.py +0 -0
  372. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/warping/_ants_warper.py +0 -0
  373. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  374. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/warping/space_warper.py +0 -0
  375. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  376. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/stats.py +0 -0
  377. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/__init__.py +0 -0
  378. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/base.py +0 -0
  379. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/hdf5.py +0 -0
  380. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/pandas_base.py +0 -0
  381. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/sqlite.py +0 -0
  382. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/tests/test_hdf5.py +0 -0
  383. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/tests/test_pandas_base.py +0 -0
  384. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/tests/test_sqlite.py +0 -0
  385. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/tests/test_storage_base.py +0 -0
  386. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/tests/test_utils.py +0 -0
  387. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/storage/utils.py +0 -0
  388. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/testing/__init__.py +0 -0
  389. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  390. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/testing/datagrabbers.py +0 -0
  391. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/testing/registry.py +0 -0
  392. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  393. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  394. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  395. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/testing/tests/test_testing_registry.py +0 -0
  396. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/testing/utils.py +0 -0
  397. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/tests/test_main.py +0 -0
  398. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/tests/test_stats.py +0 -0
  399. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/utils/fs.py +0 -0
  400. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/utils/tests/test_fs.py +0 -0
  401. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer/utils/tests/test_helpers.py +0 -0
  402. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer.egg-info/dependency_links.txt +0 -0
  403. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer.egg-info/entry_points.txt +0 -0
  404. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer.egg-info/requires.txt +0 -0
  405. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/junifer.egg-info/top_level.txt +0 -0
  406. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/pyproject.toml +0 -0
  407. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/setup.cfg +0 -0
  408. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/setup.py +0 -0
  409. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  410. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/tools/create_hcp1200_example_dataset.py +0 -0
  411. {junifer-0.0.5.dev219 → junifer-0.0.5.dev242}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.5.dev219
3
+ Version: 0.0.5.dev242
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>
@@ -8,6 +8,127 @@ What's new
8
8
 
9
9
  .. towncrier release notes start
10
10
 
11
+ Junifer 0.0.5 (2024-07-22)
12
+ --------------------------
13
+
14
+ Bugfixes
15
+ ^^^^^^^^
16
+
17
+ - Remove extra dimension from parcellations warped via ANTs to other template
18
+ spaces by `Synchon Mandal`_ (:gh:`324`)
19
+ - Remove extra dimension from parcellations warped via ANTs when merging
20
+ parcellations by `Synchon Mandal`_ (:gh:`331`)
21
+ - Fix ``junifer reset`` to properly delete storage directory and handle
22
+ ``junifer_jobs`` deletion if not empty by `Synchon Mandal`_ (:gh:`332`)
23
+ - Fix validation failure of multiple Preprocessors with different input data
24
+ types requirement by `Synchon Mandal`_ (:gh:`339`)
25
+ - Remove extra dimension from masks warped via ANTs by `Synchon Mandal`_
26
+ (:gh:`340`)
27
+
28
+
29
+ API Changes
30
+ ^^^^^^^^^^^
31
+
32
+ - For :class:`.CrossParcellationFC`, ``aggregation_method`` and
33
+ ``correlation_method`` have been renamed to ``agg_method`` and
34
+ ``corr_method`` respectively and ``agg_method_params`` has been added; for
35
+ ``FunctionalConnectivityBase``, :class:`.FunctionalConnectivityParcels`,
36
+ :class:`.FunctionalConnectivitySpheres`, :class:`.EdgeCentricFCParcels` and
37
+ :class:`.EdgeCentricFCSpheres`, ``cor_method`` and ``cor_method_params`` have
38
+ been renamed to ``conn_method`` and ``conn_method_params`` by `Synchon
39
+ Mandal`_ (:gh:`348`)
40
+ - ``fractional`` parameter for ``ALFFBase``, :class:`.ALFFParcels` and
41
+ :class:`.ALFFSpheres` have been removed in favour of returning both ALFF and
42
+ fALFF by `Synchon Mandal`_ (:gh:`349`)
43
+ - Add ``partial_pattern_ok`` argument to :class:`.PatternDataGrabber` to not
44
+ raise error on missing mandatory key checks for data types by `Synchon
45
+ Mandal`_ (:gh:`351`)
46
+
47
+
48
+ Improved Documentation
49
+ ^^^^^^^^^^^^^^^^^^^^^^
50
+
51
+ - Improve sub-package level docstrings to better reflect their purposes by
52
+ `Synchon Mandal`_ (:gh:`115`)
53
+ - Update "Queueing Jobs (HPC, HTC)" section by `Synchon Mandal`_ (:gh:`327`)
54
+ - Add missing DataGrabber ``types`` options in respective docstrings of
55
+ :class:`.DataladAOMICID1000`, :class:`.DataladAOMICPIOP1`,
56
+ :class:`.DataladAOMICPIOP2` and :class:`.DMCC13Benchmark` by `Synchon
57
+ Mandal`_ (:gh:`330`)
58
+
59
+
60
+ Enhancements
61
+ ^^^^^^^^^^^^
62
+
63
+ - Add test to be sure that :class:`.JuniferNiftiSpheresMasker` with mean
64
+ aggregation function behaves exactly as
65
+ :class:`nilearn.maskers.NiftiSpheresMasker` by `Synchon Mandal`_ (:gh:`136`)
66
+ - Refactor DataGrabber ``patterns`` to make helper types like ``*_mask`` as
67
+ "nested types" of the actual data type by `Synchon Mandal`_ (:gh:`341`)
68
+ - Adapt :class:`.DataladAOMICID1000`, :class:`.DataladAOMICPIOP1` and
69
+ :class:`.DataladAOMICPIOP2` to support ``FreeSurfer`` data type by `Synchon
70
+ Mandal`_ (:gh:`346`)
71
+ - ``FunctionalConnectivity``-family Markers now use
72
+ :class:`sklearn.covariance.EmpiricalCovariance` as the default covariance
73
+ estimator and ``correlation`` as the default connecivity matrix kind by
74
+ `Synchon Mandal`_ (:gh:`348`)
75
+ - Enable Markers to output multiple features by `Synchon Mandal`_ (:gh:`349`)
76
+ - Add support for ``UKB_15K_GM`` mask by `Synchon Mandal`_ (:gh:`350`)
77
+ - Adapt :class:`.MultipleDataGrabber` to handle "nested types" introduced in
78
+ :gh:`341` by `Synchon Mandal`_ (:gh:`351`)
79
+
80
+
81
+ Features
82
+ ^^^^^^^^
83
+
84
+ - Introduce :class:`.Smoothing` for smoothing / blurring images as a
85
+ preprocessing step by `Synchon Mandal`_ (:gh:`161`)
86
+ - Add support for choosing between ``bash`` and ``zsh`` shells when queueing by
87
+ `Synchon Mandal`_ (:gh:`273`)
88
+ - Add ``junifer list-elements`` to list out available elements for a
89
+ DataGrabber based on filtering via ``--element`` by `Synchon Mandal`_
90
+ (:gh:`323`)
91
+ - Introduce new storage type ``scalar_table`` and adapt
92
+ :class:`.HDF5FeatureStorage` to support it by `Synchon Mandal`_ (:gh:`343`)
93
+ - Add support for `BrainPrint
94
+ <https://github.com/Deep-MI/BrainPrint?tab=readme-ov-file>`_ marker by
95
+ `Synchon Mandal`_ (:gh:`344`)
96
+ - Allow Unix path expansion directives to be used in
97
+ :class:`.PatternDataGrabber` ``patterns`` by `Synchon Mandal`_ (:gh:`345`)
98
+ - Add support for ``FreeSurfer`` data type for :class:`.PatternDataGrabber` by
99
+ `Synchon Mandal`_ (:gh:`346`)
100
+ - Introduce :class:`.JuniferConnectivityMeasure` for customising functional
101
+ connectivity matrix kinds and measurements by `Synchon Mandal`_ (:gh:`348`)
102
+ - Introduce :class:`.PatternValidationMixin` to simplify validation for
103
+ pattern-based DataGrabbers and :func:`.deep_update` for updating dictionary
104
+ with varying width and depth by `Synchon Mandal`_ (:gh:`351`)
105
+
106
+
107
+ Miscellaneous
108
+ ^^^^^^^^^^^^^
109
+
110
+ - Improve CI to allow external tool installation to fail gracefully and update
111
+ necessary dependency version and conditional checks by `Synchon Mandal`_
112
+ (:gh:`318`)
113
+ - Update ``pre-commit`` dependency versions, add ``blacken-docs`` to
114
+ ``pre-commit``, add ``__all__`` for modules, sub-packages and package, update
115
+ ``ruff`` and ``pytest`` configs in ``pyproject.toml`` by `Synchon Mandal`_
116
+ (:gh:`337`)
117
+ - Add support for accessing FreeSurfer via Docker wrapper along with
118
+ ``mri_binarize``, ``mri_pretess``, ``mri_mc`` and ``mris_convert`` by
119
+ `Synchon Mandal`_ (:gh:`342`)
120
+ - Update core and docs dependencies by `Synchon Mandal`_ (:gh:`347`)
121
+ - Integrate ``warnings`` with ``logging`` respecting filters by `Fede
122
+ Raimondo`_ (:gh:`351`)
123
+
124
+
125
+ Deprecations and Removals
126
+ ^^^^^^^^^^^^^^^^^^^^^^^^^
127
+
128
+ - Remove ``Power`` coordinates, ``fetch_icbm152_brain_gm_mask`` mask,
129
+ ``BOLDWarper`` Preprocessor by `Synchon Mandal`_ (:gh:`336`)
130
+
131
+
11
132
  Junifer 0.0.4 (2024-04-05)
12
133
  --------------------------
13
134
 
@@ -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.5.dev219'
16
- __version_tuple__ = version_tuple = (0, 0, 5, 'dev219')
15
+ __version__ = version = '0.0.5.dev242'
16
+ __version_tuple__ = version_tuple = (0, 0, 5, 'dev242')
@@ -17,6 +17,7 @@ from .hcp1200 import HCP1200, DataladHCP1200
17
17
  from .multiple import MultipleDataGrabber
18
18
  from .dmcc13_benchmark import DMCC13Benchmark
19
19
 
20
+ from .pattern_validation_mixin import PatternValidationMixin
20
21
 
21
22
  __all__ = [
22
23
  "BaseDataGrabber",
@@ -30,4 +31,5 @@ __all__ = [
30
31
  "DataladHCP1200",
31
32
  "MultipleDataGrabber",
32
33
  "DMCC13Benchmark",
34
+ "PatternValidationMixin",
33
35
  ]
@@ -11,7 +11,6 @@ from typing import Dict, Iterator, List, Tuple, Union
11
11
 
12
12
  from ..pipeline import UpdateMetaMixin
13
13
  from ..utils import logger, raise_error
14
- from .utils import validate_types
15
14
 
16
15
 
17
16
  __all__ = ["BaseDataGrabber"]
@@ -30,16 +29,21 @@ class BaseDataGrabber(ABC, UpdateMetaMixin):
30
29
  datadir : str or pathlib.Path
31
30
  The directory where the data is / will be stored.
32
31
 
33
- Attributes
34
- ----------
35
- datadir : pathlib.Path
36
- The directory where the data is / will be stored.
32
+ Raises
33
+ ------
34
+ TypeError
35
+ If ``types`` is not a list or if the values are not string.
37
36
 
38
37
  """
39
38
 
40
39
  def __init__(self, types: List[str], datadir: Union[str, Path]) -> None:
41
40
  # Validate types
42
- validate_types(types)
41
+ if not isinstance(types, list):
42
+ raise_error(msg="`types` must be a list", klass=TypeError)
43
+ if any(not isinstance(x, str) for x in types):
44
+ raise_error(
45
+ msg="`types` must be a list of strings", klass=TypeError
46
+ )
43
47
  self.types = types
44
48
 
45
49
  # Convert str to Path
@@ -10,8 +10,8 @@ from pathlib import Path
10
10
  from typing import Dict, List, Union
11
11
 
12
12
  from ...api.decorators import register_datagrabber
13
+ from ...utils import raise_error
13
14
  from ..pattern import PatternDataGrabber
14
- from ..utils import raise_error
15
15
 
16
16
 
17
17
  __all__ = ["HCP1200"]
@@ -7,13 +7,15 @@
7
7
 
8
8
  from typing import Dict, List, Tuple, Union
9
9
 
10
- from ..utils import raise_error
10
+ from ..api.decorators import register_datagrabber
11
+ from ..utils import deep_update, raise_error
11
12
  from .base import BaseDataGrabber
12
13
 
13
14
 
14
15
  __all__ = ["MultipleDataGrabber"]
15
16
 
16
17
 
18
+ @register_datagrabber
17
19
  class MultipleDataGrabber(BaseDataGrabber):
18
20
  """Concrete implementation for multi sourced data fetching.
19
21
 
@@ -27,19 +29,53 @@ class MultipleDataGrabber(BaseDataGrabber):
27
29
  **kwargs
28
30
  Keyword arguments passed to superclass.
29
31
 
32
+ Raises
33
+ ------
34
+ RuntimeError
35
+ If ``datagrabbers`` have different element keys or
36
+ overlapping data types or nested data types.
37
+
30
38
  """
31
39
 
32
40
  def __init__(self, datagrabbers: List[BaseDataGrabber], **kwargs) -> None:
33
41
  # Check datagrabbers consistency
34
- # 1) same element keys
42
+ # Check for same element keys
35
43
  first_keys = datagrabbers[0].get_element_keys()
36
44
  for dg in datagrabbers[1:]:
37
45
  if dg.get_element_keys() != first_keys:
38
- raise_error("DataGrabbers have different element keys.")
39
- # 2) no overlapping types
46
+ raise_error(
47
+ msg="DataGrabbers have different element keys",
48
+ klass=RuntimeError,
49
+ )
50
+ # Check for no overlapping types (and nested data types)
40
51
  types = [x for dg in datagrabbers for x in dg.get_types()]
41
52
  if len(types) != len(set(types)):
42
- raise_error("DataGrabbers have overlapping types.")
53
+ if all(hasattr(dg, "patterns") for dg in datagrabbers):
54
+ first_patterns = datagrabbers[0].patterns
55
+ for dg in datagrabbers[1:]:
56
+ for data_type in set(types):
57
+ dtype_pattern = dg.patterns.get(data_type)
58
+ if dtype_pattern is None:
59
+ continue
60
+ # Check if first-level keys of data type are same
61
+ if (
62
+ dtype_pattern.keys()
63
+ == first_patterns[data_type].keys()
64
+ ):
65
+ raise_error(
66
+ msg=(
67
+ "DataGrabbers have overlapping mandatory "
68
+ "and / or optional key(s) for data type: "
69
+ f"`{data_type}`"
70
+ ),
71
+ klass=RuntimeError,
72
+ )
73
+ else:
74
+ # Can't check further
75
+ raise_error(
76
+ msg="DataGrabbers have overlapping types",
77
+ klass=RuntimeError,
78
+ )
43
79
  self._datagrabbers = datagrabbers
44
80
 
45
81
  def __getitem__(self, element: Union[str, Tuple]) -> Dict:
@@ -65,7 +101,7 @@ class MultipleDataGrabber(BaseDataGrabber):
65
101
  metas = []
66
102
  for dg in self._datagrabbers:
67
103
  t_out = dg[element]
68
- out.update(t_out)
104
+ deep_update(out, t_out)
69
105
  # Now get the meta for this datagrabber
70
106
  t_meta = {}
71
107
  dg.update_meta(t_meta, "datagrabber")
@@ -15,7 +15,7 @@ import numpy as np
15
15
  from ..api.decorators import register_datagrabber
16
16
  from ..utils import logger, raise_error
17
17
  from .base import BaseDataGrabber
18
- from .utils import validate_patterns, validate_replacements
18
+ from .pattern_validation_mixin import PatternValidationMixin
19
19
 
20
20
 
21
21
  __all__ = ["PatternDataGrabber"]
@@ -26,7 +26,7 @@ _CONFOUNDS_FORMATS = ("fmriprep", "adhoc")
26
26
 
27
27
 
28
28
  @register_datagrabber
29
- class PatternDataGrabber(BaseDataGrabber):
29
+ class PatternDataGrabber(BaseDataGrabber, PatternValidationMixin):
30
30
  """Concrete implementation for pattern-based data fetching.
31
31
 
32
32
  Implements a DataGrabber that understands patterns to grab data.
@@ -142,6 +142,13 @@ class PatternDataGrabber(BaseDataGrabber):
142
142
  The directory where the data is / will be stored.
143
143
  confounds_format : {"fmriprep", "adhoc"} or None, optional
144
144
  The format of the confounds for the dataset (default None).
145
+ partial_pattern_ok : bool, optional
146
+ Whether to raise error if partial pattern for a data type is found.
147
+ This allows to bypass mandatory key check and issue a warning
148
+ instead of raising error. This allows one to have a DataGrabber
149
+ with data types without the corresponding mandatory keys and is
150
+ powerful when used with :class:`.MultipleDataGrabber`
151
+ (default True).
145
152
 
146
153
  Raises
147
154
  ------
@@ -157,17 +164,21 @@ class PatternDataGrabber(BaseDataGrabber):
157
164
  replacements: Union[List[str], str],
158
165
  datadir: Union[str, Path],
159
166
  confounds_format: Optional[str] = None,
167
+ partial_pattern_ok: bool = False,
160
168
  ) -> None:
161
- # Validate patterns
162
- validate_patterns(types=types, patterns=patterns)
163
- self.patterns = patterns
164
-
165
169
  # Convert replacements to list if not already
166
170
  if not isinstance(replacements, list):
167
171
  replacements = [replacements]
168
- # Validate replacements
169
- validate_replacements(replacements=replacements, patterns=patterns)
172
+ # Validate patterns
173
+ self.validate_patterns(
174
+ types=types,
175
+ replacements=replacements,
176
+ patterns=patterns,
177
+ partial_pattern_ok=partial_pattern_ok,
178
+ )
170
179
  self.replacements = replacements
180
+ self.patterns = patterns
181
+ self.partial_pattern_ok = partial_pattern_ok
171
182
 
172
183
  # Validate confounds format
173
184
  if (
@@ -436,14 +447,26 @@ class PatternDataGrabber(BaseDataGrabber):
436
447
  for t_idx in reversed(order):
437
448
  t_type = self.types[t_idx]
438
449
  types_element = set()
439
- # Get the pattern
450
+
451
+ # Get the pattern dict
440
452
  t_pattern = self.patterns[t_type]
453
+ # Conditional fetch of base pattern for getting elements
454
+ pattern = None
455
+ # Try for data type pattern
456
+ pattern = t_pattern.get("pattern")
457
+ # Try for nested data type pattern
458
+ if pattern is None and self.partial_pattern_ok:
459
+ for v in t_pattern.values():
460
+ if isinstance(v, dict) and "pattern" in v:
461
+ pattern = v["pattern"]
462
+ break
463
+
441
464
  # Replace the pattern
442
465
  (
443
466
  re_pattern,
444
467
  glob_pattern,
445
468
  t_replacements,
446
- ) = self._replace_patterns_regex(t_pattern["pattern"])
469
+ ) = self._replace_patterns_regex(pattern)
447
470
  for fname in self.datadir.glob(glob_pattern):
448
471
  suffix = fname.relative_to(self.datadir).as_posix()
449
472
  m = re.match(re_pattern, suffix)