junifer 0.0.8.dev290__tar.gz → 0.0.8.dev295__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 (601) hide show
  1. {junifer-0.0.8.dev290/junifer.egg-info → junifer-0.0.8.dev295}/PKG-INFO +1 -1
  2. junifer-0.0.8.dev295/docs/changes/newsfragments/522.bugfix +1 -0
  3. junifer-0.0.8.dev295/docs/changes/newsfragments/522.enh +1 -0
  4. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/_version.py +3 -3
  5. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/base.py +12 -1
  6. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/temporal_snr_base.py +6 -4
  7. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +3 -0
  8. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +3 -0
  9. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +3 -0
  10. junifer-0.0.8.dev295/junifer/markers/tests/test_markers_base.py +349 -0
  11. junifer-0.0.8.dev295/junifer/markers/utils.py +304 -0
  12. junifer-0.0.8.dev295/junifer/pipeline/tests/test_marker_collection.py +195 -0
  13. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/confounds/fmriprep_confound_remover.py +2 -2
  14. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295/junifer.egg-info}/PKG-INFO +1 -1
  15. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer.egg-info/SOURCES.txt +2 -0
  16. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer.egg-info/scm_file_list.json +2 -0
  17. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer.egg-info/scm_version.json +2 -2
  18. junifer-0.0.8.dev290/junifer/markers/tests/test_markers_base.py +0 -107
  19. junifer-0.0.8.dev290/junifer/markers/utils.py +0 -141
  20. junifer-0.0.8.dev290/junifer/pipeline/tests/test_marker_collection.py +0 -224
  21. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.dockerignore +0 -0
  22. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  23. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  24. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  25. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  26. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  27. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  28. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/dependabot.yml +0 -0
  29. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/pull_request_template.md +0 -0
  30. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/workflows/check-stale.yml +0 -0
  31. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/workflows/ci.yml +0 -0
  32. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/workflows/docker-publish.yml +0 -0
  33. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/workflows/docs-preview.yml +0 -0
  34. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/workflows/docs.yml +0 -0
  35. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/workflows/lint.yml +0 -0
  36. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.github/workflows/publish.yml +0 -0
  37. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.gitignore +0 -0
  38. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.gitmodules +0 -0
  39. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.pre-commit-config.yaml +0 -0
  40. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/.python-version +0 -0
  41. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/AUTHORS.rst +0 -0
  42. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/Dockerfile +0 -0
  43. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/Dockerfile-ci +0 -0
  44. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/LICENSE.md +0 -0
  45. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/README.md +0 -0
  46. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/codecov.yml +0 -0
  47. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/conda-env.yml +0 -0
  48. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/Makefile +0 -0
  49. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/_static/css/custom.css +0 -0
  50. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/_static/css/version_selector.css +0 -0
  51. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/_static/js/custom.js +0 -0
  52. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/_templates/versions.html +0 -0
  53. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/api.rst +0 -0
  54. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/cli.rst +0 -0
  55. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/configs.rst +0 -0
  56. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/data.rst +0 -0
  57. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/datagrabbers.rst +0 -0
  58. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/datareaders.rst +0 -0
  59. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/index.rst +0 -0
  60. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/markers.rst +0 -0
  61. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/nilearn.rst +0 -0
  62. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/onthefly.rst +0 -0
  63. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/pipeline.rst +0 -0
  64. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/preprocessing.rst +0 -0
  65. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/stats.rst +0 -0
  66. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/storage.rst +0 -0
  67. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/testing.rst +0 -0
  68. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/api/utils.rst +0 -0
  69. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/builtin.rst +0 -0
  70. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/contributors.inc +0 -0
  71. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/.gitignore +0 -0
  72. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/239.enh +0 -0
  73. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/364.doc +0 -0
  74. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/364.enh +0 -0
  75. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/364.feature +0 -0
  76. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/474.misc +0 -0
  77. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/482.bugfix +0 -0
  78. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/492.bugfix +0 -0
  79. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/499.enh +0 -0
  80. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/502.bugfix +0 -0
  81. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/503.enh +0 -0
  82. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/510.bugfix +0 -0
  83. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/511.bugfix +0 -0
  84. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/511.bugfix.1 +0 -0
  85. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/511.change +0 -0
  86. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/511.enh +0 -0
  87. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/511.enh.1 +0 -0
  88. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/511.feature +0 -0
  89. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/511.misc +0 -0
  90. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/511.misc.1 +0 -0
  91. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/513.doc +0 -0
  92. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/513.misc +0 -0
  93. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/514.bugfix +0 -0
  94. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/514.bugfix.1 +0 -0
  95. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/514.enh +0 -0
  96. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/515.doc +0 -0
  97. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/515.enh +0 -0
  98. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/515.enh.1 +0 -0
  99. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/515.misc +0 -0
  100. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/515.misc.1 +0 -0
  101. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/516.bugfix +0 -0
  102. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/516.bugfix.1 +0 -0
  103. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/516.bugfix.2 +0 -0
  104. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/516.change +0 -0
  105. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/516.change.1 +0 -0
  106. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/516.misc +0 -0
  107. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.bugfix +0 -0
  108. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.bugfix.1 +0 -0
  109. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.bugfix.2 +0 -0
  110. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.bugfix.3 +0 -0
  111. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.bugfix.4 +0 -0
  112. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.bugfix.5 +0 -0
  113. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.bugfix.6 +0 -0
  114. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.change +0 -0
  115. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.doc +0 -0
  116. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.misc +0 -0
  117. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.misc.1 +0 -0
  118. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.misc.2 +0 -0
  119. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.misc.3 +0 -0
  120. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/520.removal +0 -0
  121. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/changes/newsfragments/521.bugfix +0 -0
  122. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/conf.py +0 -0
  123. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/contribution.rst +0 -0
  124. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/confounds_format.rst +0 -0
  125. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/coordinates.rst +0 -0
  126. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/data_dump_asset.rst +0 -0
  127. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/data_registries.rst +0 -0
  128. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/data_types.rst +0 -0
  129. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/datagrabber.rst +0 -0
  130. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/dependencies.rst +0 -0
  131. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/extension.rst +0 -0
  132. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/index.rst +0 -0
  133. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/logging.rst +0 -0
  134. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/maps.rst +0 -0
  135. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/marker.rst +0 -0
  136. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/masks.rst +0 -0
  137. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/parcellations.rst +0 -0
  138. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/plugins.rst +0 -0
  139. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/extending/preprocessor.rst +0 -0
  140. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/faq.rst +0 -0
  141. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/help.rst +0 -0
  142. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/images/junifer_logo.png +0 -0
  143. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/index.rst +0 -0
  144. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/installation.rst +0 -0
  145. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/links.inc +0 -0
  146. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/maintaining.rst +0 -0
  147. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/poly.py +0 -0
  148. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/poly_files/patches/version_banner.html +0 -0
  149. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/poly_files/patches/versions.html +0 -0
  150. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/poly_files/templates/index.html +0 -0
  151. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/starting.rst +0 -0
  152. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/understanding/data.rst +0 -0
  153. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/understanding/datagrabber.rst +0 -0
  154. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/understanding/datareader.rst +0 -0
  155. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/understanding/index.rst +0 -0
  156. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/understanding/marker.rst +0 -0
  157. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/understanding/pipeline.rst +0 -0
  158. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/understanding/preprocess.rst +0 -0
  159. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/understanding/storage.rst +0 -0
  160. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/using/codeless.rst +0 -0
  161. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/using/configuring.rst +0 -0
  162. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/using/dumping.rst +0 -0
  163. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/using/index.rst +0 -0
  164. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/using/masks.rst +0 -0
  165. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/using/queueing.rst +0 -0
  166. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/using/running.rst +0 -0
  167. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/docs/whats_new.rst +0 -0
  168. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/README.rst +0 -0
  169. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/norun_hcpfc_pearson.py +0 -0
  170. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/norun_ukbvm_gmd.py +0 -0
  171. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/run_compute_parcel_mean.py +0 -0
  172. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/run_datagrabber_bids_datalad.py +0 -0
  173. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/run_ets_rss_marker.py +0 -0
  174. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/run_junifer_julearn.py +0 -0
  175. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/run_run_gmd_mean.py +0 -0
  176. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/yamls/gmd_mean.yaml +0 -0
  177. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  178. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  179. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  180. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/ignore_words.txt +0 -0
  181. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/__init__.py +0 -0
  182. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/__init__.pyi +0 -0
  183. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/__init__.py +0 -0
  184. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/__init__.pyi +0 -0
  185. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/decorators.py +0 -0
  186. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/functions.py +0 -0
  187. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/py.typed +0 -0
  188. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/queue_context/__init__.py +0 -0
  189. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/queue_context/__init__.pyi +0 -0
  190. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  191. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  192. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/queue_context/py.typed +0 -0
  193. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  194. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  195. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  196. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  197. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/afni/3dRSFC +0 -0
  198. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/afni/3dReHo +0 -0
  199. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/afni/afni +0 -0
  200. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  201. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/ants/ResampleImage +0 -0
  202. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/ants/antsApplyTransforms +0 -0
  203. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  204. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  205. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/freesurfer/mri_binarize +0 -0
  206. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/freesurfer/mri_mc +0 -0
  207. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/freesurfer/mri_pretess +0 -0
  208. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/freesurfer/mris_convert +0 -0
  209. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  210. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/fsl/applywarp +0 -0
  211. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/fsl/flirt +0 -0
  212. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/fsl/img2imgcoord +0 -0
  213. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  214. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/fsl/std2imgcoord +0 -0
  215. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/run_conda.bash +0 -0
  216. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/run_conda.zsh +0 -0
  217. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/run_venv.bash +0 -0
  218. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/res/run_venv.zsh +0 -0
  219. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/tests/test_decorators.py +0 -0
  220. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/api/tests/test_functions.py +0 -0
  221. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/__init__.py +0 -0
  222. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/__init__.pyi +0 -0
  223. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/cli.py +0 -0
  224. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/parser.py +0 -0
  225. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/py.typed +0 -0
  226. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  227. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
  228. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  229. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/tests/test_cli.py +0 -0
  230. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/tests/test_cli_utils.py +0 -0
  231. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/cli/utils.py +0 -0
  232. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/__init__.py +0 -0
  233. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/__init__.pyi +0 -0
  234. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/__init__.py +0 -0
  235. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/__init__.pyi +0 -0
  236. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  237. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  238. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  239. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  240. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  241. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  242. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  243. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  244. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  245. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  246. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  247. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  248. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  249. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/juseless/py.typed +0 -0
  250. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/configs/py.typed +0 -0
  251. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/conftest.py +0 -0
  252. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/__init__.py +0 -0
  253. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/__init__.pyi +0 -0
  254. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/_dispatch.py +0 -0
  255. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/coordinates/__init__.py +0 -0
  256. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/coordinates/__init__.pyi +0 -0
  257. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
  258. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/coordinates/_coordinates.py +0 -0
  259. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
  260. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  261. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/coordinates/tests/test_coordinates_names.py +0 -0
  262. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/maps/__init__.py +0 -0
  263. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/maps/__init__.pyi +0 -0
  264. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/maps/_ants_maps_warper.py +0 -0
  265. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/maps/_fsl_maps_warper.py +0 -0
  266. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/maps/_maps.py +0 -0
  267. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/maps/tests/test_maps.py +0 -0
  268. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/masks/__init__.py +0 -0
  269. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/masks/__init__.pyi +0 -0
  270. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/masks/_ants_mask_warper.py +0 -0
  271. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/masks/_fsl_mask_warper.py +0 -0
  272. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/masks/_masks.py +0 -0
  273. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/masks/tests/test_masks.py +0 -0
  274. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/parcellations/__init__.py +0 -0
  275. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/parcellations/__init__.pyi +0 -0
  276. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
  277. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
  278. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/parcellations/_parcellations.py +0 -0
  279. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  280. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/pipeline_data_registry_base.py +0 -0
  281. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/py.typed +0 -0
  282. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/template_spaces.py +0 -0
  283. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/tests/test_data_utils.py +0 -0
  284. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/tests/test_dispatch.py +0 -0
  285. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/tests/test_template_spaces.py +0 -0
  286. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/data/utils.py +0 -0
  287. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/__init__.py +0 -0
  288. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/__init__.pyi +0 -0
  289. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/aomic/__init__.py +0 -0
  290. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  291. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/aomic/_types.py +0 -0
  292. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/aomic/id1000.py +0 -0
  293. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/aomic/piop1.py +0 -0
  294. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/aomic/piop2.py +0 -0
  295. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/aomic/py.typed +0 -0
  296. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  297. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  298. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  299. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/base.py +0 -0
  300. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/datalad_base.py +0 -0
  301. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  302. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  303. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  304. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  305. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  306. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/hcp1200/py.typed +0 -0
  307. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  308. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/multiple.py +0 -0
  309. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/pattern.py +0 -0
  310. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/pattern_datalad.py +0 -0
  311. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
  312. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/py.typed +0 -0
  313. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/tests/test_base.py +0 -0
  314. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  315. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  316. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/tests/test_multiple.py +0 -0
  317. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/tests/test_pattern.py +0 -0
  318. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  319. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  320. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datareader/__init__.py +0 -0
  321. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datareader/__init__.pyi +0 -0
  322. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datareader/default.py +0 -0
  323. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datareader/py.typed +0 -0
  324. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/datareader/tests/test_default_reader.py +0 -0
  325. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.codecov.yml +0 -0
  326. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.codespellignore +0 -0
  327. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  328. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  329. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  330. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +0 -0
  331. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.github/dependabot.yml +0 -0
  332. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.github/workflows/build.yml +0 -0
  333. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.github/workflows/code-style.yml +0 -0
  334. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.github/workflows/doc.yml +0 -0
  335. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.github/workflows/publish.yml +0 -0
  336. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.github/workflows/pytest.yml +0 -0
  337. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/.gitignore +0 -0
  338. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/LICENSE +0 -0
  339. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/README.md +0 -0
  340. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  341. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  342. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  343. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  344. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/cli/__init__.py +0 -0
  345. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/cli/help_text.py +0 -0
  346. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/cli/parser.py +0 -0
  347. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/cli/utils.py +0 -0
  348. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
  349. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/commands/sys_info.py +0 -0
  350. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  351. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  352. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  353. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
  354. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +0 -0
  355. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  356. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/Makefile +0 -0
  357. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
  358. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +0 -0
  359. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +0 -0
  360. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +0 -0
  361. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/api/index.rst +0 -0
  362. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/conf.py +0 -0
  363. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/index.rst +0 -0
  364. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/links.inc +0 -0
  365. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/make.bat +0 -0
  366. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/doc/references.bib +0 -0
  367. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/pyproject.toml +0 -0
  368. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/BrainPrint/setup.py +0 -0
  369. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/__init__.py +0 -0
  370. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/__init__.pyi +0 -0
  371. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/.coveragerc +0 -0
  372. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/.gitattributes +0 -0
  373. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/.gitignore +0 -0
  374. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/.travis.yml +0 -0
  375. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/.vscode/launch.json +0 -0
  376. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/.vscode/settings.json +0 -0
  377. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/LICENSE.txt +0 -0
  378. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/MANIFEST.in +0 -0
  379. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/Makefile +0 -0
  380. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/README.rst +0 -0
  381. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/azure-pipelines.yml +0 -0
  382. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/h5io/__init__.py +0 -0
  383. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/h5io/_h5io.py +0 -0
  384. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/h5io/_version.py +0 -0
  385. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  386. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  387. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/h5io/tests/__init__.py +0 -0
  388. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/h5io/tests/test_chunked_array.py +0 -0
  389. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/h5io/tests/test_chunked_list.py +0 -0
  390. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/h5io/tests/test_io.py +0 -0
  391. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/setup.cfg +0 -0
  392. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/setup.py +0 -0
  393. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/h5io/versioneer.py +0 -0
  394. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/nilearn/__init__.py +0 -0
  395. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/nilearn/__init__.pyi +0 -0
  396. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  397. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  398. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/nilearn/py.typed +0 -0
  399. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  400. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  401. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/external/py.typed +0 -0
  402. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/__init__.py +0 -0
  403. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/__init__.pyi +0 -0
  404. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/brainprint.py +0 -0
  405. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/__init__.py +0 -0
  406. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/__init__.pyi +0 -0
  407. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/complexity_base.py +0 -0
  408. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/hurst_exponent.py +0 -0
  409. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  410. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/perm_entropy.py +0 -0
  411. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/py.typed +0 -0
  412. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/range_entropy.py +0 -0
  413. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  414. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/sample_entropy.py +0 -0
  415. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  416. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  417. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  418. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  419. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  420. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  421. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  422. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  423. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  424. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/ets_rss.py +0 -0
  425. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/__init__.py +0 -0
  426. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/__init__.pyi +0 -0
  427. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/_afni_falff.py +0 -0
  428. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/_junifer_falff.py +0 -0
  429. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/falff_base.py +0 -0
  430. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/falff_maps.py +0 -0
  431. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/falff_parcels.py +0 -0
  432. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/falff_spheres.py +0 -0
  433. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/py.typed +0 -0
  434. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/tests/test_falff_maps.py +0 -0
  435. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  436. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  437. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/__init__.py +0 -0
  438. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  439. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  440. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +0 -0
  441. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  442. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  443. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  444. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +0 -0
  445. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  446. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  447. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/py.typed +0 -0
  448. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  449. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +0 -0
  450. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  451. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  452. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  453. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +0 -0
  454. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  455. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  456. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/maps_aggregation.py +0 -0
  457. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/parcel_aggregation.py +0 -0
  458. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/py.typed +0 -0
  459. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/__init__.py +0 -0
  460. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/__init__.pyi +0 -0
  461. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/_afni_reho.py +0 -0
  462. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/_junifer_reho.py +0 -0
  463. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/py.typed +0 -0
  464. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/reho_base.py +0 -0
  465. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/reho_maps.py +0 -0
  466. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/reho_parcels.py +0 -0
  467. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/reho_spheres.py +0 -0
  468. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/tests/test_junifer_reho.py +0 -0
  469. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/tests/test_reho_maps.py +0 -0
  470. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  471. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  472. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/sphere_aggregation.py +0 -0
  473. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/__init__.py +0 -0
  474. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  475. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/py.typed +0 -0
  476. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/temporal_snr_maps.py +0 -0
  477. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  478. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  479. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  480. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/tests/test_brainprint.py +0 -0
  481. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/tests/test_ets_rss.py +0 -0
  482. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/tests/test_lost_regions.py +0 -0
  483. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/tests/test_maps_aggregation.py +0 -0
  484. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/tests/test_marker_utils.py +0 -0
  485. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  486. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  487. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/onthefly/__init__.py +0 -0
  488. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/onthefly/__init__.pyi +0 -0
  489. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/onthefly/_brainprint.py +0 -0
  490. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/onthefly/py.typed +0 -0
  491. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/onthefly/read_transform.py +0 -0
  492. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/onthefly/tests/test_read_transform.py +0 -0
  493. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/__init__.py +0 -0
  494. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/__init__.pyi +0 -0
  495. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/_data_object_dumper.py +0 -0
  496. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/marker_collection.py +0 -0
  497. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/pipeline_component_registry.py +0 -0
  498. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  499. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/py.typed +0 -0
  500. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
  501. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  502. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  503. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  504. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  505. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/update_meta_mixin.py +0 -0
  506. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/utils.py +0 -0
  507. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/pipeline/workdir_manager.py +0 -0
  508. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/__init__.py +0 -0
  509. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/__init__.pyi +0 -0
  510. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/_temporal_filter.py +0 -0
  511. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/_temporal_slicer.py +0 -0
  512. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/base.py +0 -0
  513. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/confounds/__init__.py +0 -0
  514. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/confounds/__init__.pyi +0 -0
  515. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/confounds/py.typed +0 -0
  516. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  517. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/py.typed +0 -0
  518. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/smoothing/__init__.py +0 -0
  519. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  520. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  521. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  522. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  523. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/smoothing/py.typed +0 -0
  524. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/smoothing/smoothing.py +0 -0
  525. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  526. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  527. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
  528. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
  529. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/warping/__init__.py +0 -0
  530. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/warping/__init__.pyi +0 -0
  531. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/warping/_ants_warper.py +0 -0
  532. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  533. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/warping/py.typed +0 -0
  534. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/warping/space_warper.py +0 -0
  535. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  536. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/py.typed +0 -0
  537. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/stats.py +0 -0
  538. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/__init__.py +0 -0
  539. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/__init__.pyi +0 -0
  540. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/base.py +0 -0
  541. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/hdf5.py +0 -0
  542. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/pandas_base.py +0 -0
  543. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/py.typed +0 -0
  544. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/sqlite.py +0 -0
  545. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/tests/test_hdf5.py +0 -0
  546. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/tests/test_pandas_base.py +0 -0
  547. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/tests/test_sqlite.py +0 -0
  548. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/tests/test_storage_base.py +0 -0
  549. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/tests/test_utils.py +0 -0
  550. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/storage/utils.py +0 -0
  551. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/__init__.py +0 -0
  552. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/__init__.pyi +0 -0
  553. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  554. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/datagrabbers.py +0 -0
  555. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/py.typed +0 -0
  556. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/registry.py +0 -0
  557. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/tests/test_adhdtesting_datagrabber.py +0 -0
  558. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  559. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  560. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  561. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/tests/test_testing_registry.py +0 -0
  562. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/tests/test_testing_utils.py +0 -0
  563. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/tests/test_uclacnpvbmtesting_datagrabber.py +0 -0
  564. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/testing/utils.py +0 -0
  565. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/tests/test_main.py +0 -0
  566. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/tests/test_stats.py +0 -0
  567. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/typing/__init__.py +0 -0
  568. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/typing/__init__.pyi +0 -0
  569. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/typing/_typing.py +0 -0
  570. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/typing/py.typed +0 -0
  571. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/__init__.py +0 -0
  572. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/__init__.pyi +0 -0
  573. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/_config.py +0 -0
  574. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/_yaml.py +0 -0
  575. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/fs.py +0 -0
  576. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/helpers.py +0 -0
  577. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/logging.py +0 -0
  578. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/py.typed +0 -0
  579. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/singleton.py +0 -0
  580. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/tests/test_config.py +0 -0
  581. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/tests/test_fs.py +0 -0
  582. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/tests/test_helpers.py +0 -0
  583. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer/utils/tests/test_logging.py +0 -0
  584. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer.egg-info/dependency_links.txt +0 -0
  585. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer.egg-info/entry_points.txt +0 -0
  586. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer.egg-info/requires.txt +0 -0
  587. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/junifer.egg-info/top_level.txt +0 -0
  588. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/justfile +0 -0
  589. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/pyproject.toml +0 -0
  590. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/scripts/start.sh +0 -0
  591. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/setup.cfg +0 -0
  592. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/setup.py +0 -0
  593. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/tools/create_aomic1000_example_dataset.py +0 -0
  594. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/tools/create_aomicpiop1_example_dataset.py +0 -0
  595. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/tools/create_aomicpiop2_example_dataset.py +0 -0
  596. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/tools/create_bids_example_dataset.py +0 -0
  597. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/tools/create_bids_example_dataset_sessions.py +0 -0
  598. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  599. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/tools/create_hcp1200_example_dataset.py +0 -0
  600. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/tox.ini +0 -0
  601. {junifer-0.0.8.dev290 → junifer-0.0.8.dev295}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.8.dev290
