junifer 0.0.8.dev295__tar.gz → 0.0.8.dev303__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.dev295/junifer.egg-info → junifer-0.0.8.dev303}/PKG-INFO +1 -1
  2. junifer-0.0.8.dev303/docs/changes/newsfragments/509.enh +1 -0
  3. junifer-0.0.8.dev303/docs/changes/newsfragments/523.misc +1 -0
  4. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/storage.rst +8 -1
  5. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/running.rst +2 -2
  6. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/_version.py +3 -3
  7. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/functions.py +54 -13
  8. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/tests/test_functions.py +188 -16
  9. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/cli.py +27 -5
  10. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/tests/data/gmd_mean.yaml +2 -2
  11. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +2 -2
  12. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/tests/test_cli.py +74 -2
  13. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/base.py +2 -2
  14. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_hurst_exponent.py +2 -2
  15. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +3 -3
  16. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_perm_entropy.py +2 -2
  17. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_range_entropy.py +2 -2
  18. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_range_entropy_auc.py +2 -4
  19. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_sample_entropy.py +2 -2
  20. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +3 -3
  21. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/tests/test_falff_parcels.py +2 -4
  22. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/tests/test_falff_spheres.py +2 -4
  23. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +3 -4
  24. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +3 -3
  25. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +3 -3
  26. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +3 -3
  27. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +3 -3
  28. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_reho_parcels.py +2 -4
  29. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_reho_spheres.py +2 -4
  30. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_ets_rss.py +2 -2
  31. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_maps_aggregation.py +1 -1
  32. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_parcel_aggregation.py +5 -7
  33. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_sphere_aggregation.py +5 -7
  34. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/read_transform.py +1 -1
  35. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_marker_collection.py +8 -5
  36. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_pipeline_component_registry.py +13 -8
  37. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_workdir_manager.py +15 -0
  38. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/workdir_manager.py +8 -8
  39. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303/junifer.egg-info}/PKG-INFO +1 -1
  40. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/SOURCES.txt +2 -0
  41. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/scm_file_list.json +2 -0
  42. junifer-0.0.8.dev303/junifer.egg-info/scm_version.json +8 -0
  43. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/pyproject.toml +1 -0
  44. junifer-0.0.8.dev295/junifer.egg-info/scm_version.json +0 -8
  45. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.dockerignore +0 -0
  46. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  47. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  48. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  49. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  50. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  51. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  52. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/dependabot.yml +0 -0
  53. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/pull_request_template.md +0 -0
  54. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/check-stale.yml +0 -0
  55. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/ci.yml +0 -0
  56. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/docker-publish.yml +0 -0
  57. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/docs-preview.yml +0 -0
  58. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/docs.yml +0 -0
  59. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/lint.yml +0 -0
  60. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.github/workflows/publish.yml +0 -0
  61. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.gitignore +0 -0
  62. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.gitmodules +0 -0
  63. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.pre-commit-config.yaml +0 -0
  64. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/.python-version +0 -0
  65. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/AUTHORS.rst +0 -0
  66. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/Dockerfile +0 -0
  67. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/Dockerfile-ci +0 -0
  68. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/LICENSE.md +0 -0
  69. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/README.md +0 -0
  70. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/codecov.yml +0 -0
  71. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/conda-env.yml +0 -0
  72. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/Makefile +0 -0
  73. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/_static/css/custom.css +0 -0
  74. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/_static/css/version_selector.css +0 -0
  75. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/_static/js/custom.js +0 -0
  76. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/_templates/versions.html +0 -0
  77. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/api.rst +0 -0
  78. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/cli.rst +0 -0
  79. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/configs.rst +0 -0
  80. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/data.rst +0 -0
  81. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/datagrabbers.rst +0 -0
  82. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/datareaders.rst +0 -0
  83. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/index.rst +0 -0
  84. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/markers.rst +0 -0
  85. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/nilearn.rst +0 -0
  86. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/onthefly.rst +0 -0
  87. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/pipeline.rst +0 -0
  88. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/preprocessing.rst +0 -0
  89. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/stats.rst +0 -0
  90. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/storage.rst +0 -0
  91. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/testing.rst +0 -0
  92. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/api/utils.rst +0 -0
  93. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/builtin.rst +0 -0
  94. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/contributors.inc +0 -0
  95. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/.gitignore +0 -0
  96. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/239.enh +0 -0
  97. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/364.doc +0 -0
  98. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/364.enh +0 -0
  99. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/364.feature +0 -0
  100. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/474.misc +0 -0
  101. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/482.bugfix +0 -0
  102. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/492.bugfix +0 -0
  103. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/499.enh +0 -0
  104. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/502.bugfix +0 -0
  105. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/503.enh +0 -0
  106. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/510.bugfix +0 -0
  107. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.bugfix +0 -0
  108. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.bugfix.1 +0 -0
  109. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.change +0 -0
  110. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.enh +0 -0
  111. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.enh.1 +0 -0
  112. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.feature +0 -0
  113. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.misc +0 -0
  114. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/511.misc.1 +0 -0
  115. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/513.doc +0 -0
  116. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/513.misc +0 -0
  117. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/514.bugfix +0 -0
  118. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/514.bugfix.1 +0 -0
  119. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/514.enh +0 -0
  120. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.doc +0 -0
  121. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.enh +0 -0
  122. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.enh.1 +0 -0
  123. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.misc +0 -0
  124. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/515.misc.1 +0 -0
  125. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.bugfix +0 -0
  126. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.bugfix.1 +0 -0
  127. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.bugfix.2 +0 -0
  128. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.change +0 -0
  129. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.change.1 +0 -0
  130. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/516.misc +0 -0
  131. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix +0 -0
  132. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.1 +0 -0
  133. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.2 +0 -0
  134. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.3 +0 -0
  135. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.4 +0 -0
  136. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.5 +0 -0
  137. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.bugfix.6 +0 -0
  138. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.change +0 -0
  139. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.doc +0 -0
  140. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc +0 -0
  141. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc.1 +0 -0
  142. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc.2 +0 -0
  143. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.misc.3 +0 -0
  144. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/520.removal +0 -0
  145. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/521.bugfix +0 -0
  146. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/522.bugfix +0 -0
  147. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/changes/newsfragments/522.enh +0 -0
  148. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/conf.py +0 -0
  149. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/contribution.rst +0 -0
  150. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/confounds_format.rst +0 -0
  151. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/coordinates.rst +0 -0
  152. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/data_dump_asset.rst +0 -0
  153. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/data_registries.rst +0 -0
  154. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/data_types.rst +0 -0
  155. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/datagrabber.rst +0 -0
  156. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/dependencies.rst +0 -0
  157. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/extension.rst +0 -0
  158. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/index.rst +0 -0
  159. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/logging.rst +0 -0
  160. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/maps.rst +0 -0
  161. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/marker.rst +0 -0
  162. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/masks.rst +0 -0
  163. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/parcellations.rst +0 -0
  164. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/plugins.rst +0 -0
  165. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/extending/preprocessor.rst +0 -0
  166. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/faq.rst +0 -0
  167. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/help.rst +0 -0
  168. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/images/junifer_logo.png +0 -0
  169. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/index.rst +0 -0
  170. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/installation.rst +0 -0
  171. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/links.inc +0 -0
  172. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/maintaining.rst +0 -0
  173. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/poly.py +0 -0
  174. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/poly_files/patches/version_banner.html +0 -0
  175. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/poly_files/patches/versions.html +0 -0
  176. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/poly_files/templates/index.html +0 -0
  177. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/starting.rst +0 -0
  178. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/data.rst +0 -0
  179. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/datagrabber.rst +0 -0
  180. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/datareader.rst +0 -0
  181. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/index.rst +0 -0
  182. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/marker.rst +0 -0
  183. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/pipeline.rst +0 -0
  184. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/understanding/preprocess.rst +0 -0
  185. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/codeless.rst +0 -0
  186. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/configuring.rst +0 -0
  187. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/dumping.rst +0 -0
  188. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/index.rst +0 -0
  189. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/masks.rst +0 -0
  190. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/using/queueing.rst +0 -0
  191. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/docs/whats_new.rst +0 -0
  192. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/README.rst +0 -0
  193. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/norun_hcpfc_pearson.py +0 -0
  194. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/norun_ukbvm_gmd.py +0 -0
  195. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/run_compute_parcel_mean.py +0 -0
  196. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/run_datagrabber_bids_datalad.py +0 -0
  197. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/run_ets_rss_marker.py +0 -0
  198. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/run_junifer_julearn.py +0 -0
  199. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/run_run_gmd_mean.py +0 -0
  200. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/yamls/gmd_mean.yaml +0 -0
  201. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  202. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  203. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  204. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/ignore_words.txt +0 -0
  205. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/__init__.py +0 -0
  206. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/__init__.pyi +0 -0
  207. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/__init__.py +0 -0
  208. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/__init__.pyi +0 -0
  209. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/decorators.py +0 -0
  210. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/py.typed +0 -0
  211. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/__init__.py +0 -0
  212. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/__init__.pyi +0 -0
  213. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  214. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  215. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/py.typed +0 -0
  216. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  217. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  218. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  219. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  220. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/afni/3dRSFC +0 -0
  221. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/afni/3dReHo +0 -0
  222. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/afni/afni +0 -0
  223. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  224. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/ants/ResampleImage +0 -0
  225. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/ants/antsApplyTransforms +0 -0
  226. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  227. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  228. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mri_binarize +0 -0
  229. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mri_mc +0 -0
  230. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mri_pretess +0 -0
  231. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/mris_convert +0 -0
  232. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  233. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/fsl/applywarp +0 -0
  234. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/fsl/flirt +0 -0
  235. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/fsl/img2imgcoord +0 -0
  236. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  237. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/fsl/std2imgcoord +0 -0
  238. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/run_conda.bash +0 -0
  239. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/run_conda.zsh +0 -0
  240. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/run_venv.bash +0 -0
  241. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/res/run_venv.zsh +0 -0
  242. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/api/tests/test_decorators.py +0 -0
  243. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/__init__.py +0 -0
  244. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/__init__.pyi +0 -0
  245. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/parser.py +0 -0
  246. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/py.typed +0 -0
  247. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  248. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/tests/test_cli_utils.py +0 -0
  249. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/cli/utils.py +0 -0
  250. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/__init__.py +0 -0
  251. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/__init__.pyi +0 -0
  252. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/__init__.py +0 -0
  253. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/__init__.pyi +0 -0
  254. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  255. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  256. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  257. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  258. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  259. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  260. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  261. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  262. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  263. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  264. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  265. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  266. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  267. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/juseless/py.typed +0 -0
  268. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/configs/py.typed +0 -0
  269. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/conftest.py +0 -0
  270. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/__init__.py +0 -0
  271. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/__init__.pyi +0 -0
  272. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/_dispatch.py +0 -0
  273. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/__init__.py +0 -0
  274. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/__init__.pyi +0 -0
  275. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
  276. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/_coordinates.py +0 -0
  277. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
  278. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  279. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/coordinates/tests/test_coordinates_names.py +0 -0
  280. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/__init__.py +0 -0
  281. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/__init__.pyi +0 -0
  282. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/_ants_maps_warper.py +0 -0
  283. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/_fsl_maps_warper.py +0 -0
  284. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/_maps.py +0 -0
  285. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/maps/tests/test_maps.py +0 -0
  286. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/__init__.py +0 -0
  287. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/__init__.pyi +0 -0
  288. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/_ants_mask_warper.py +0 -0
  289. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/_fsl_mask_warper.py +0 -0
  290. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/_masks.py +0 -0
  291. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/masks/tests/test_masks.py +0 -0
  292. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/__init__.py +0 -0
  293. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/__init__.pyi +0 -0
  294. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
  295. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
  296. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/_parcellations.py +0 -0
  297. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  298. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/pipeline_data_registry_base.py +0 -0
  299. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/py.typed +0 -0
  300. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/template_spaces.py +0 -0
  301. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/tests/test_data_utils.py +0 -0
  302. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/tests/test_dispatch.py +0 -0
  303. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/tests/test_template_spaces.py +0 -0
  304. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/data/utils.py +0 -0
  305. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/__init__.py +0 -0
  306. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/__init__.pyi +0 -0
  307. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/__init__.py +0 -0
  308. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  309. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/_types.py +0 -0
  310. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/id1000.py +0 -0
  311. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/piop1.py +0 -0
  312. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/piop2.py +0 -0
  313. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/py.typed +0 -0
  314. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  315. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  316. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  317. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/base.py +0 -0
  318. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/datalad_base.py +0 -0
  319. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  320. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  321. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  322. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  323. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  324. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/py.typed +0 -0
  325. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  326. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/multiple.py +0 -0
  327. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/pattern.py +0 -0
  328. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/pattern_datalad.py +0 -0
  329. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
  330. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/py.typed +0 -0
  331. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_base.py +0 -0
  332. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  333. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  334. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_multiple.py +0 -0
  335. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_pattern.py +0 -0
  336. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  337. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  338. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datareader/__init__.py +0 -0
  339. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datareader/__init__.pyi +0 -0
  340. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datareader/default.py +0 -0
  341. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datareader/py.typed +0 -0
  342. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/datareader/tests/test_default_reader.py +0 -0
  343. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.codecov.yml +0 -0
  344. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.codespellignore +0 -0
  345. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  346. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  347. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  348. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +0 -0
  349. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/dependabot.yml +0 -0
  350. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/build.yml +0 -0
  351. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/code-style.yml +0 -0
  352. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/doc.yml +0 -0
  353. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/publish.yml +0 -0
  354. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.github/workflows/pytest.yml +0 -0
  355. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/.gitignore +0 -0
  356. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/LICENSE +0 -0
  357. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/README.md +0 -0
  358. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  359. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  360. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  361. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  362. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/__init__.py +0 -0
  363. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/help_text.py +0 -0
  364. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/parser.py +0 -0
  365. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/cli/utils.py +0 -0
  366. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
  367. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/commands/sys_info.py +0 -0
  368. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  369. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  370. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  371. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
  372. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +0 -0
  373. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  374. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/Makefile +0 -0
  375. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
  376. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +0 -0
  377. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +0 -0
  378. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +0 -0
  379. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/api/index.rst +0 -0
  380. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/conf.py +0 -0
  381. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/index.rst +0 -0
  382. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/links.inc +0 -0
  383. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/make.bat +0 -0
  384. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/doc/references.bib +0 -0
  385. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/pyproject.toml +0 -0
  386. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/BrainPrint/setup.py +0 -0
  387. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/__init__.py +0 -0
  388. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/__init__.pyi +0 -0
  389. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.coveragerc +0 -0
  390. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.gitattributes +0 -0
  391. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.gitignore +0 -0
  392. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.travis.yml +0 -0
  393. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.vscode/launch.json +0 -0
  394. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/.vscode/settings.json +0 -0
  395. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/LICENSE.txt +0 -0
  396. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/MANIFEST.in +0 -0
  397. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/Makefile +0 -0
  398. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/README.rst +0 -0
  399. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/azure-pipelines.yml +0 -0
  400. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/__init__.py +0 -0
  401. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/_h5io.py +0 -0
  402. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/_version.py +0 -0
  403. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  404. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  405. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/__init__.py +0 -0
  406. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/test_chunked_array.py +0 -0
  407. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/test_chunked_list.py +0 -0
  408. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/h5io/tests/test_io.py +0 -0
  409. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/setup.cfg +0 -0
  410. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/setup.py +0 -0
  411. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/h5io/versioneer.py +0 -0
  412. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/__init__.py +0 -0
  413. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/__init__.pyi +0 -0
  414. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  415. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  416. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/py.typed +0 -0
  417. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  418. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  419. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/external/py.typed +0 -0
  420. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/__init__.py +0 -0
  421. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/__init__.pyi +0 -0
  422. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/brainprint.py +0 -0
  423. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/__init__.py +0 -0
  424. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/__init__.pyi +0 -0
  425. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/complexity_base.py +0 -0
  426. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/hurst_exponent.py +0 -0
  427. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  428. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/perm_entropy.py +0 -0
  429. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/py.typed +0 -0
  430. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/range_entropy.py +0 -0
  431. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  432. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/sample_entropy.py +0 -0
  433. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  434. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  435. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/ets_rss.py +0 -0
  436. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/__init__.py +0 -0
  437. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/__init__.pyi +0 -0
  438. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/_afni_falff.py +0 -0
  439. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/_junifer_falff.py +0 -0
  440. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_base.py +0 -0
  441. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_maps.py +0 -0
  442. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_parcels.py +0 -0
  443. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/falff_spheres.py +0 -0
  444. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/py.typed +0 -0
  445. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/falff/tests/test_falff_maps.py +0 -0
  446. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/__init__.py +0 -0
  447. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  448. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  449. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +0 -0
  450. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  451. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  452. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  453. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +0 -0
  454. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  455. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  456. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/py.typed +0 -0
  457. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +0 -0
  458. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  459. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +0 -0
  460. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/maps_aggregation.py +0 -0
  461. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/parcel_aggregation.py +0 -0
  462. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/py.typed +0 -0
  463. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/__init__.py +0 -0
  464. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/__init__.pyi +0 -0
  465. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/_afni_reho.py +0 -0
  466. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/_junifer_reho.py +0 -0
  467. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/py.typed +0 -0
  468. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_base.py +0 -0
  469. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_maps.py +0 -0
  470. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_parcels.py +0 -0
  471. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/reho_spheres.py +0 -0
  472. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_junifer_reho.py +0 -0
  473. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/reho/tests/test_reho_maps.py +0 -0
  474. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/sphere_aggregation.py +0 -0
  475. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/__init__.py +0 -0
  476. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  477. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/py.typed +0 -0
  478. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  479. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_maps.py +0 -0
  480. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  481. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  482. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  483. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +0 -0
  484. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  485. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  486. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_brainprint.py +0 -0
  487. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_lost_regions.py +0 -0
  488. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_marker_utils.py +0 -0
  489. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/tests/test_markers_base.py +0 -0
  490. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/markers/utils.py +0 -0
  491. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/__init__.py +0 -0
  492. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/__init__.pyi +0 -0
  493. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/_brainprint.py +0 -0
  494. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/py.typed +0 -0
  495. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/onthefly/tests/test_read_transform.py +0 -0
  496. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/__init__.py +0 -0
  497. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/__init__.pyi +0 -0
  498. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/_data_object_dumper.py +0 -0
  499. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/marker_collection.py +0 -0
  500. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/pipeline_component_registry.py +0 -0
  501. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  502. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/py.typed +0 -0
  503. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
  504. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  505. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  506. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/update_meta_mixin.py +0 -0
  507. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/pipeline/utils.py +0 -0
  508. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/__init__.py +0 -0
  509. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/__init__.pyi +0 -0
  510. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/_temporal_filter.py +0 -0
  511. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/_temporal_slicer.py +0 -0
  512. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/base.py +0 -0
  513. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/__init__.py +0 -0
  514. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/__init__.pyi +0 -0
  515. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  516. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/py.typed +0 -0
  517. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  518. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/py.typed +0 -0
  519. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/__init__.py +0 -0
  520. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  521. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  522. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  523. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  524. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/py.typed +0 -0
  525. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/smoothing.py +0 -0
  526. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  527. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  528. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/tests/test_temporal_filter.py +0 -0
  529. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/tests/test_temporal_slicer.py +0 -0
  530. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/__init__.py +0 -0
  531. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/__init__.pyi +0 -0
  532. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/_ants_warper.py +0 -0
  533. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  534. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/py.typed +0 -0
  535. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/space_warper.py +0 -0
  536. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  537. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/py.typed +0 -0
  538. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/stats.py +0 -0
  539. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/__init__.py +0 -0
  540. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/__init__.pyi +0 -0
  541. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/base.py +0 -0
  542. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/hdf5.py +0 -0
  543. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/pandas_base.py +0 -0
  544. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/py.typed +0 -0
  545. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/sqlite.py +0 -0
  546. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/tests/test_hdf5.py +0 -0
  547. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/tests/test_pandas_base.py +0 -0
  548. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/tests/test_sqlite.py +0 -0
  549. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/tests/test_storage_base.py +0 -0
  550. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/tests/test_utils.py +0 -0
  551. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/storage/utils.py +0 -0
  552. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/__init__.py +0 -0
  553. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/__init__.pyi +0 -0
  554. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  555. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/datagrabbers.py +0 -0
  556. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/py.typed +0 -0
  557. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/registry.py +0 -0
  558. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_adhdtesting_datagrabber.py +0 -0
  559. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  560. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  561. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  562. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_testing_registry.py +0 -0
  563. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_testing_utils.py +0 -0
  564. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/tests/test_uclacnpvbmtesting_datagrabber.py +0 -0
  565. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/testing/utils.py +0 -0
  566. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/tests/test_main.py +0 -0
  567. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/tests/test_stats.py +0 -0
  568. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/typing/__init__.py +0 -0
  569. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/typing/__init__.pyi +0 -0
  570. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/typing/_typing.py +0 -0
  571. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/typing/py.typed +0 -0
  572. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/__init__.py +0 -0
  573. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/__init__.pyi +0 -0
  574. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/_config.py +0 -0
  575. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/_yaml.py +0 -0
  576. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/fs.py +0 -0
  577. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/helpers.py +0 -0
  578. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/logging.py +0 -0
  579. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/py.typed +0 -0
  580. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/singleton.py +0 -0
  581. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/tests/test_config.py +0 -0
  582. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/tests/test_fs.py +0 -0
  583. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/tests/test_helpers.py +0 -0
  584. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer/utils/tests/test_logging.py +0 -0
  585. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/dependency_links.txt +0 -0
  586. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/entry_points.txt +0 -0
  587. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/requires.txt +0 -0
  588. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/junifer.egg-info/top_level.txt +0 -0
  589. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/justfile +0 -0
  590. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/scripts/start.sh +0 -0
  591. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/setup.cfg +0 -0
  592. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/setup.py +0 -0
  593. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_aomic1000_example_dataset.py +0 -0
  594. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_aomicpiop1_example_dataset.py +0 -0
  595. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_aomicpiop2_example_dataset.py +0 -0
  596. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_bids_example_dataset.py +0 -0
  597. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_bids_example_dataset_sessions.py +0 -0
  598. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  599. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tools/create_hcp1200_example_dataset.py +0 -0
  600. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/tox.ini +0 -0
  601. {junifer-0.0.8.dev295 → junifer-0.0.8.dev303}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.8.dev295
