junifer 0.0.8.dev314__tar.gz → 0.0.8.dev318__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 (606) hide show
  1. {junifer-0.0.8.dev314/junifer.egg-info → junifer-0.0.8.dev318}/PKG-INFO +1 -1
  2. junifer-0.0.8.dev318/docs/changes/newsfragments/528.bugfix +1 -0
  3. junifer-0.0.8.dev318/docs/changes/newsfragments/528.change +1 -0
  4. junifer-0.0.8.dev318/docs/changes/newsfragments/528.doc +1 -0
  5. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/datagrabber.rst +11 -0
  6. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/_version.py +3 -3
  7. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +28 -0
  8. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/hcp1200.py +26 -0
  9. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +61 -0
  10. junifer-0.0.8.dev318/junifer/datagrabber/pattern_datalad.py +123 -0
  11. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_pattern_datalad.py +101 -0
  12. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318/junifer.egg-info}/PKG-INFO +1 -1
  13. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/SOURCES.txt +3 -0
  14. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/scm_file_list.json +3 -0
  15. junifer-0.0.8.dev318/junifer.egg-info/scm_version.json +8 -0
  16. junifer-0.0.8.dev314/junifer/datagrabber/pattern_datalad.py +0 -63
  17. junifer-0.0.8.dev314/junifer.egg-info/scm_version.json +0 -8
  18. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.dockerignore +0 -0
  19. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  20. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  21. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  22. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  23. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  24. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  25. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/dependabot.yml +0 -0
  26. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/pull_request_template.md +0 -0
  27. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/check-stale.yml +0 -0
  28. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/ci.yml +0 -0
  29. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/docker-publish.yml +0 -0
  30. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/docs-preview.yml +0 -0
  31. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/docs.yml +0 -0
  32. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/lint.yml +0 -0
  33. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.github/workflows/publish.yml +0 -0
  34. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.gitignore +0 -0
  35. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.gitmodules +0 -0
  36. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.pre-commit-config.yaml +0 -0
  37. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/.python-version +0 -0
  38. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/AUTHORS.rst +0 -0
  39. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/Dockerfile +0 -0
  40. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/Dockerfile-ci +0 -0
  41. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/LICENSE.md +0 -0
  42. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/README.md +0 -0
  43. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/codecov.yml +0 -0
  44. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/conda-env.yml +0 -0
  45. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/Makefile +0 -0
  46. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/_static/css/custom.css +0 -0
  47. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/_static/css/version_selector.css +0 -0
  48. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/_static/js/custom.js +0 -0
  49. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/_templates/versions.html +0 -0
  50. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/api.rst +0 -0
  51. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/cli.rst +0 -0
  52. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/configs.rst +0 -0
  53. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/data.rst +0 -0
  54. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/datagrabbers.rst +0 -0
  55. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/datareaders.rst +0 -0
  56. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/index.rst +0 -0
  57. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/markers.rst +0 -0
  58. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/nilearn.rst +0 -0
  59. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/onthefly.rst +0 -0
  60. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/pipeline.rst +0 -0
  61. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/preprocessing.rst +0 -0
  62. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/stats.rst +0 -0
  63. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/storage.rst +0 -0
  64. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/testing.rst +0 -0
  65. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/api/utils.rst +0 -0
  66. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/builtin.rst +0 -0
  67. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/contributors.inc +0 -0
  68. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/.gitignore +0 -0
  69. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/239.enh +0 -0
  70. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/364.doc +0 -0
  71. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/364.enh +0 -0
  72. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/364.feature +0 -0
  73. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/474.misc +0 -0
  74. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/482.bugfix +0 -0
  75. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/492.bugfix +0 -0
  76. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/499.enh +0 -0
  77. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/502.bugfix +0 -0
  78. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/503.enh +0 -0
  79. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/504.bugfix +0 -0
  80. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/504.misc +0 -0
  81. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/509.enh +0 -0
  82. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/510.bugfix +0 -0
  83. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.bugfix +0 -0
  84. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.bugfix.1 +0 -0
  85. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.change +0 -0
  86. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.enh +0 -0
  87. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.enh.1 +0 -0
  88. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.feature +0 -0
  89. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.misc +0 -0
  90. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/511.misc.1 +0 -0
  91. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/513.doc +0 -0
  92. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/513.misc +0 -0
  93. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/514.bugfix +0 -0
  94. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/514.bugfix.1 +0 -0
  95. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/514.enh +0 -0
  96. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/515.doc +0 -0
  97. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/515.enh +0 -0
  98. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/515.enh.1 +0 -0
  99. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/515.misc +0 -0
  100. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/515.misc.1 +0 -0
  101. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.bugfix +0 -0
  102. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.bugfix.1 +0 -0
  103. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.bugfix.2 +0 -0
  104. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.change +0 -0
  105. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.change.1 +0 -0
  106. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/516.misc +0 -0
  107. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix +0 -0
  108. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.1 +0 -0
  109. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.2 +0 -0
  110. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.3 +0 -0
  111. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.4 +0 -0
  112. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.5 +0 -0
  113. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.bugfix.6 +0 -0
  114. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.change +0 -0
  115. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.doc +0 -0
  116. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.misc +0 -0
  117. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.misc.1 +0 -0
  118. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.misc.2 +0 -0
  119. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.misc.3 +0 -0
  120. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/520.removal +0 -0
  121. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/521.bugfix +0 -0
  122. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/522.bugfix +0 -0
  123. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/522.enh +0 -0
  124. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/523.misc +0 -0
  125. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.bugfix +0 -0
  126. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.bugfix.1 +0 -0
  127. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.change +0 -0
  128. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.change.1 +0 -0
  129. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.change.2 +0 -0
  130. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.doc +0 -0
  131. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.enh +0 -0
  132. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.feature +0 -0
  133. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/524.feature.1 +0 -0
  134. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.bugfix +0 -0
  135. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.bugfix.1 +0 -0
  136. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.change +0 -0
  137. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.change.1 +0 -0
  138. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.change.2 +0 -0
  139. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.change.3 +0 -0
  140. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.change.4 +0 -0
  141. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.doc +0 -0
  142. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.enh +0 -0
  143. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/changes/newsfragments/525.feature +0 -0
  144. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/conf.py +0 -0
  145. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/contribution.rst +0 -0
  146. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/confounds_format.rst +0 -0
  147. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/coordinates.rst +0 -0
  148. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/data_dump_asset.rst +0 -0
  149. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/data_registries.rst +0 -0
  150. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/data_types.rst +0 -0
  151. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/dependencies.rst +0 -0
  152. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/extension.rst +0 -0
  153. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/index.rst +0 -0
  154. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/logging.rst +0 -0
  155. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/maps.rst +0 -0
  156. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/marker.rst +0 -0
  157. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/masks.rst +0 -0
  158. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/parcellations.rst +0 -0
  159. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/plugins.rst +0 -0
  160. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/extending/preprocessor.rst +0 -0
  161. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/faq.rst +0 -0
  162. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/help.rst +0 -0
  163. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/images/junifer_logo.png +0 -0
  164. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/index.rst +0 -0
  165. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/installation.rst +0 -0
  166. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/internals.rst +0 -0
  167. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/links.inc +0 -0
  168. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/maintaining.rst +0 -0
  169. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/poly.py +0 -0
  170. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/poly_files/patches/version_banner.html +0 -0
  171. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/poly_files/patches/versions.html +0 -0
  172. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/poly_files/templates/index.html +0 -0
  173. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/starting.rst +0 -0
  174. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/data.rst +0 -0
  175. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/datagrabber.rst +0 -0
  176. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/datareader.rst +0 -0
  177. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/index.rst +0 -0
  178. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/marker.rst +0 -0
  179. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/pipeline.rst +0 -0
  180. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/preprocess.rst +0 -0
  181. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/understanding/storage.rst +0 -0
  182. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/codeless.rst +0 -0
  183. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/configuring.rst +0 -0
  184. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/dumping.rst +0 -0
  185. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/index.rst +0 -0
  186. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/masks.rst +0 -0
  187. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/queueing.rst +0 -0
  188. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/using/running.rst +0 -0
  189. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/docs/whats_new.rst +0 -0
  190. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/README.rst +0 -0
  191. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/norun_hcpfc_pearson.py +0 -0
  192. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/norun_ukbvm_gmd.py +0 -0
  193. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/run_compute_parcel_mean.py +0 -0
  194. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/run_datagrabber_bids_datalad.py +0 -0
  195. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/run_ets_rss_marker.py +0 -0
  196. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/run_junifer_julearn.py +0 -0
  197. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/run_run_gmd_mean.py +0 -0
  198. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/yamls/gmd_mean.yaml +0 -0
  199. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  200. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  201. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  202. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/ignore_words.txt +0 -0
  203. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/__init__.py +0 -0
  204. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/__init__.pyi +0 -0
  205. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/__init__.py +0 -0
  206. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/__init__.pyi +0 -0
  207. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/decorators.py +0 -0
  208. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/functions.py +0 -0
  209. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/py.typed +0 -0
  210. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/__init__.py +0 -0
  211. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/__init__.pyi +0 -0
  212. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  213. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  214. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/py.typed +0 -0
  215. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  216. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  217. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  218. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  219. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/afni/3dRSFC +0 -0
  220. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/afni/3dReHo +0 -0
  221. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/afni/afni +0 -0
  222. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  223. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/ants/ResampleImage +0 -0
  224. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/ants/antsApplyTransforms +0 -0
  225. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  226. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  227. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/freesurfer/mri_binarize +0 -0
  228. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/freesurfer/mri_mc +0 -0
  229. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/freesurfer/mri_pretess +0 -0
  230. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/freesurfer/mris_convert +0 -0
  231. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  232. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/fsl/applywarp +0 -0
  233. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/fsl/flirt +0 -0
  234. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/fsl/img2imgcoord +0 -0
  235. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  236. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/fsl/std2imgcoord +0 -0
  237. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/run_conda.bash +0 -0
  238. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/run_conda.zsh +0 -0
  239. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/run_venv.bash +0 -0
  240. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/res/run_venv.zsh +0 -0
  241. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/tests/test_decorators.py +0 -0
  242. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/api/tests/test_functions.py +0 -0
  243. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/__init__.py +0 -0
  244. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/__init__.pyi +0 -0
  245. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/cli.py +0 -0
  246. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/parser.py +0 -0
  247. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/py.typed +0 -0
  248. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  249. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
  250. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  251. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/tests/test_cli.py +0 -0
  252. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/tests/test_cli_utils.py +0 -0
  253. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/cli/utils.py +0 -0
  254. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/__init__.py +0 -0
  255. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/__init__.pyi +0 -0
  256. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/__init__.py +0 -0
  257. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/__init__.pyi +0 -0
  258. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  259. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  260. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  261. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  262. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  263. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  264. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  265. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  266. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  267. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  268. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  269. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  270. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  271. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/juseless/py.typed +0 -0
  272. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/configs/py.typed +0 -0
  273. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/conftest.py +0 -0
  274. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/__init__.py +0 -0
  275. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/__init__.pyi +0 -0
  276. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/_dispatch.py +0 -0
  277. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/__init__.py +0 -0
  278. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/__init__.pyi +0 -0
  279. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
  280. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/_coordinates.py +0 -0
  281. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
  282. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  283. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/coordinates/tests/test_coordinates_names.py +0 -0
  284. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/__init__.py +0 -0
  285. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/__init__.pyi +0 -0
  286. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/_ants_maps_warper.py +0 -0
  287. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/_fsl_maps_warper.py +0 -0
  288. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/_maps.py +0 -0
  289. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/maps/tests/test_maps.py +0 -0
  290. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/__init__.py +0 -0
  291. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/__init__.pyi +0 -0
  292. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/_ants_mask_warper.py +0 -0
  293. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/_fsl_mask_warper.py +0 -0
  294. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/_masks.py +0 -0
  295. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/masks/tests/test_masks.py +0 -0
  296. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/__init__.py +0 -0
  297. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/__init__.pyi +0 -0
  298. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
  299. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
  300. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/_parcellations.py +0 -0
  301. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  302. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/pipeline_data_registry_base.py +0 -0
  303. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/py.typed +0 -0
  304. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/template_spaces.py +0 -0
  305. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/tests/test_data_utils.py +0 -0
  306. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/tests/test_dispatch.py +0 -0
  307. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/tests/test_template_spaces.py +0 -0
  308. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/data/utils.py +0 -0
  309. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/__init__.py +0 -0
  310. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/__init__.pyi +0 -0
  311. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/__init__.py +0 -0
  312. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  313. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/_types.py +0 -0
  314. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/id1000.py +0 -0
  315. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/piop1.py +0 -0
  316. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/piop2.py +0 -0
  317. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/py.typed +0 -0
  318. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  319. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  320. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  321. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/base.py +0 -0
  322. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/datalad_base.py +0 -0
  323. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  324. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  325. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  326. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/hcp1200/py.typed +0 -0
  327. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/multiple.py +0 -0
  328. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/pattern.py +0 -0
  329. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
  330. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/py.typed +0 -0
  331. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_base.py +0 -0
  332. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  333. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  334. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_multiple.py +0 -0
  335. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_pattern.py +0 -0
  336. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  337. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datareader/__init__.py +0 -0
  338. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datareader/__init__.pyi +0 -0
  339. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datareader/default.py +0 -0
  340. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datareader/py.typed +0 -0
  341. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/datareader/tests/test_default_reader.py +0 -0
  342. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.codecov.yml +0 -0
  343. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.codespellignore +0 -0
  344. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  345. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  346. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  347. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +0 -0
  348. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/dependabot.yml +0 -0
  349. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/workflows/build.yml +0 -0
  350. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/workflows/code-style.yml +0 -0
  351. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/workflows/doc.yml +0 -0
  352. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/workflows/publish.yml +0 -0
  353. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.github/workflows/pytest.yml +0 -0
  354. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/.gitignore +0 -0
  355. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/LICENSE +0 -0
  356. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/README.md +0 -0
  357. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  358. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  359. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  360. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  361. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/cli/__init__.py +0 -0
  362. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/cli/help_text.py +0 -0
  363. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/cli/parser.py +0 -0
  364. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/cli/utils.py +0 -0
  365. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
  366. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/commands/sys_info.py +0 -0
  367. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  368. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  369. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  370. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
  371. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +0 -0
  372. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  373. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/Makefile +0 -0
  374. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
  375. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +0 -0
  376. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +0 -0
  377. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +0 -0
  378. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/api/index.rst +0 -0
  379. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/conf.py +0 -0
  380. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/index.rst +0 -0
  381. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/links.inc +0 -0
  382. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/make.bat +0 -0
  383. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/doc/references.bib +0 -0
  384. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/pyproject.toml +0 -0
  385. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/BrainPrint/setup.py +0 -0
  386. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/__init__.py +0 -0
  387. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/__init__.pyi +0 -0
  388. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/__init__.py +0 -0
  389. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/__init__.pyi +0 -0
  390. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  391. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  392. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/py.typed +0 -0
  393. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  394. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  395. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/external/py.typed +0 -0
  396. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/__init__.py +0 -0
  397. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/__init__.pyi +0 -0
  398. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/base.py +0 -0
  399. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/brainprint.py +0 -0
  400. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/__init__.py +0 -0
  401. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/__init__.pyi +0 -0
  402. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/complexity_base.py +0 -0
  403. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/hurst_exponent.py +0 -0
  404. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  405. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/perm_entropy.py +0 -0
  406. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/py.typed +0 -0
  407. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/range_entropy.py +0 -0
  408. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  409. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/sample_entropy.py +0 -0
  410. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  411. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  412. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  413. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  414. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  415. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  416. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  417. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  418. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  419. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/ets_rss.py +0 -0
  420. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/__init__.py +0 -0
  421. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/__init__.pyi +0 -0
  422. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/_afni_falff.py +0 -0
  423. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/_junifer_falff.py +0 -0
  424. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/falff_base.py +0 -0
  425. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/falff_maps.py +0 -0
  426. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/falff_parcels.py +0 -0
  427. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/falff_spheres.py +0 -0
  428. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/py.typed +0 -0
  429. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/tests/test_falff_maps.py +0 -0
  430. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  431. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  432. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/__init__.py +0 -0
  433. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  434. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  435. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +0 -0
  436. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  437. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  438. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  439. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +0 -0
  440. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  441. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  442. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/py.typed +0 -0
  443. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  444. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +0 -0
  445. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  446. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  447. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  448. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +0 -0
  449. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  450. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  451. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/maps_aggregation.py +0 -0
  452. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/parcel_aggregation.py +0 -0
  453. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/py.typed +0 -0
  454. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/__init__.py +0 -0
  455. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/__init__.pyi +0 -0
  456. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/_afni_reho.py +0 -0
  457. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/_junifer_reho.py +0 -0
  458. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/py.typed +0 -0
  459. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/reho_base.py +0 -0
  460. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/reho_maps.py +0 -0
  461. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/reho_parcels.py +0 -0
  462. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/reho_spheres.py +0 -0
  463. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/tests/test_junifer_reho.py +0 -0
  464. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/tests/test_reho_maps.py +0 -0
  465. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  466. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  467. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/sphere_aggregation.py +0 -0
  468. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/__init__.py +0 -0
  469. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  470. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/py.typed +0 -0
  471. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  472. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/temporal_snr_maps.py +0 -0
  473. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  474. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  475. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  476. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +0 -0
  477. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  478. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  479. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_brainprint.py +0 -0
  480. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_ets_rss.py +0 -0
  481. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_lost_regions.py +0 -0
  482. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_maps_aggregation.py +0 -0
  483. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_marker_utils.py +0 -0
  484. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_markers_base.py +0 -0
  485. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  486. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  487. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/markers/utils.py +0 -0
  488. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/__init__.py +0 -0
  489. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/__init__.pyi +0 -0
  490. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/_brainprint.py +0 -0
  491. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/py.typed +0 -0
  492. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/read_transform.py +0 -0
  493. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/onthefly/tests/test_read_transform.py +0 -0
  494. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/__init__.py +0 -0
  495. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/__init__.pyi +0 -0
  496. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/_data_object_dumper.py +0 -0
  497. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/marker_collection.py +0 -0
  498. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/pipeline_component_registry.py +0 -0
  499. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  500. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/py.typed +0 -0
  501. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
  502. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_marker_collection.py +0 -0
  503. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  504. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  505. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  506. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  507. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/update_meta_mixin.py +0 -0
  508. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/utils.py +0 -0
  509. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/pipeline/workdir_manager.py +0 -0
  510. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/__init__.py +0 -0
  511. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/__init__.pyi +0 -0
  512. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/_temporal_filter.py +0 -0
  513. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/_temporal_slicer.py +0 -0
  514. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/base.py +0 -0
  515. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/confounds/__init__.py +0 -0
  516. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/confounds/__init__.pyi +0 -0
  517. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  518. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/confounds/py.typed +0 -0
  519. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  520. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/py.typed +0 -0
  521. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/__init__.py +0 -0
  522. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  523. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  524. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  525. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  526. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/py.typed +0 -0
  527. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/smoothing.py +0 -0
  528. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  529. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  530. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
  531. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
  532. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/__init__.py +0 -0
  533. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/__init__.pyi +0 -0
  534. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/_ants_warper.py +0 -0
  535. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  536. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/py.typed +0 -0
  537. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/space_warper.py +0 -0
  538. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  539. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/py.typed +0 -0
  540. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/stats.py +0 -0
  541. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/__init__.py +0 -0
  542. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/__init__.pyi +0 -0
  543. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/base.py +0 -0
  544. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/hdf5.py +0 -0
  545. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/pandas_base.py +0 -0
  546. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/py.typed +0 -0
  547. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/sqlite.py +0 -0
  548. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/data/collected_h5io_fork.hdf5 +0 -0
  549. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_hdf5.py +0 -0
  550. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_pandas_base.py +0 -0
  551. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_repeated_storage.py +0 -0
  552. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_sqlite.py +0 -0
  553. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_storage_base.py +0 -0
  554. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/tests/test_utils.py +0 -0
  555. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/storage/utils.py +0 -0
  556. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/__init__.py +0 -0
  557. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/__init__.pyi +0 -0
  558. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  559. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/datagrabbers.py +0 -0
  560. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/py.typed +0 -0
  561. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/registry.py +0 -0
  562. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_adhdtesting_datagrabber.py +0 -0
  563. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  564. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  565. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  566. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_testing_registry.py +0 -0
  567. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_testing_utils.py +0 -0
  568. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/tests/test_uclacnpvbmtesting_datagrabber.py +0 -0
  569. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/testing/utils.py +0 -0
  570. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/tests/test_main.py +0 -0
  571. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/tests/test_stats.py +0 -0
  572. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/typing/__init__.py +0 -0
  573. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/typing/__init__.pyi +0 -0
  574. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/typing/_typing.py +0 -0
  575. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/typing/py.typed +0 -0
  576. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/__init__.py +0 -0
  577. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/__init__.pyi +0 -0
  578. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/_config.py +0 -0
  579. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/_yaml.py +0 -0
  580. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/fs.py +0 -0
  581. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/helpers.py +0 -0
  582. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/logging.py +0 -0
  583. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/py.typed +0 -0
  584. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/singleton.py +0 -0
  585. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/tests/test_config.py +0 -0
  586. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/tests/test_fs.py +0 -0
  587. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/tests/test_helpers.py +0 -0
  588. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer/utils/tests/test_logging.py +0 -0
  589. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/dependency_links.txt +0 -0
  590. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/entry_points.txt +0 -0
  591. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/requires.txt +0 -0
  592. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/junifer.egg-info/top_level.txt +0 -0
  593. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/justfile +0 -0
  594. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/pyproject.toml +0 -0
  595. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/scripts/start.sh +0 -0
  596. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/setup.cfg +0 -0
  597. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/setup.py +0 -0
  598. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_aomic1000_example_dataset.py +0 -0
  599. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_aomicpiop1_example_dataset.py +0 -0
  600. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_aomicpiop2_example_dataset.py +0 -0
  601. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_bids_example_dataset.py +0 -0
  602. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_bids_example_dataset_sessions.py +0 -0
  603. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  604. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tools/create_hcp1200_example_dataset.py +0 -0
  605. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/tox.ini +0 -0
  606. {junifer-0.0.8.dev314 → junifer-0.0.8.dev318}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.8.dev314