3
+ Version: 0.0.8.dev295
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:`.TemporalSNRParcels`, :class:`.TemporalSNRSpheres` and :class:`.TemporalSNRMaps` replacing the BOLD data with the tSNR map, so the markers computed after them in a pipeline used the tSNR map instead of the BOLD data by `Fede Raimondo`_
@@ -0,0 +1 @@
1
+ Raise an error if a marker changes its input data (which is shared with the other markers of a pipeline), checking the values and their contents (arrays, data frames and images) by `Fede Raimondo`_
@@ -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.dev290'
22
- __version_tuple__ = version_tuple = (0, 0, 8, 'dev290')
21
+ __version__ = version = '0.0.8.dev295'
22
+ __version_tuple__ = version_tuple = (0, 0, 8, 'dev295')
23
23
 
24
- __commit_id__ = commit_id = 'g64fd8e96c'
24
+ __commit_id__ = commit_id = 'g4eb842a09'
@@ -16,10 +16,12 @@ from ..pipeline import PipelineStepMixin, UpdateMetaMixin
16
16
  from ..storage import StorageType
17
17
  from ..typing import MarkerInOutMappings, StorageLike
18
18
  from ..utils import ensure_list_or_none, raise_error
19
+ from .utils import _changed_paths, _fingerprint
19
20
 