3
+ Version: 0.0.8.dev303
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
+ Set up the working directory first in all the commands of the CLI (from ``workdir`` in the YAML) and in :func:`.run`, :func:`.collect`, :func:`.queue`, :func:`.reset` and :func:`.list_elements`, adding the ``workdir`` parameter to :func:`.collect` and :func:`.list_elements`, and create the working directory if it does not exist by `Synchon Mandal`_ and `Fede Raimondo`_
@@ -0,0 +1 @@
1
+ Use :class:`.HDF5FeatureStorage` instead of :class:`.SQLiteFeatureStorage` in the tests and documentation, as the latter is only kept for compatibility, and fix the component registry test leaving components de-registered by `Fede Raimondo`_
@@ -21,7 +21,7 @@ The :ref:`Markers <marker>` are responsible for mapping the input
21
21
  :ref:`data type <data_types>` to its output :ref:`storage type <storage_types>`
22
22
  as shown :ref:`here <extending_markers_input_output>`.
23
23
  The storage object in turn declares and provides implementation for
24
- specific *storage type*. For example, :class:`.SQLiteFeatureStorage` supports
24
+ specific *storage type*. For example, :class:`.HDF5FeatureStorage` supports
25
25
  saving ``matrix``, ``vector`` and ``timeseries`` via ``store_matrix``,