3
+ Version: 0.0.8.dev318
4
4
  Summary: JUelich NeuroImaging FEature extractoR
5
5
  Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
6
6
  Maintainer-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
@@ -0,0 +1 @@
1
+ Fix :class:`.DataladHCP1200` listing only the subjects already installed (the subjects are sub-datasets) and not finding the BOLD data of the subjects not installed, by listing all the subjects without searching the files and building the paths of the BOLD data without wildcards by `Fede Raimondo`_
@@ -0,0 +1 @@
1
+ Raise an error when installing the dataset of a :class:`.PatternDataladDataGrabber` if a pattern searches the files of a sub-dataset, which are only there once the sub-dataset is installed, instead of not finding the elements by `Fede Raimondo`_
@@ -0,0 +1 @@
1
+ Document that the DataGrabbers with files in datalad sub-datasets must list their elements and build the paths without searching the files by `Fede Raimondo`_
@@ -399,6 +399,17 @@ This approach can be used directly from the YAML, like so:
399
399
  uri: "https://cerebra.fz-juelich.de/junifer/datalad-example-bids-ses.git"
400
400
  rootdir: example_bids_ses
401
401
 
402
+ .. important::
403
+
404
+ The elements are found by searching the files of the dataset, but the files
405
+ of a datalad *sub-dataset* are only there once the sub-dataset is installed.
406
+ If the patterns search the files of a sub-dataset (e.g., a dataset with a
407
+ sub-dataset for each subject), :class:`.PatternDataladDataGrabber` raises
408
+ an error when installing the dataset. These DataGrabbers must implement
409
+ ``get_elements`` without searching the files (e.g., from the names of the
410
+ sub-datasets) and build the paths in the sub-datasets without wildcards,
411
+ as :class:`.DataladHCP1200` does.
412
+
402
413
  .. _extending_datagrabbers_path_expansion:
403
414
 
404
415
  Advanced: Using Unix-like path expansion directives
@@ -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.dev314'
22
- __version_tuple__ = version_tuple = (0, 0, 8, 'dev314')
21
+ __version__ = version = '0.0.8.dev318'
22
+ __version_tuple__ = version_tuple = (0, 0, 8, 'dev318')
23
23
 
24
- __commit_id__ = commit_id = 'g968a03e78'
24
+ __commit_id__ = commit_id = 'gd4a9dcd3a'
@@ -5,12 +5,14 @@
5
5
  # Synchon Mandal <s.mandal@fz-juelich.de>
6
6
  # License: AGPL
7
7
 
8
+ from itertools import product
8
9
  from pathlib import Path
9
10
  from typing import Annotated, Literal
10
11
 
11
12
  from pydantic import AnyUrl, BeforeValidator
12
13
 
13
14
  from ...api.decorators import register_datagrabber
15
+ from ...typing import Elements
14
16
  from ...utils import ensure_list
15
17
  from ..base import DataType
16
18
  from ..datalad_base import DataladDataGrabber
@@ -67,3 +69,29 @@ class DataladHCP1200(DataladDataGrabber, HCP1200):
67
69
  def skip_file_check(self) -> bool:
68
70
  """Skip file check existence."""