20
21
 
21
22
  __all__ = ["BaseMarker"]
22
23
 
24
+
23
25
  _log = structlog.get_logger("junifer")
24
26
  logger = _log.bind(pkg="markers", step="marker")
25
27
 
@@ -257,8 +259,17 @@ class BaseMarker(BaseModel, ABC, PipelineStepMixin, UpdateMetaMixin):
257
259
  # Copy metadata
258
260
  t_meta = t_input["meta"].copy()
259
261
  t_meta["type"] = t.value
260
- # Compute marker
262
+ # Compute marker, checking it does not change the data, as
263
+ # it is shared with the markers computed afterwards
264
+ fingerprint = _fingerprint(input)
261
265
  t_out = self.compute(input=t_input, extra_input=extra_input)
266
+ changed = _changed_paths(fingerprint, _fingerprint(input))
267
+ if changed:
268
+ raise_error(
269
+ f"Marker {self.name} changed its input data, which is "
270
+ f"shared with the other markers: {', '.join(changed)}",
271
+ klass=RuntimeError,
272
+ )
262
273
  # Initialize empty dictionary if no storage object is provided
263
274
  if storage is None:
264
275
  out[t] = {}
@@ -104,7 +104,9 @@ class TemporalSNRBase(BaseMarker):
104
104
  "img.std(axis=-1).squeeze()", img=input["data"]