26
26
  ``store_vector`` and ``store_timeseries`` methods respectively.
27
27
 
@@ -88,3 +88,10 @@ Storage Interfaces
88
88
  - ``.hdf5``
89
89
  - HDF5
90
90
  - ``matrix``, ``vector``, ``timeseries``, ``timeseries_2d``, ``scalar_table``
91
+
92
+ .. note::
93
+
94
+ :class:`.HDF5FeatureStorage` is the recommended storage.
95
+ :class:`.SQLiteFeatureStorage` is only kept for compatibility with features
96
+ stored in previous versions of ``junifer`` and should not be used for new
97
+ analyses.
@@ -130,8 +130,8 @@ First we load the storage like so:
130
130
 
131
131
  from junifer.storage import HDF5FeatureStorage
132
132
 
133
- # You need to import and use SQLiteFeatureStorage if you chose that
134
- # for storage while extracting features
133
+ # If the features were stored with the legacy SQLiteFeatureStorage,
134
+ # import and use that class instead
135
135
  storage = HDF5FeatureStorage("<path/to/your/collected/file>")
136
136
 
137
137
  The best way to start analysing would be to list all the extracted features
@@ -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.dev295'
22
- __version_tuple__ = version_tuple = (0, 0, 8, 'dev295')
21
+ __version__ = version = '0.0.8.dev303'
22
+ __version_tuple__ = version_tuple = (0, 0, 8, 'dev303')
23
23
 