69
71
  return True
72
+
73
+ def get_elements(self) -> Elements:
74
+ """Implement fetching list of elements in the dataset.
75
+
76
+ The subjects are sub-datasets, whose files are only there once they
77
+ are installed, so the files are not searched: the elements are all
78
+ the subjects (the directories of the dataset) with the tasks and
79
+ phase encodings to grab, even if some of them have no data.
80
+
81
+ Returns
82
+ -------
83
+ list
84
+ The list of elements that can be grabbed in the dataset.
85
+
86
+ """
87
+ subjects = sorted(
88
+ x.name
89
+ for x in self.fulldir.iterdir()
90
+ if x.is_dir() and not x.name.startswith(".")
91
+ )
92
+ values = {"subject": subjects, **self.get_replacement_values()}
93
+ element_keys = self.get_element_keys()
94
+ elements = list(product(*(values[k] for k in element_keys)))
95
+ if len(element_keys) == 1:
96
+ return [element[0] for element in elements]
97
+ return elements
@@ -162,3 +162,29 @@ class HCP1200(PatternDataGrabber):
162
162
  "pattern"
163
163
  ].replace("{suffix}", suffix)
164
164
  super().validate_datagrabber_params()
165
+
166
+ def _replace_patterns_glob(self, element: dict, pattern: str) -> str:
167
+ """Replace ``pattern`` with the ``element`` so it can be globbed.
168
+
169
+ The BOLD data of the resting-state tasks is in ``rfMRI_*`` and of the
170
+ other tasks in ``tfMRI_*``, so the path of an element is built
171
+ without searching the files, which are in sub-datasets in
172
+ :class:`.DataladHCP1200`.
173
+
174
+ Parameters
175
+ ----------
176
+ element : dict
177
+ The element to be used in the replacement.
178
+ pattern : str
179
+ The pattern to be replaced.
180
+
181
+ Returns
182
+ -------
183
+ str
184
+ The pattern with the element replaced.
185
+
186
+ """
187
+ if "task" in element:
188
+ prefix = "rfMRI" if "REST" in element["task"] else "tfMRI"
189
+ pattern = pattern.replace("?fMRI_", f"{prefix}_")
190
+ return super()._replace_patterns_glob(element, pattern)
@@ -8,6 +8,7 @@ import tempfile
8
8
  from collections.abc import Iterable