105
105
  )
106
106
  mask_img = nimg.math_img("(stdv_img != 0)", stdv_img=stdv_img)
107
- input["data"] = nimg.math_img(
107
+ # Aggregate the tSNR image, without changing the input
108
+ aggregation_input = dict(input.items())
109
+ aggregation_input["data"] = nimg.math_img(
108
110
  "np.divide(mean_img, stdv_img, where=mask_img.astype(bool))",
109
111
  mean_img=mean_img,
110
112
  stdv_img=stdv_img,
@@ -113,8 +115,8 @@ class TemporalSNRBase(BaseMarker):
113
115
  # Perform necessary aggregation and return
114
116
  return {
115
117
  "tsnr": {
116
- **self.aggregate(input=input, extra_input=extra_input)[
117
- "aggregation"
118
- ]
118
+ **self.aggregate(
119
+ input=aggregation_input, extra_input=extra_input
120
+ )["aggregation"]
119
121
  }
120
122
  }
@@ -28,7 +28,10 @@ def test_TemporalSNRMaps_computation() -> None:
28
28
  input_type=DataType.BOLD, output_feature="tsnr"
29
29
  )
30
30
  # Fit-transform the data
31
+ bold_img = element_data["BOLD"]["data"]
31
32
  tsnr_parcels = marker.fit_transform(element_data)
33
+ # The input is not changed
34
+ assert element_data["BOLD"]["data"] is bold_img
32
35
  tsnr_parcels_bold = tsnr_parcels["BOLD"]["tsnr"]
33
36
 
34
37
  assert "data" in tsnr_parcels_bold
@@ -30,7 +30,10 @@ def test_TemporalSNRParcels_computation() -> None:
30
30
  input_type=DataType.BOLD, output_feature="tsnr"
31
31
  )