24
- __commit_id__ = commit_id = 'g4eb842a09'
24
+ __commit_id__ = commit_id = 'g4a74bdf26'
@@ -136,6 +136,45 @@ def _get_storage(storage_config: dict) -> StorageLike:
136
136
  )
137
137
 
138
138
 
139
+ def _get_workdir_params(workdir: str | Path | dict | None) -> dict:
140
+ """Get the parameters of the working directory manager.
141
+
142
+ Parameters
143
+ ----------
144
+ workdir : str or pathlib.Path or dict or None
145
+ The working directory as a path, or as a dictionary with the keys
146
+ ``path`` and ``cleanup`` (default True). If None, the default of
147
+ :class:`.WorkDirManager` is used.
148
+
149
+ Returns
150
+ -------
151
+ dict
152
+ The parameters for :class:`.WorkDirManager`.
153
+
154
+ """
155
+ if isinstance(workdir, dict):
156
+ return {
157
+ "workdir": Path(workdir["path"]),
158
+ "cleanup": workdir.get("cleanup", True),
159
+ }
160
+ if workdir is None:
161
+ return {"workdir": None, "cleanup": True}
162
+ return {"workdir": Path(workdir), "cleanup": True}
163
+
164
+
165
+ def _setup_workdir(workdir: str | Path | dict | None) -> None:
166
+ """Set up the working directory manager.
167
+
168
+ Parameters
169
+ ----------
170
+ workdir : str or pathlib.Path or dict or None
171
+ The working directory (see :func:`_get_workdir_params`).
172
+
173
+ """
174
+ WorkDirManager(**_get_workdir_params(workdir))
175
+ atexit.register(WorkDirManager()._cleanup)
176
+
177
+
139
178
  def run(
140
179
  workdir: str | Path | dict,
141
180
  datagrabber: dict,
@@ -180,25 +219,15 @@ def run(
180
219
  If invalid element selectors are found.
181
220
 
182
221
  """
183
- # Conditional to handle workdir config
184
- if isinstance(workdir, str | Path):
185
- if isinstance(workdir, str):
186
- workdir = {"workdir": Path(workdir), "cleanup": True}
187
- else:
188
- workdir = {"workdir": workdir, "cleanup": True}
189
- elif isinstance(workdir, dict):
190
- workdir["workdir"] = workdir.pop("path")
191
-
192
222
  # Initiate working directory manager with correct variation
193
- if not workdir["cleanup"]:
223
+ if not _get_workdir_params(workdir)["cleanup"]:
194
224
  if elements is None or len(elements) > 1:
195
225
  raise_error(
196
226
  "Cannot disable `workdir.cleanup` as "
197
227
  f"{len(elements) if elements is not None else 'all'} "
198
228
  "elements will be processed"
199
229
  )
200
- WorkDirManager(**workdir)
201
- atexit.register(WorkDirManager()._cleanup)
230
+ _setup_workdir(workdir)
202
231
 
203
232
  # Get datagrabber to use
204
233
  datagrabber_object = _get_datagrabber(datagrabber.copy())
@@ -253,7 +282,7 @@ def run(
253
282
  mc.fit(datagrabber_object[t_element])
254
283
 
255
284
 
256
- def collect(storage: dict) -> None:
285
+ def collect(storage: dict, workdir: str | Path | dict | None = None) -> None:
257
286
  """Collect and store data.
258
287
 
259
288
  Parameters
@@ -262,8 +291,12 @@ def collect(storage: dict) -> None:
262
291
  Storage to use. Must have a key ``kind`` with the kind of
263
292
  storage to use. All other keys are passed to the storage
264
293
  constructor.
294
+ workdir : str or pathlib.Path or dict or None, optional
295
+ The working directory, as in :func:`.run`. If None, the default of
296
+ :class:`.WorkDirManager` is used (default None).
265
297
 
266
298
  """
299
+ _setup_workdir(workdir)
267
300
  logger.info(f"Collecting data using {storage['kind']}")
268
301
  logger.debug(f"\tStorage params: {storage}")
269
302
  if "single_output" not in storage:
@@ -307,6 +340,7 @@ def queue(
307
340
  if the ``jobdir`` exists and ``overwrite = False``.
308
341
 
309
342
  """
343
+ _setup_workdir(config.get("workdir"))
310
344
  valid_kind = ["HTCondor", "GNUParallelLocal"]
311
345
  if kind not in valid_kind:
312
346
  raise_error(
@@ -410,6 +444,7 @@ def reset(config: dict) -> None:
410
444
  The configuration to be used for resetting.
411
445
 
412
446
  """
447
+ _setup_workdir(config.get("workdir"))
413
448
  # Fetch storage
414
449
  storage = config["storage"]
415
450
  storage_uri = Path(storage["uri"])
@@ -442,6 +477,7 @@ def reset(config: dict) -> None:
442
477
  def list_elements(
443
478
  datagrabber: dict,
444
479
  elements: Elements | None = None,
480
+ workdir: str | Path | dict | None = None,
445
481
  ) -> str:
446
482
  """List elements of the datagrabber filtered using `elements`.
447
483
 
@@ -454,8 +490,13 @@ def list_elements(
454
490
  elements : list or None, optional
455
491
  Element(s) to filter using. Will be used to index the DataGrabber
456
492
  (default None).
493
+ workdir : str or pathlib.Path or dict or None, optional
494
+ Directory where the DataGrabber will be used, as in :func:`.run`.
495
+ If None, the default of :class:`.WorkDirManager` is used
496
+ (default None).
457
497
 
458
498
  """
499
+ _setup_workdir(workdir)
459
500
  # Get datagrabber to use
460
501
  datagrabber_object = _get_datagrabber(datagrabber)
461
502
 
@@ -7,6 +7,7 @@
7
7
 
8
8
  import logging
9
9
  import sys
10
+ import tempfile
10
11
  from contextlib import AbstractContextManager, nullcontext
11
12
  from pathlib import Path
12
13
  from typing import Any
@@ -18,7 +19,7 @@ from ruamel.yaml import YAML
18
19
  import junifer.testing.registry # noqa: F401
19
20
  from junifer.api import collect, list_elements, parse_yaml, queue, reset, run
20
21
  from junifer.datagrabber.base import BaseDataGrabber
21
- from junifer.pipeline import PipelineComponentRegistry
22
+ from junifer.pipeline import PipelineComponentRegistry, WorkDirManager
22
23
  from junifer.typing import Elements
23
24
 
24
25
 
@@ -92,7 +93,7 @@ def markers() -> list[dict[str, list[str] | str]]:
92
93
  def storage() -> dict[str, str]:
93
94
  """Return a storage as a dictionary."""
94
95
  return {
95
- "kind": "SQLiteFeatureStorage",
96
+ "kind": "HDF5FeatureStorage",
96
97
  }
97
98
 
98
99
 
@@ -158,7 +159,7 @@ def test_run_single_element(
158
159
 
159
160
  """
160
161
  # Set storage
161
- storage["uri"] = str((tmp_path / "out.sqlite").resolve())
162
+ storage["uri"] = str((tmp_path / "out.hdf5").resolve())
162
163
  # Run operations
163
164
  with expect:
164
165
  run(
@@ -169,7 +170,7 @@ def test_run_single_element(
169
170
  elements=element,
170
171
  )
171
172
  # Check files
172
- files = list(tmp_path.glob("*.sqlite"))
173
+ files = list(tmp_path.glob("*.hdf5"))
173
174
  assert len(files) == 1
174
175
 
175
176
 
@@ -191,7 +192,7 @@ def test_run_single_element_with_preprocessing(
191
192
 
192
193
  """
193
194
  # Set storage
194
- storage["uri"] = str((tmp_path / "out.sqlite").resolve())
195
+ storage["uri"] = str((tmp_path / "out.hdf5").resolve())
195
196
  # Run operations
196
197
  run(
197
198
  workdir={"path": tmp_path, "cleanup": False},
@@ -209,7 +210,7 @@ def test_run_single_element_with_preprocessing(
209
210
  elements=["sub-01"],
210
211
  )
211
212
  # Check files
212
- files = list(tmp_path.glob("*.sqlite"))
213
+ files = list(tmp_path.glob("*.hdf5"))
213
214
  assert len(files) == 1
214
215
 
215
216
 
@@ -250,7 +251,7 @@ def test_run_multi_element_multi_output(
250
251
 
251
252
  """
252
253
  # Set storage
253
- storage["uri"] = str((tmp_path / "out.sqlite").resolve())
254
+ storage["uri"] = str((tmp_path / "out.hdf5").resolve())
254
255
  storage["single_output"] = False # type: ignore
255
256
  # Run operations
256
257
  with expect:
@@ -262,7 +263,7 @@ def test_run_multi_element_multi_output(
262
263
  elements=element,
263
264
  )
264
265
  # Check files
265
- files = list(tmp_path.glob("*.sqlite"))
266
+ files = list(tmp_path.glob("*.hdf5"))
266
267
  assert len(files) == 2
267
268
 
268
269
 
@@ -287,7 +288,7 @@ def test_run_multi_element_single_output(
287
288
 
288
289
  """
289
290
  # Set storage
290
- storage["uri"] = str((tmp_path / "out.sqlite").resolve())
291
+ storage["uri"] = str((tmp_path / "out.hdf5").resolve())
291
292
  storage["single_output"] = True # type: ignore
292
293
  # Run operations
293
294
  run(
@@ -298,9 +299,9 @@ def test_run_multi_element_single_output(
298
299
  elements=["sub-01", "sub-03"],
299
300
  )
300
301
  # Check files
301
- files = list(tmp_path.glob("*.sqlite"))
302
+ files = list(tmp_path.glob("*.hdf5"))
302
303
  assert len(files) == 1
303
- assert files[0].name == "out.sqlite"
304
+ assert files[0].name == "out.hdf5"
304
305
 
305
306
 
306
307
  def test_run_and_collect(
@@ -324,7 +325,7 @@ def test_run_and_collect(
324
325
 
325
326
  """
326
327
  # Set storage
327
- uri = tmp_path / "out.sqlite"
328
+ uri = tmp_path / "out.hdf5"
328
329
  storage["uri"] = str(uri.resolve())
329
330
  storage["single_output"] = False # type: ignore
330
331
  # Run operations
@@ -343,9 +344,9 @@ def test_run_and_collect(
343
344
  )
344
345
  elements = dg.get_elements() # type: ignore
345
346
  # This should create one file per element
346
- files = list(tmp_path.glob("*.sqlite"))
347
+ files = list(tmp_path.glob("*.hdf5"))
347
348
  assert len(files) == len(elements)
348
- # But the test.sqlite file should not exist
349
+ # But the test.hdf5 file should not exist
349
350
  assert not uri.exists()
350
351
  # Collect in storage
351
352
  collect(storage)
@@ -639,6 +640,143 @@ def test_queue_without_elements(
639
640
  assert "Queue done" in caplog.text
640
641
 
641
642
 
643
+ def _workdir(tmp_path: Path, as_dict: bool) -> tuple[str | dict, Path]:
644
+ """Get a working directory in the test directory.
645
+
646
+ Parameters
647
+ ----------
648
+ tmp_path : pathlib.Path
649
+ The path to the test directory.
650
+ as_dict : bool
651
+ Whether to give the working directory as a dictionary or a path.
652
+
653
+ Returns
654
+ -------
655
+ str or dict
656
+ The working directory, as given to the functions.
657
+ pathlib.Path
658
+ The path to the working directory.
659
+
660
+ """
661
+ path = tmp_path / "workdir"
662
+ workdir = {"path": str(path), "cleanup": True} if as_dict else str(path)
663
+ return workdir, path
664
+
665
+
666
+ @pytest.mark.parametrize("as_dict", [False, True])
667
+ @pytest.mark.parametrize("elements", [None, ["sub-01"]])
668
+ def test_queue_workdir(
669
+ tmp_path: Path,
670
+ monkeypatch: pytest.MonkeyPatch,
671
+ datagrabber: dict[str, str],
672
+ elements: list[str] | None,
673
+ as_dict: bool,
674
+ ) -> None:
675
+ """Test queue sets up the working directory.
676
+
677
+ Parameters
678
+ ----------
679
+ tmp_path : pathlib.Path
680
+ The path to the test directory.
681
+ monkeypatch : pytest.MonkeyPatch
682
+ The pytest.MonkeyPatch object.
683
+ datagrabber : dict
684
+ Testing datagrabber as dictionary.
685
+ elements : list of str or None
686
+ The parametrized elements to queue. If None, the elements are
687
+ listed using the datagrabber.
688
+ as_dict : bool
689
+ Whether to give the working directory as a dictionary or a path.
690
+
691
+ """
692
+ workdir, path = _workdir(tmp_path, as_dict)
693
+ with monkeypatch.context() as m:
694
+ m.chdir(tmp_path)
695
+ queue(
696
+ config={"workdir": workdir, "datagrabber": datagrabber},
697
+ kind="HTCondor",
698
+ elements=elements,
699
+ )
700
+ assert WorkDirManager().workdir == path
701
+ assert path.is_dir()
702
+ # The working directory is written to the job configuration as given
703
+ config = YAML().load(tmp_path / "junifer_jobs/junifer_job/config.yaml")
704
+ assert config["workdir"] == workdir
705
+
706
+
707
+ def test_queue_workdir_cleanup(
708
+ tmp_path: Path,
709
+ monkeypatch: pytest.MonkeyPatch,
710
+ datagrabber: dict[str, str],
711
+ ) -> None:
712
+ """Test queued jobs clean up the working directory.
713
+
714
+ Disabling the cleanup only applies to queueing (e.g. to debug it), as
715
+ the jobs would otherwise leave the files of each element.
716
+
717
+ Parameters
718
+ ----------
719
+ tmp_path : pathlib.Path
720
+ The path to the test directory.
721
+ monkeypatch : pytest.MonkeyPatch
722
+ The pytest.MonkeyPatch object.
723
+ datagrabber : dict
724
+ Testing datagrabber as dictionary.
725
+
726
+ """
727
+ workdir = {"path": str(tmp_path / "workdir"), "cleanup": False}
728
+ with monkeypatch.context() as m:
729
+ m.chdir(tmp_path)
730
+ with pytest.warns(RuntimeWarning, match="will be set to True"):
731
+ queue(
732
+ config={"workdir": workdir, "datagrabber": datagrabber},
733
+ kind="HTCondor",
734
+ )
735
+ # Queueing does not clean up
736
+ assert WorkDirManager()._cleanup_dirs is False
737
+ # The jobs clean up
738
+ config = YAML().load(tmp_path / "junifer_jobs/junifer_job/config.yaml")
739
+ assert config["workdir"]["cleanup"] is True
740
+
741
+
742
+ @pytest.mark.parametrize("as_dict", [False, True])
743
+ def test_collect_workdir(tmp_path: Path, as_dict: bool) -> None:
744
+ """Test collect sets up the working directory.
745
+
746
+ Parameters
747
+ ----------
748
+ tmp_path : pathlib.Path
749
+ The path to the test directory.
750
+ as_dict : bool
751
+ Whether to give the working directory as a dictionary or a path.
752
+
753
+ """
754
+ workdir, path = _workdir(tmp_path, as_dict)
755
+ storage = {"kind": "HDF5FeatureStorage", "uri": str(tmp_path / "out.hdf5")}
756
+ collect(storage, workdir=workdir)
757
+ assert WorkDirManager().workdir == path
758
+ assert path.is_dir()
759
+
760
+
761
+ @pytest.mark.parametrize("as_dict", [False, True])
762
+ def test_reset_workdir(tmp_path: Path, as_dict: bool) -> None:
763
+ """Test reset sets up the working directory.
764
+
765
+ Parameters
766
+ ----------
767
+ tmp_path : pathlib.Path
768
+ The path to the test directory.
769
+ as_dict : bool
770
+ Whether to give the working directory as a dictionary or a path.
771
+
772
+ """
773
+ workdir, path = _workdir(tmp_path, as_dict)
774
+ storage = {"uri": str(tmp_path / "out.hdf5")}
775
+ reset(config={"workdir": workdir, "storage": storage})
776
+ assert WorkDirManager().workdir == path
777
+ assert path.is_dir()
778
+
779
+
642
780
  def test_reset_run(
643
781
  tmp_path: Path,
644
782
  datagrabber: dict[str, str],
@@ -660,7 +798,7 @@ def test_reset_run(
660
798
 
661
799
  """
662
800
  # Create storage
663
- storage["uri"] = tmp_path / "test_reset_run.sqlite" # type: ignore
801
+ storage["uri"] = tmp_path / "test_reset_run.hdf5" # type: ignore
664
802
  # Run operation to generate files
665
803
  run(
666
804
  workdir=tmp_path,
@@ -711,7 +849,7 @@ def test_reset_queue(
711
849
  with monkeypatch.context() as m:
712
850
  m.chdir(tmp_path)
713
851
  # Create storage
714
- storage["uri"] = "test_reset_queue.sqlite"
852
+ storage["uri"] = "test_reset_queue.hdf5"
715
853
  # Set job name
716
854
  if job_name is None:
717
855
  job_name = "junifer_job"
@@ -769,6 +907,40 @@ def test_list_elements(
769
907
  assert "sub-01" in listed_elements
770
908
 
771
909
 
910
+ @pytest.mark.parametrize("as_dict", [False, True, None])
911
+ def test_list_elements_workdir(
912
+ tmp_path: Path,
913
+ monkeypatch: pytest.MonkeyPatch,
914
+ datagrabber: dict[str, str],
915
+ as_dict: bool | None,
916
+ ) -> None:
917
+ """Test elements listing sets up the working directory.
918
+
919
+ Parameters
920
+ ----------
921
+ tmp_path : pathlib.Path
922
+ The path to the test directory.
923
+ monkeypatch : pytest.MonkeyPatch
924
+ The pytest.MonkeyPatch object.
925
+ datagrabber : dict
926
+ Testing datagrabber as dictionary.
927
+ as_dict : bool or None
928
+ Whether to give the working directory as a dictionary or a path.
929
+ If None, no working directory is given and the default is used.
930
+
931
+ """
932
+ if as_dict is None:
933
+ # The default working directory is in the temporary directory
934
+ monkeypatch.setattr(tempfile, "tempdir", str(tmp_path))
935
+ workdir, path = None, tmp_path / "junifer"
936
+ else:
937
+ workdir, path = _workdir(tmp_path, as_dict)
938
+ listed_elements = list_elements(datagrabber, workdir=workdir)
939
+ assert "sub-01" in listed_elements
940
+ assert WorkDirManager().workdir == path
941
+ assert path.is_dir()
942
+
943
+
772
944
  def test_parse_yaml_failure() -> None:
773
945
  """Test YAML parsing failure."""
774
946
  with pytest.raises(ValueError, match="does not exist"):
@@ -44,6 +44,28 @@ __all__ = [
44
44
  ]
45
45
 
46
46
 
47
+ def _parse_yaml(filepath: click.Path) -> dict:
48
+ """Parse the YAML file and set up the working directory.
49
+
50
+ The working directory is set up before anything else, as all the
51
+ components assume it is available.
52
+
53
+ Parameters
54
+ ----------
55
+ filepath : click.Path
56
+ The filepath to the configuration file.
57
+
58
+ Returns
59
+ -------
60
+ dict
61
+ The configuration.
62
+
63
+ """
64
+ config = cli_func.parse_yaml(filepath) # type: ignore
65
+ cli_func._setup_workdir(config.get("workdir"))
66
+ return config
67
+
68
+
47
69
  def _validate_optional_verbose(
48
70
  ctx: click.Context, param: str, value: str | None
49
71
  ):
@@ -162,7 +184,7 @@ def run(
162
184
  configure_logging(level=verbose, level_datalad=verbose_datalad)
163
185
  # TODO(synchon): add validation
164
186
  # Parse YAML
165
- config = cli_func.parse_yaml(filepath)
187
+ config = _parse_yaml(filepath)
166
188
  # Retrieve working directory
167
189
  workdir = config["workdir"]
168
190
  # Fetch datagrabber
@@ -232,7 +254,7 @@ def collect(
232
254
  configure_logging(level=verbose, level_datalad=verbose_datalad)
233
255
  # TODO: add validation
234
256
  # Parse YAML
235
- config = cli_func.parse_yaml(filepath)
257
+ config = _parse_yaml(filepath)
236
258
  # Fetch storage
237
259
  storage = config["storage"]
238
260
  # Perform operation
@@ -299,7 +321,7 @@ def queue(
299
321
  configure_logging(level=verbose, level_datalad=verbose_datalad)
300
322
  # TODO: add validation
301
323
  # Parse YAML
302
- config = cli_func.parse_yaml(filepath) # type: ignore
324
+ config = _parse_yaml(filepath)
303
325
  # Check queue section
304
326
  if "queue" not in config:
305
327
  raise_error(f"No queue configuration found in {filepath}.")
@@ -450,7 +472,7 @@ def reset(
450
472
  # Setup logging
451
473
  configure_logging(level=verbose, level_datalad=verbose_datalad)
452
474
  # Parse YAML
453
- config = cli_func.parse_yaml(filepath)
475
+ config = _parse_yaml(filepath)
454
476
  # Perform operation
455
477
  cli_func.reset(config)
456
478
 
@@ -510,7 +532,7 @@ def list_elements(
510
532
  # Setup logging
511
533
  configure_logging(level=verbose, level_datalad=verbose_datalad)
512
534
  # Parse YAML
513
- config = cli_func.parse_yaml(filepath)
535
+ config = _parse_yaml(filepath)
514
536
  # Fetch datagrabber
515
537
  datagrabber = config["datagrabber"]
516
538
  # Parse elements
@@ -10,5 +10,5 @@ markers:
10
10
  parcellation: TianxS2x3TxMNInonlinear2009cAsym
11
11
  method: mean
12
12
  storage:
13
- kind: SQLiteFeatureStorage
14
- uri: /Users/fraimondo/dev/tbox/junifer/scratch/db/test.sqlite
13
+ kind: HDF5FeatureStorage
14
+ uri: /Users/fraimondo/dev/tbox/junifer/scratch/db/test.hdf5
@@ -9,8 +9,8 @@ markers:
9
9
  parcellation: TianxS2x3TxMNInonlinear2009cAsym
10
10
  method: mean
11
11
  storage:
12
- kind: SQLiteFeatureStorage
13
- uri: /Users/fraimondo/dev/tbox/junifer/scratch/db/test.sqlite
12
+ kind: HDF5FeatureStorage
13
+ uri: /Users/fraimondo/dev/tbox/junifer/scratch/db/test.hdf5
14
14
  queue:
15
15
  jobname: TestHTCondorQueue
16
16
  kind: HTCondor