9
9
  from pathlib import Path
10
10
 
11
+ import datalad.api as dl
11
12
  import pytest
12
13
  from pydantic import AnyUrl
13
14
 
@@ -320,3 +321,63 @@ def test_HCP1200_incorrect_access_icafix(
320
321
  tasks=tasks,
321
322
  ica_fix=ica_fix,
322
323
  )
324
+
325
+
326
+ def test_DataladHCP1200_subdatasets(tmp_path: Path) -> None:
327
+ """Test DataladHCP1200 with a sub-dataset for each subject, as HCP.
328
+
329
+ Parameters
330
+ ----------
331
+ tmp_path : pathlib.Path
332
+ The path to the test directory.
333
+
334
+ """
335
+ dataset = dl.create(tmp_path / "origin", result_renderer="disabled")
336
+ for subject in ("100206", "100307"):
337
+ subdataset = dataset.create(subject, result_renderer="disabled")
338
+ for folder in ("rfMRI_REST1_LR", "tfMRI_WM_RL"):
339
+ path = (
340
+ subdataset.pathobj
341
+ / "MNINonLinear"
342
+ / "Results"
343
+ / folder
344
+ / f"{folder}.nii.gz"
345
+ )
346
+ path.parent.mkdir(parents=True)
347
+ path.write_text(f"{subject} {folder}")
348
+ path = subdataset.pathobj / "T1w" / "T1w_acpc_dc_restore.nii.gz"
349
+ path.parent.mkdir(parents=True)
350
+ path.write_text(f"{subject} T1w")
351
+ dataset.save(recursive=True, result_renderer="disabled")
352
+ dg = DataladHCP1200(
353
+ uri=AnyUrl(f"file://{dataset.path}"),
354
+ datadir=tmp_path / "clone",
355
+ rootdir=Path("."),
356
+ types=["BOLD", "T1w"],
357
+ tasks=["REST1", "WM"],
358
+ phase_encodings=["LR", "RL"],
359
+ )
360
+ with config_override("datagrabber.skipidcheck", True), dg:
361
+ # All the subjects with the tasks and phase encodings, without
362
+ # installing the sub-datasets
363
+ assert dg.get_elements() == [
364
+ (subject, task, phase_encoding)
365
+ for subject in ("100206", "100307")
366
+ for task in ("REST1", "WM")
367
+ for phase_encoding in ("LR", "RL")
368
+ ]
369
+ assert not (dg.fulldir / "100206" / "T1w").exists()
370
+ out = dg[("100307", "WM", "RL")]
371
+ assert out["BOLD"]["path"].read_text() == "100307 tfMRI_WM_RL"
372
+ assert out["T1w"]["path"].read_text() == "100307 T1w"
373
+ out = dg[("100206", "REST1", "LR")]
374
+ assert out["BOLD"]["path"].read_text() == "100206 rfMRI_REST1_LR"
375
+ dg = DataladHCP1200(
376
+ uri=AnyUrl(f"file://{dataset.path}"),
377
+ datadir=tmp_path / "clone",
378
+ rootdir=Path("."),
379
+ types=["T1w"],
380
+ )
381
+ with config_override("datagrabber.skipidcheck", True), dg:
382
+ assert dg.get_elements() == ["100206", "100307"]
383
+ assert dg["100206"]["T1w"]["path"].read_text() == "100206 T1w"
@@ -0,0 +1,123 @@
1
+ """Provide concrete implementation for pattern + datalad based DataGrabber."""
2
+
3
+ # Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
4
+ # Leonard Sasse <l.sasse@fz-juelich.de>
5
+ # Synchon Mandal <s.mandal@fz-juelich.de>
6
+ # License: AGPL
7
+
8
+ from fnmatch import fnmatchcase
9
+ from pathlib import Path
10
+
11
+ from pydantic import ConfigDict
12
+
13
+ from ..api.decorators import register_datagrabber
14
+ from ..utils import raise_error
15
+ from .base import logger
16
+ from .datalad_base import DataladDataGrabber
17
+ from .pattern import PatternDataGrabber
18
+
19
+
20
+ __all__ = ["PatternDataladDataGrabber"]
21
+
22
+
23
+ @register_datagrabber
24
+ class PatternDataladDataGrabber(DataladDataGrabber, PatternDataGrabber):
25
+ """Concrete implementation for pattern and datalad based data fetching.
26
+
27
+ Implements a DataGrabber that gets data from a datalad sibling,
28
+ interpreting patterns.
29
+
30
+ Parameters
31
+ ----------
32
+ uri : pydantic.AnyUrl
33
+ URI of the datalad sibling.
34
+ types : enum:`.DataType` or list of variants
35
+ The data type(s) to grab.
36
+ patterns : ``DataGrabberPatterns``
37
+ The datagrabber patterns. Check :class:`DataTypeSchema` for the schema.
38
+ replacements : list of str
39
+ All possible replacements in ``patterns.<data_type>.pattern``.
40
+ rootdir : pathlib.Path, optional
41
+ The path within the datalad dataset to the root directory
42
+ (default Path(".")).
43
+ confounds_format : :enum:`.ConfoundsFormat` or None, optional
44
+ The format of the confounds for the dataset (default None).
45
+ datadir : pathlib.Path, optional
46
+ That path where the datalad dataset will be cloned.
47
+ If not specified, the datalad dataset will be cloned into a temporary
48
+ directory.
49
+
50
+
51
+ See Also
52
+ --------
53
+ DataladDataGrabber:
54
+ Abstract base class for datalad-based data fetching.
55
+ PatternDataGrabber:
56
+ Concrete implementation for pattern-based data fetching.
57
+
58
+ """
59
+
60
+ model_config = ConfigDict(extra="allow")
61
+
62
+ def validate_datagrabber_params(self) -> None:
63
+ """Run extra logical validation for datagrabber."""
64
+ super().validate_datagrabber_params()
65
+ logger.debug("Initializing PatternDataladDataGrabber")
66
+ for key, val in self.__pydantic_extra__.items():
67
+ logger.debug(f"\t{key} = {val}")
68
+
69
+ def install(self) -> None:
70
+ """Install the datalad dataset and check the patterns.
71
+
72
+ The elements are found by searching the files of the patterns, but the
73
+ files of a sub-dataset are only there once the sub-dataset is
74
+ installed, so the patterns cannot search the files of the
75
+ sub-datasets (e.g., with one sub-dataset per subject).
76
+
77
+ Raises
78
+ ------
79
+ RuntimeError
80
+ If a pattern searches the files of a sub-dataset.
81
+
82
+ """
83
+ super().install()
84
+ subdatasets = [
85
+ Path(x)
86
+ for x in self._dataset.subdatasets(
87
+ result_xfm="relpaths",
88
+ result_renderer="disabled",
89
+ return_type="list",
90
+ )
91
+ ]
92
+ if len(subdatasets) == 0:
93
+ return
94
+ for data_type in self.types:
95
+ for pattern in self._get_type_patterns(data_type):
96
+ _, glob_pattern, _ = self._replace_patterns_regex(pattern)
97
+ if not any(x in glob_pattern for x in "*?["):
98
+ continue
99
+ pattern_parts = (self.rootdir / glob_pattern).parts
100
+ for subdataset in subdatasets:
101
+ n_parts = len(subdataset.parts)
102
+ if len(pattern_parts) > n_parts and all(
103
+ fnmatchcase(x, y)
104
+ for x, y in zip(
105
+ subdataset.parts, pattern_parts, strict=False
106
+ )
107
+ ):
108
+ # Remove the dataset if cloned, as the context is
109
+ # not entered
110
+ self.cleanup()
111
+ raise_error(
112
+ msg=(
113
+ f"The pattern {pattern} of {data_type} "
114
+ "searches the files of the sub-dataset "
115
+ f"{subdataset}, which are only there if it "
116
+ "is installed. A DataGrabber with files in "
117
+ "sub-datasets must list its elements and "
118
+ "build the paths of the files without "
119
+ "searching them (e.g., without wildcards), "
120
+ "as DataladHCP1200."
121
+ ),
122
+ klass=RuntimeError,
123
+ )
@@ -7,6 +7,8 @@
7
7
 