32
32
  # Fit-transform the data
33
+ bold_img = element_data["BOLD"]["data"]
33
34
  tsnr_parcels = marker.fit_transform(element_data)
35
+ # The input is not changed
36
+ assert element_data["BOLD"]["data"] is bold_img
34
37
  tsnr_parcels_bold = tsnr_parcels["BOLD"]["tsnr"]
35
38
 
36
39
  assert "data" in tsnr_parcels_bold
@@ -28,7 +28,10 @@ def test_TemporalSNRSpheres_computation() -> None:
28
28
  input_type=DataType.BOLD, output_feature="tsnr"
29
29
  )
30
30
  # Fit-transform the data
31
+ bold_img = element_data["BOLD"]["data"]
31
32
  tsnr_spheres = marker.fit_transform(element_data)
33
+ # The input is not changed
34
+ assert element_data["BOLD"]["data"] is bold_img
32
35
  tsnr_spheres_bold = tsnr_spheres["BOLD"]["tsnr"]
33
36
 
34
37
  assert "data" in tsnr_spheres_bold
@@ -0,0 +1,349 @@
1
+ """Provide tests for base marker."""
2
+
3
+ # Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
4
+ # Synchon Mandal <s.mandal@fz-juelich.de>
5
+ # License: AGPL
6
+
7
+ from collections.abc import Callable
8
+ from pathlib import Path
9
+
10
+ import nibabel as nib
11
+ import numpy as np
12
+ import pandas as pd
13
+ import pytest
14
+ from nilearn.image import get_data
15
+
16
+ from junifer.datagrabber import DataType
17
+ from junifer.markers import BaseMarker
18
+ from junifer.storage import StorageType
19
+
20
+
21
+ def test_base_marker_abstractness() -> None:
22
+ """Test BaseMarker is abstract base class."""
23
+ with pytest.raises(TypeError, match=r"abstract"):
24
+ BaseMarker(on=["BOLD"]) # type: ignore
25
+
26
+
27
+ def test_base_marker_subclassing() -> None:
28
+ """Test proper subclassing of BaseMarker."""
29
+
30
+ # Create concrete class
31
+ class MyBaseMarker(BaseMarker):
32
+ _MARKER_INOUT_MAPPINGS = { # noqa: RUF012
33
+ DataType.BOLD: {
34
+ "feat_1": StorageType.Timeseries,
35
+ },
36
+ }
37
+
38
+ parameter: int = 1
39
+
40
+ def compute(self, input, extra_input):
41
+ return {
42
+ "feat_1": {
43
+ "data": "data",
44
+ "col_names": ["columns"],
45
+ },
46
+ }
47
+
48
+ with pytest.raises(ValueError, match=r"cannot be computed on \['T1w'\]"):
49
+ MyBaseMarker(on=["BOLD", "T1w"])
50
+
51
+ # Create input for marker
52
+ input_ = {
53
+ "BOLD": {
54
+ "path": ".",
55
+ "data": "data",
56
+ "meta": {
57
+ "datagrabber": "dg",
58
+ "element": "elem",
59
+ "datareader": "dr",
60
+ },
61
+ },
62
+ }
63
+ marker = MyBaseMarker(on=["BOLD"])
64
+
65
+ with pytest.raises(ValueError, match="not have the required data"):
66
+ marker.validate_input(["T1w"])
67
+
68
+ assert marker.validate_input(["BOLD", "Other"]) == ["BOLD"]
69
+
70
+ output = marker.fit_transform(input=input_) # process
71
+ # Check output
72
+ assert "BOLD" in output
73
+ assert "data" in output["BOLD"]["feat_1"]
74
+ assert "col_names" in output["BOLD"]["feat_1"]
75
+
76
+ assert "meta" in output["BOLD"]["feat_1"]
77
+ meta = output["BOLD"]["feat_1"]["meta"]
78
+ assert "datagrabber" in meta
79
+ assert "element" in meta
80
+ assert "datareader" in meta
81
+ assert "marker" in meta
82
+ assert "name" in meta["marker"]
83
+ assert "parameter" in meta["marker"]
84
+ assert meta["marker"]["parameter"] == 1
85
+
86
+ # Check attributes
87
+ assert marker.name == "MyBaseMarker"
88
+
89
+ # Add one extra input that will not be used to compute
90
+ input_ = {
91
+ "BOLD": {
92
+ "path": ".",
93
+ "data": "data",
94
+ "meta": {
95
+ "datagrabber": "dg",
96
+ "element": "elem",
97
+ "datareader": "dr",
98
+ },
99
+ },
100
+ "T2": {
101
+ "path": ".",
102
+ "data": "data",
103
+ "meta": {
104
+ "datagrabber": "dg",
105
+ "element": "elem",
106
+ "datareader": "dr",
107
+ },
108
+ },
109
+ }
110
+ marker = MyBaseMarker(on=["BOLD"])
111
+ output = marker.fit_transform(input=input_) # process
112
+ # Check output
113
+ assert "BOLD" in output
114
+ assert "T2" not in output
115
+
116
+
117
+ def _fit(change: Callable, tmp_path: Path) -> dict:
118
+ """Fit a marker that applies a function to its input.
119
+
120
+ Parameters
121
+ ----------
122
+ change : callable
123
+ The function, called with the input and the extra input.
124
+ tmp_path : pathlib.Path
125
+ The path to the test directory.
126
+
127
+ Returns
128
+ -------
129
+ dict
130
+ The output of the marker.
131
+
132
+ """
133
+
134
+ class Marker(BaseMarker):
135
+ _MARKER_INOUT_MAPPINGS = { # noqa: RUF012
136
+ DataType.BOLD: {"feat": StorageType.Vector},
137
+ }
138
+
139
+ def compute(self, input, extra_input=None):
140
+ change(input, extra_input)
141
+ return {"feat": {"data": np.zeros((1, 1)), "col_names": ["x"]}}
142
+
143
+ marker = Marker(on=["BOLD"], name="marker")
144
+ return marker.fit_transform(input=_input(tmp_path))
145
+
146
+
147
+ def _input(tmp_path: Path) -> dict:
148
+ """Get input data with the types of values the markers check.
149
+
150
+ Parameters
151
+ ----------
152
+ tmp_path : pathlib.Path
153
+ The path to the test directory.
154
+
155
+ Returns
156
+ -------
157
+ dict
158
+ The input data.
159
+
160
+ """
161
+ # Non-integer values, which change when read as float32
162
+ values = np.full((2, 2, 2), 0.1)
163
+ # File-backed image, with its data cached
164
+ t1w_path = tmp_path / "t1w.nii.gz"
165
+ nib.save(nib.Nifti1Image(values, np.eye(4)), t1w_path)
166
+ t1w = nib.load(t1w_path)
167
+ t1w.get_fdata()
168
+ # File-backed image, without its data loaded
169
+ mask_path = tmp_path / "mask.nii.gz"
170
+ nib.save(nib.Nifti1Image(values, np.eye(4)), mask_path)
171
+ meta = {
172
+ "datagrabber": "dg",
173
+ "element": {"subject": "sub-01"},
174
+ "dependencies": {"numpy"},
175
+ }
176
+ return {
177
+ "BOLD": {
178
+ "path": tmp_path / "bold.nii.gz",
179
+ # In-memory image
180
+ "data": nib.Nifti1Image(np.full((2, 2, 2, 3), 0.1), np.eye(4)),
181
+ "array": np.arange(4.0),
182
+ "mask": nib.load(mask_path),
183
+ "confounds": {"data": pd.DataFrame({"a": [1.0, 2.0, 3.0]})},
184
+ "meta": meta,
185
+ },
186
+ "T1w": {"path": t1w_path, "data": t1w, "meta": meta.copy()},
187
+ "Warp": [{"src": "MNI", "dst": "native"}],
188
+ }
189
+
190
+
191
+ def replace_value(input: dict, extra_input: dict) -> None:
192
+ """Replace a value."""
193
+ input["data"] = "new"
194
+
195
+
196
+ def add_nested_value(input: dict, extra_input: dict) -> None:
197
+ """Add a value to a nested dictionary."""
198
+ input["meta"]["new"] = 1
199
+
200
+
201
+ def remove_nested_value(input: dict, extra_input: dict) -> None:
202
+ """Remove the values of a nested dictionary."""
203
+ input["meta"]["element"].clear()
204
+
205
+
206
+ def remove_value(input: dict, extra_input: dict) -> None:
207
+ """Remove a value."""
208
+ del input["path"]
209
+
210
+
211
+ def change_array(input: dict, extra_input: dict) -> None:
212
+ """Change an array in place."""
213
+ input["array"][0] = 9.0
214
+
215
+
216
+ def reshape_array(input: dict, extra_input: dict) -> None:
217
+ """Change the shape of an array in place."""
218
+ input["array"].shape = (2, 2)
219
+
220
+
221
+ def change_array_dtype(input: dict, extra_input: dict) -> None:
222
+ """Change the dtype of an array in place."""
223
+ input["array"].dtype = np.int64
224
+
225
+
226
+ def change_image_data(input: dict, extra_input: dict) -> None:
227
+ """Change the data of an in-memory image in place."""
228
+ np.asarray(input["data"].dataobj)[0, 0, 0, 0] = 9.0
229
+
230
+
231
+ def change_image_affine(input: dict, extra_input: dict) -> None:
232
+ """Change the affine of an image in place."""
233
+ input["data"].affine[0, 3] = 9.0
234
+
235
+
236
+ def change_dataframe(input: dict, extra_input: dict) -> None:
237
+ """Change a column of a data frame in place."""
238
+ input["confounds"]["data"]["a"] = 0.0
239
+
240
+
241
+ def rename_dataframe_column(input: dict, extra_input: dict) -> None:
242
+ """Rename a column of a data frame in place."""
243
+ input["confounds"]["data"].rename(columns={"a": "b"}, inplace=True)
244
+
245
+
246
+ def change_list_item(input: dict, extra_input: dict) -> None:
247
+ """Change an item of a list."""
248
+ extra_input["Warp"][0]["dst"] = "MNI"
249
+
250
+
251
+ def append_to_list(input: dict, extra_input: dict) -> None:
252
+ """Append an item to a list."""
253
+ extra_input["Warp"].append({})
254
+
255
+
256
+ def clear_set(input: dict, extra_input: dict) -> None:
257
+ """Remove the items of a set."""
258
+ input["meta"]["dependencies"].clear()
259
+
260
+
261
+ def change_cached_image_data(input: dict, extra_input: dict) -> None:
262
+ """Change the cached data of an image of the extra input."""
263
+ extra_input["T1w"]["data"].get_fdata()[0, 0, 0] = 9.0
264
+
265
+
266
+ def change_image_data_read_with_nilearn(
267
+ input: dict, extra_input: dict
268
+ ) -> None:
269
+ """Change the data of an image, after loading it with nilearn."""
270
+ get_data(input["mask"])[0, 0, 0] = 9.0
271
+
272
+
273
+ def change_image_data_read_with_nibabel(
274
+ input: dict, extra_input: dict
275
+ ) -> None:
276
+ """Change the data of an image, after loading it with nibabel."""
277
+ input["mask"].get_fdata()[0, 0, 0] = 9.0
278
+
279
+
280
+ # The changes of the input and the paths of the data they change
281
+ _CHANGES = {
282
+ replace_value: "BOLD.data",
283
+ add_nested_value: "BOLD.meta.new",
284
+ remove_nested_value: "BOLD.meta.element.subject",
285
+ remove_value: "BOLD.path",
286
+ change_array: "BOLD.array",
287
+ reshape_array: "BOLD.array",
288
+ change_array_dtype: "BOLD.array",
289
+ change_image_data: "BOLD.data",
290
+ change_image_affine: "BOLD.data",
291
+ change_dataframe: "BOLD.confounds.data",
292
+ rename_dataframe_column: "BOLD.confounds.data",
293
+ change_list_item: "Warp.0.dst",
294
+ append_to_list: "Warp.1",
295
+ clear_set: "BOLD.meta.dependencies",
296
+ change_cached_image_data: "T1w.data",
297
+ change_image_data_read_with_nilearn: "BOLD.mask",
298
+ change_image_data_read_with_nibabel: "BOLD.mask",
299
+ }
300
+
301
+
302
+ @pytest.mark.parametrize(
303
+ "change, changed",
304
+ _CHANGES.items(),
305
+ ids=[change.__name__ for change in _CHANGES],
306
+ )
307
+ def test_base_marker_input_changed(
308
+ tmp_path: Path, change: Callable, changed: str
309
+ ) -> None:
310
+ """Test markers cannot change their input data.
311
+
312
+ Parameters
313
+ ----------
314
+ tmp_path : pathlib.Path
315
+ The path to the test directory.
316
+ change : callable
317
+ The parametrized change of the input.
318
+ changed : str
319
+ The parametrized path of the changed data.
320
+
321
+ """
322
+ with pytest.raises(RuntimeError, match=rf"marker changed .*{changed}"):
323
+ _fit(change, tmp_path)
324
+
325
+
326
+ def test_base_marker_input_not_changed(tmp_path: Path) -> None:
327
+ """Test markers that only read their input data.
328
+
329
+ Parameters
330
+ ----------
331
+ tmp_path : pathlib.Path
332
+ The path to the test directory.
333
+
334
+ """
335
+
336
+ def read(input: dict, extra_input: dict) -> None:
337
+ input["data"].get_fdata()
338
+ float(np.sum(input["array"]))
339
+ float(input["confounds"]["data"]["a"].sum())
340
+ # Replace the cached float64 data with float32
341
+ extra_input["T1w"]["data"].get_fdata(dtype=np.float32)
342
+ # Cache float32 data
343
+ input["mask"].get_fdata(dtype=np.float32)
344
+ get_data(input["mask"])
345
+ set(input["meta"]["dependencies"])
346
+ [warp["dst"] for warp in extra_input["Warp"]]
347
+
348
+ out = _fit(read, tmp_path)
349
+ assert "feat" in out["BOLD"]