8
8
  from pathlib import Path
9
9
 
10
+ import datalad.api as dl
11
+ import pytest
10
12
  from pydantic import AnyUrl
11
13
 
12
14
  from junifer.datagrabber import DataType, PatternDataladDataGrabber
@@ -174,3 +176,102 @@ def test_bids_PatternDataladDataGrabber_session():
174
176
  for i in range(1, 10)
175
177
  ]
176
178
  assert set(subs) == set(expected_subs)
179
+
180
+
181
+ @pytest.fixture
182
+ def subdatasets_uri(tmp_path: Path) -> AnyUrl:
183
+ """Return the URI of a dataset with a sub-dataset for each subject.
184
+
185
+ Parameters
186
+ ----------
187
+ tmp_path : pathlib.Path
188
+ The path to the test directory.
189
+
190
+ """
191
+ dataset = dl.create(tmp_path / "origin", result_renderer="disabled")
192
+ for subject in ("sub-01", "sub-02"):
193
+ subdataset = dataset.create(subject, result_renderer="disabled")
194
+ (subdataset.pathobj / "T1w.nii").write_text(subject)
195
+ (dataset.pathobj / f"{subject}_T1w.nii").write_text(subject)
196
+ dataset.save(recursive=True, result_renderer="disabled")
197
+ return AnyUrl(f"file://{dataset.path}")
198
+
199
+
200
+ @pytest.mark.parametrize(
201
+ "pattern",
202
+ ["{subject}/T1w.nii", "{subject}/T1*.nii"],
203
+ )
204
+ def test_PatternDataladDataGrabber_subdatasets_search(
205
+ tmp_path: Path, subdatasets_uri: AnyUrl, pattern: str
206
+ ) -> None:
207
+ """Test searching the files of the sub-datasets raises an error.
208
+
209
+ Parameters
210
+ ----------
211
+ tmp_path : pathlib.Path
212
+ The path to the test directory.
213
+ subdatasets_uri : pydantic.AnyUrl
214
+ The URI of the dataset with a sub-dataset for each subject.
215
+ pattern : str
216
+ The parametrized pattern, which searches the files of the
217
+ sub-datasets.
218
+
219
+ """
220
+ dg = PatternDataladDataGrabber(
221
+ uri=subdatasets_uri,
222
+ datadir=tmp_path / "clone",
223
+ types=["T1w"],
224
+ patterns={"T1w": {"pattern": pattern, "space": "native"}},
225
+ replacements=["subject"],
226
+ )
227
+ with pytest.raises(RuntimeError, match="searches the files of the"):
228
+ with dg:
229
+ pass
230
+ # The cloned dataset is removed
231
+ assert not (tmp_path / "clone").exists() or not any(
232
+ (tmp_path / "clone").iterdir()
233
+ )
234
+
235
+
236
+ def test_PatternDataladDataGrabber_subdatasets_files(
237
+ tmp_path: Path, subdatasets_uri: AnyUrl
238
+ ) -> None:
239
+ """Test the patterns of a dataset with sub-datasets.
240
+
241
+ The files of the dataset can be searched, and the patterns without
242
+ wildcards can have files in the sub-datasets.
243
+
244
+ Parameters
245
+ ----------
246
+ tmp_path : pathlib.Path
247
+ The path to the test directory.
248
+ subdatasets_uri : pydantic.AnyUrl
249
+ The URI of the dataset with a sub-dataset for each subject.
250
+
251
+ """
252
+ dg = PatternDataladDataGrabber(
253
+ uri=subdatasets_uri,
254
+ datadir=tmp_path / "clone",
255
+ types=["T1w"],
256
+ patterns={"T1w": {"pattern": "{subject}_T1w.nii", "space": "native"}},
257
+ replacements=["subject"],
258
+ )
259
+ with dg:
260
+ assert dg.get_elements() == ["sub-01", "sub-02"]
261
+ assert dg["sub-02"]["T1w"]["path"].read_text() == "sub-02"
262
+ # A pattern without wildcards in a sub-dataset
263
+ dg = PatternDataladDataGrabber(
264
+ uri=subdatasets_uri,
265
+ datadir=tmp_path / "clone",
266
+ types=["T1w"],
267
+ patterns={
268
+ "T1w": {
269
+ "pattern": "{subject}_T1w.nii",
270
+ "space": "native",
271
+ "mask": {"pattern": "sub-01/T1w.nii", "space": "native"},
272
+ }
273
+ },
274
+ replacements=["subject"],
275
+ )
276
+ with dg:
277
+ assert dg.get_elements() == ["sub-01", "sub-02"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.8.dev314
3
+ Version: 0.0.8.dev318
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>
@@ -142,6 +142,9 @@ docs/changes/newsfragments/525.change.4
142
142
  docs/changes/newsfragments/525.doc
143
143
  docs/changes/newsfragments/525.enh
144
144
  docs/changes/newsfragments/525.feature
145
+ docs/changes/newsfragments/528.bugfix
146
+ docs/changes/newsfragments/528.change
147
+ docs/changes/newsfragments/528.doc
145
148
  docs/extending/confounds_format.rst
146
149
  docs/extending/coordinates.rst
147
150
  docs/extending/data_dump_asset.rst
@@ -126,6 +126,9 @@
126
126
  "docs/changes/newsfragments/525.doc",
127
127
  "docs/changes/newsfragments/525.enh",
128
128
  "docs/changes/newsfragments/525.feature",
129
+ "docs/changes/newsfragments/528.bugfix",
130
+ "docs/changes/newsfragments/528.change",
131
+ "docs/changes/newsfragments/528.doc",
129
132
  "docs/conf.py",
130
133
  "docs/contribution.rst",
131
134
  "docs/extending/confounds_format.rst",
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.0.7",
3
+ "distance": 318,
4
+ "node": "gd4a9dcd3af71183d3e209a5a12a76166af95fc98",
5
+ "dirty": false,
6
+ "branch": "main",
7
+ "node_date": "2026-10-14"
8
+ }
@@ -1,63 +0,0 @@
1
- """Provide concrete implementation for pattern + datalad based DataGrabber."""
2
-
3
- # Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
4
- # Leonard Sasse <l.sasse@fz-juelich.de>
5
- # Synchon Mandal <s.mandal@fz-juelich.de>
6
- # License: AGPL
7
-
8
- from pydantic import ConfigDict
9
-
10
- from ..api.decorators import register_datagrabber
11
- from .base import logger
12
- from .datalad_base import DataladDataGrabber
13
- from .pattern import PatternDataGrabber
14
-
15
-
16
- __all__ = ["PatternDataladDataGrabber"]
17
-
18
-
19
- @register_datagrabber
20
- class PatternDataladDataGrabber(DataladDataGrabber, PatternDataGrabber):
21
- """Concrete implementation for pattern and datalad based data fetching.
22
-
23
- Implements a DataGrabber that gets data from a datalad sibling,
24
- interpreting patterns.
25
-
26
- Parameters
27
- ----------
28
- uri : pydantic.AnyUrl
29
- URI of the datalad sibling.
30
- types : enum:`.DataType` or list of variants
31
- The data type(s) to grab.
32
- patterns : ``DataGrabberPatterns``
33
- The datagrabber patterns. Check :class:`DataTypeSchema` for the schema.
34
- replacements : list of str
35
- All possible replacements in ``patterns.<data_type>.pattern``.
36
- rootdir : pathlib.Path, optional
37
- The path within the datalad dataset to the root directory
38
- (default Path(".")).
39
- confounds_format : :enum:`.ConfoundsFormat` or None, optional
40
- The format of the confounds for the dataset (default None).
41
- datadir : pathlib.Path, optional
42
- That path where the datalad dataset will be cloned.
43
- If not specified, the datalad dataset will be cloned into a temporary
44
- directory.
45
-
46
-
47
- See Also
48
- --------
49
- DataladDataGrabber:
50
- Abstract base class for datalad-based data fetching.
51
- PatternDataGrabber:
52
- Concrete implementation for pattern-based data fetching.
53
-
54
- """
55
-
56
- model_config = ConfigDict(extra="allow")
57
-
58
- def validate_datagrabber_params(self) -> None:
59
- """Run extra logical validation for datagrabber."""
60
- super().validate_datagrabber_params()
61
- logger.debug("Initializing PatternDataladDataGrabber")
62
- for key, val in self.__pydantic_extra__.items():
63
- logger.debug(f"\t{key} = {val}")
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "0.0.7",
3
- "distance": 314,
4
- "node": "g968a03e78f4e60e1f40e75421a76b8b528206db0",
5
- "dirty": false,
6
- "branch": "main",
7
- "node_date": "2026-10-10"
8
- }
File without changes