junifer 0.0.6.dev412__tar.gz → 0.0.6.dev418__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 (517) hide show
  1. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/PKG-INFO +1 -1
  2. junifer-0.0.6.dev418/docs/changes/newsfragments/422.feature +1 -0
  3. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/_version.py +2 -2
  4. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/base.py +33 -0
  5. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/hdf5.py +74 -13
  6. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/tests/test_hdf5.py +85 -2
  7. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/tests/test_storage_base.py +5 -2
  8. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/tests/test_utils.py +25 -0
  9. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/utils.py +86 -0
  10. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer.egg-info/PKG-INFO +1 -1
  11. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer.egg-info/SOURCES.txt +1 -0
  12. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.dockerignore +0 -0
  13. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  14. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  15. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  16. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  17. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  18. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  19. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/dependabot.yml +0 -0
  20. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/pull_request_template.md +0 -0
  21. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/workflows/ci-docs.yml +0 -0
  22. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/workflows/ci.yml +0 -0
  23. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/workflows/docker-ci-publish.yml +0 -0
  24. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/workflows/docker-docs-publish.yml +0 -0
  25. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/workflows/docs-preview.yml +0 -0
  26. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/workflows/docs.yml +0 -0
  27. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/workflows/lint.yml +0 -0
  28. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.github/workflows/publish.yml +0 -0
  29. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.gitignore +0 -0
  30. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.gitmodules +0 -0
  31. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/.pre-commit-config.yaml +0 -0
  32. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/AUTHORS.rst +0 -0
  33. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/Dockerfile-ci +0 -0
  34. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/Dockerfile-docs +0 -0
  35. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/LICENSE.md +0 -0
  36. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/README.md +0 -0
  37. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/codecov.yml +0 -0
  38. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/conda-env.yml +0 -0
  39. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/Makefile +0 -0
  40. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/_static/css/custom.css +0 -0
  41. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/_static/js/custom.js +0 -0
  42. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/_templates/versions.html +0 -0
  43. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/api.rst +0 -0
  44. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/cli.rst +0 -0
  45. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/configs.rst +0 -0
  46. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/data.rst +0 -0
  47. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/datagrabbers.rst +0 -0
  48. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/datareaders.rst +0 -0
  49. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/index.rst +0 -0
  50. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/markers.rst +0 -0
  51. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/nilearn.rst +0 -0
  52. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/onthefly.rst +0 -0
  53. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/pipeline.rst +0 -0
  54. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/preprocessing.rst +0 -0
  55. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/stats.rst +0 -0
  56. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/storage.rst +0 -0
  57. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/testing.rst +0 -0
  58. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/api/utils.rst +0 -0
  59. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/builtin.rst +0 -0
  60. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/contributors.inc +0 -0
  61. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/.gitignore +0 -0
  62. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/319.enh +0 -0
  63. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/335.enh +0 -0
  64. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/354.feature +0 -0
  65. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/355.misc +0 -0
  66. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/356.bugfix +0 -0
  67. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/357.enh +0 -0
  68. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/358.doc +0 -0
  69. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/359.doc +0 -0
  70. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/360.bugfix +0 -0
  71. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/361.misc +0 -0
  72. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/362.feature +0 -0
  73. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/367.enh +0 -0
  74. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/368.enh +0 -0
  75. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/369.bugfix +0 -0
  76. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/370.bugfix +0 -0
  77. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/372.misc +0 -0
  78. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/373.misc +0 -0
  79. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/374.misc +0 -0
  80. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/380.misc +0 -0
  81. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/382.misc +0 -0
  82. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/383.misc +0 -0
  83. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/384.misc +0 -0
  84. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/385.bugfix +0 -0
  85. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/386.bugfix +0 -0
  86. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/387.change +0 -0
  87. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/387.feature +0 -0
  88. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/388.bugfix +0 -0
  89. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/389.enh +0 -0
  90. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/390.change +0 -0
  91. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/390.enh +0 -0
  92. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/391.misc +0 -0
  93. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/392.feature +0 -0
  94. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/393.misc +0 -0
  95. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/395.enh +0 -0
  96. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/396.misc +0 -0
  97. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/398.bugfix +0 -0
  98. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/401.feature +0 -0
  99. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/402.change +0 -0
  100. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/402.enh +0 -0
  101. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/403.enh +0 -0
  102. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/404.change +0 -0
  103. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/404.enh +0 -0
  104. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/405.change +0 -0
  105. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/405.enh +0 -0
  106. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/407.feature +0 -0
  107. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/408.enh +0 -0
  108. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/408.feature +0 -0
  109. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/409.bugfix +0 -0
  110. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/409.enh +0 -0
  111. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/411.change +0 -0
  112. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/411.enh +0 -0
  113. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/412.change +0 -0
  114. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/412.feature +0 -0
  115. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/413.change +0 -0
  116. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/414.misc +0 -0
  117. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/415.change +0 -0
  118. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/416.enh +0 -0
  119. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/changes/newsfragments/420.bugfix +0 -0
  120. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/conf.py +0 -0
  121. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/contribution.rst +0 -0
  122. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/extending/coordinates.rst +0 -0
  123. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/extending/datagrabber.rst +0 -0
  124. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/extending/dependencies.rst +0 -0
  125. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/extending/extension.rst +0 -0
  126. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/extending/index.rst +0 -0
  127. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/extending/marker.rst +0 -0
  128. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/extending/masks.rst +0 -0
  129. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/extending/parcellations.rst +0 -0
  130. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/extending/preprocessor.rst +0 -0
  131. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/faq.rst +0 -0
  132. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/help.rst +0 -0
  133. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/images/junifer_logo.png +0 -0
  134. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/index.rst +0 -0
  135. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/installation.rst +0 -0
  136. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/links.inc +0 -0
  137. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/maintaining.rst +0 -0
  138. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/redirect.html +0 -0
  139. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/starting.rst +0 -0
  140. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/understanding/data.rst +0 -0
  141. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/understanding/datagrabber.rst +0 -0
  142. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/understanding/datareader.rst +0 -0
  143. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/understanding/index.rst +0 -0
  144. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/understanding/marker.rst +0 -0
  145. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/understanding/pipeline.rst +0 -0
  146. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/understanding/preprocess.rst +0 -0
  147. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/understanding/storage.rst +0 -0
  148. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/using/codeless.rst +0 -0
  149. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/using/index.rst +0 -0
  150. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/using/masks.rst +0 -0
  151. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/using/queueing.rst +0 -0
  152. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/using/running.rst +0 -0
  153. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/docs/whats_new.rst +0 -0
  154. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/README.rst +0 -0
  155. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/norun_hcpfc_pearson.py +0 -0
  156. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/norun_ukbvm_gmd.py +0 -0
  157. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/run_compute_parcel_mean.py +0 -0
  158. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/run_datagrabber_bids_datalad.py +0 -0
  159. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/run_ets_rss_marker.py +0 -0
  160. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/run_junifer_julearn.py +0 -0
  161. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/run_run_gmd_mean.py +0 -0
  162. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/yamls/gmd_mean.yaml +0 -0
  163. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  164. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  165. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  166. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/ignore_words.txt +0 -0
  167. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/__init__.py +0 -0
  168. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/__init__.pyi +0 -0
  169. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/__init__.py +0 -0
  170. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/__init__.pyi +0 -0
  171. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/decorators.py +0 -0
  172. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/functions.py +0 -0
  173. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/py.typed +0 -0
  174. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/queue_context/__init__.py +0 -0
  175. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/queue_context/__init__.pyi +0 -0
  176. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  177. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  178. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/queue_context/py.typed +0 -0
  179. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  180. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  181. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  182. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  183. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/afni/3dRSFC +0 -0
  184. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/afni/3dReHo +0 -0
  185. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/afni/afni +0 -0
  186. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  187. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/ants/ResampleImage +0 -0
  188. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/ants/antsApplyTransforms +0 -0
  189. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  190. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  191. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/freesurfer/mri_binarize +0 -0
  192. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/freesurfer/mri_mc +0 -0
  193. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/freesurfer/mri_pretess +0 -0
  194. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/freesurfer/mris_convert +0 -0
  195. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  196. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/fsl/applywarp +0 -0
  197. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/fsl/flirt +0 -0
  198. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/fsl/img2imgcoord +0 -0
  199. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  200. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/fsl/std2imgcoord +0 -0
  201. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/run_conda.bash +0 -0
  202. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/run_conda.zsh +0 -0
  203. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/run_venv.bash +0 -0
  204. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/res/run_venv.zsh +0 -0
  205. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/api/tests/test_functions.py +0 -0
  206. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/__init__.py +0 -0
  207. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/__init__.pyi +0 -0
  208. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/cli.py +0 -0
  209. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/parser.py +0 -0
  210. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/py.typed +0 -0
  211. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  212. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
  213. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  214. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/tests/test_cli.py +0 -0
  215. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/tests/test_cli_utils.py +0 -0
  216. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/tests/test_parser.py +0 -0
  217. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/cli/utils.py +0 -0
  218. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/__init__.py +0 -0
  219. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/__init__.py +0 -0
  220. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/__init__.pyi +0 -0
  221. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  222. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  223. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  224. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  225. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  226. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  227. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  228. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  229. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  230. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  231. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  232. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  233. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  234. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/configs/juseless/py.typed +0 -0
  235. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/conftest.py +0 -0
  236. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/__init__.py +0 -0
  237. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/__init__.pyi +0 -0
  238. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/_dispatch.py +0 -0
  239. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
  240. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/CogAC_VOIs.txt +0 -0
  241. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/CogAR_VOIs.txt +0 -0
  242. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
  243. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
  244. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/Empathy_VOIs.txt +0 -0
  245. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/Motor_VOIs.txt +0 -0
  246. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/MultiTask_VOIs.txt +0 -0
  247. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/PhysioStress_VOIs.txt +0 -0
  248. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
  249. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
  250. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/Rew_VOIs.txt +0 -0
  251. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/Somatosensory_VOIs.txt +0 -0
  252. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/ToM_VOIs.txt +0 -0
  253. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/VigAtt_VOIs.txt +0 -0
  254. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/WM_VOIs.txt +0 -0
  255. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/eMDN_VOIs.txt +0 -0
  256. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/eSAD_VOIs.txt +0 -0
  257. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/VOIs/meta/extDMN_VOIs.txt +0 -0
  258. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/__init__.py +0 -0
  259. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/__init__.pyi +0 -0
  260. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
  261. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/_coordinates.py +0 -0
  262. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
  263. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  264. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/masks/__init__.py +0 -0
  265. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/masks/__init__.pyi +0 -0
  266. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/masks/_ants_mask_warper.py +0 -0
  267. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/masks/_fsl_mask_warper.py +0 -0
  268. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/masks/_masks.py +0 -0
  269. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/masks/tests/test_masks.py +0 -0
  270. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
  271. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
  272. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
  273. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
  274. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/parcellations/__init__.py +0 -0
  275. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/parcellations/__init__.pyi +0 -0
  276. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
  277. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
  278. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/parcellations/_parcellations.py +0 -0
  279. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  280. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/pipeline_data_registry_base.py +0 -0
  281. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/py.typed +0 -0
  282. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/template_spaces.py +0 -0
  283. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/tests/test_data_utils.py +0 -0
  284. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/tests/test_template_spaces.py +0 -0
  285. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/data/utils.py +0 -0
  286. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/__init__.py +0 -0
  287. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/__init__.pyi +0 -0
  288. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/aomic/__init__.py +0 -0
  289. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  290. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/aomic/id1000.py +0 -0
  291. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/aomic/piop1.py +0 -0
  292. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/aomic/piop2.py +0 -0
  293. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/aomic/py.typed +0 -0
  294. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/aomic/tests/test_id1000.py +0 -0
  295. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/aomic/tests/test_piop1.py +0 -0
  296. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/aomic/tests/test_piop2.py +0 -0
  297. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/base.py +0 -0
  298. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/datalad_base.py +0 -0
  299. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  300. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  301. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  302. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  303. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  304. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/hcp1200/py.typed +0 -0
  305. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +0 -0
  306. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/multiple.py +0 -0
  307. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/pattern.py +0 -0
  308. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/pattern_datalad.py +0 -0
  309. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
  310. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/py.typed +0 -0
  311. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/tests/test_base.py +0 -0
  312. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/tests/test_datalad_base.py +0 -0
  313. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +0 -0
  314. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/tests/test_multiple.py +0 -0
  315. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/tests/test_pattern.py +0 -0
  316. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/tests/test_pattern_datalad.py +0 -0
  317. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  318. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datareader/__init__.py +0 -0
  319. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datareader/__init__.pyi +0 -0
  320. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datareader/default.py +0 -0
  321. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datareader/py.typed +0 -0
  322. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/datareader/tests/test_default_reader.py +0 -0
  323. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  324. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  325. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  326. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  327. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  328. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  329. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  330. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  331. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/__init__.py +0 -0
  332. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/h5io/h5io/__init__.py +0 -0
  333. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/h5io/h5io/_h5io.py +0 -0
  334. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/h5io/h5io/_version.py +0 -0
  335. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  336. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  337. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/nilearn/__init__.py +0 -0
  338. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/nilearn/__init__.pyi +0 -0
  339. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  340. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  341. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/nilearn/py.typed +0 -0
  342. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  343. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  344. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/__init__.py +0 -0
  345. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/__init__.pyi +0 -0
  346. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/base.py +0 -0
  347. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/brainprint.py +0 -0
  348. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/__init__.py +0 -0
  349. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/__init__.pyi +0 -0
  350. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/complexity_base.py +0 -0
  351. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/hurst_exponent.py +0 -0
  352. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  353. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/perm_entropy.py +0 -0
  354. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/py.typed +0 -0
  355. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/range_entropy.py +0 -0
  356. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  357. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/sample_entropy.py +0 -0
  358. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  359. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -0
  360. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -0
  361. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/tests/test_perm_entropy.py +0 -0
  362. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/tests/test_range_entropy.py +0 -0
  363. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -0
  364. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/tests/test_sample_entropy.py +0 -0
  365. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -0
  366. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  367. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/ets_rss.py +0 -0
  368. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/falff/__init__.py +0 -0
  369. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/falff/__init__.pyi +0 -0
  370. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/falff/_afni_falff.py +0 -0
  371. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/falff/_junifer_falff.py +0 -0
  372. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/falff/falff_base.py +0 -0
  373. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/falff/falff_parcels.py +0 -0
  374. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/falff/falff_spheres.py +0 -0
  375. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/falff/py.typed +0 -0
  376. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  377. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/falff/tests/test_falff_spheres.py +0 -0
  378. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/__init__.py +0 -0
  379. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  380. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  381. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  382. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  383. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  384. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  385. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  386. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/py.typed +0 -0
  387. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  388. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +0 -0
  389. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +0 -0
  390. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  391. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +0 -0
  392. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +0 -0
  393. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/parcel_aggregation.py +0 -0
  394. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/py.typed +0 -0
  395. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/reho/__init__.py +0 -0
  396. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/reho/__init__.pyi +0 -0
  397. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/reho/_afni_reho.py +0 -0
  398. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/reho/_junifer_reho.py +0 -0
  399. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/reho/py.typed +0 -0
  400. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/reho/reho_base.py +0 -0
  401. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/reho/reho_parcels.py +0 -0
  402. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/reho/reho_spheres.py +0 -0
  403. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  404. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  405. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/sphere_aggregation.py +0 -0
  406. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/temporal_snr/__init__.py +0 -0
  407. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  408. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/temporal_snr/py.typed +0 -0
  409. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  410. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  411. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  412. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  413. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  414. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  415. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/tests/test_brainprint.py +0 -0
  416. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/tests/test_ets_rss.py +0 -0
  417. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/tests/test_marker_utils.py +0 -0
  418. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/tests/test_markers_base.py +0 -0
  419. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/tests/test_parcel_aggregation.py +0 -0
  420. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/tests/test_sphere_aggregation.py +0 -0
  421. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/markers/utils.py +0 -0
  422. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/onthefly/__init__.py +0 -0
  423. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/onthefly/_brainprint.py +0 -0
  424. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/onthefly/read_transform.py +0 -0
  425. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/onthefly/tests/test_read_transform.py +0 -0
  426. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/__init__.py +0 -0
  427. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/__init__.pyi +0 -0
  428. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/marker_collection.py +0 -0
  429. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/pipeline_component_registry.py +0 -0
  430. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  431. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/py.typed +0 -0
  432. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/tests/test_marker_collection.py +0 -0
  433. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  434. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/tests/test_pipeline_step_mixin.py +0 -0
  435. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  436. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  437. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/update_meta_mixin.py +0 -0
  438. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/utils.py +0 -0
  439. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/pipeline/workdir_manager.py +0 -0
  440. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/__init__.py +0 -0
  441. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/__init__.pyi +0 -0
  442. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/base.py +0 -0
  443. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/confounds/__init__.py +0 -0
  444. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/confounds/__init__.pyi +0 -0
  445. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  446. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/confounds/py.typed +0 -0
  447. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +0 -0
  448. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/py.typed +0 -0
  449. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/smoothing/__init__.py +0 -0
  450. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  451. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  452. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  453. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  454. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/smoothing/py.typed +0 -0
  455. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/smoothing/smoothing.py +0 -0
  456. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  457. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  458. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/warping/__init__.py +0 -0
  459. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/warping/__init__.pyi +0 -0
  460. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/warping/_ants_warper.py +0 -0
  461. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  462. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/warping/py.typed +0 -0
  463. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/warping/space_warper.py +0 -0
  464. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/preprocess/warping/tests/test_space_warper.py +0 -0
  465. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/py.typed +0 -0
  466. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/stats.py +0 -0
  467. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/__init__.py +0 -0
  468. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/__init__.pyi +0 -0
  469. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/pandas_base.py +0 -0
  470. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/py.typed +0 -0
  471. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/sqlite.py +0 -0
  472. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/tests/test_pandas_base.py +0 -0
  473. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/storage/tests/test_sqlite.py +0 -0
  474. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/__init__.py +0 -0
  475. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/__init__.pyi +0 -0
  476. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  477. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/datagrabbers.py +0 -0
  478. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/py.typed +0 -0
  479. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/registry.py +0 -0
  480. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  481. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  482. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  483. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/tests/test_testing_registry.py +0 -0
  484. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/testing/utils.py +0 -0
  485. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/tests/test_main.py +0 -0
  486. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/tests/test_stats.py +0 -0
  487. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/typing/__init__.py +0 -0
  488. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/typing/__init__.pyi +0 -0
  489. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/typing/_typing.py +0 -0
  490. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/__init__.py +0 -0
  491. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/__init__.pyi +0 -0
  492. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/_config.py +0 -0
  493. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/_yaml.py +0 -0
  494. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/fs.py +0 -0
  495. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/helpers.py +0 -0
  496. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/logging.py +0 -0
  497. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/py.typed +0 -0
  498. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/singleton.py +0 -0
  499. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/tests/test_config.py +0 -0
  500. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/tests/test_fs.py +0 -0
  501. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/tests/test_helpers.py +0 -0
  502. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer/utils/tests/test_logging.py +0 -0
  503. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer.egg-info/dependency_links.txt +0 -0
  504. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer.egg-info/entry_points.txt +0 -0
  505. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer.egg-info/requires.txt +0 -0
  506. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/junifer.egg-info/top_level.txt +0 -0
  507. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/pyproject.toml +0 -0
  508. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/setup.cfg +0 -0
  509. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/setup.py +0 -0
  510. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/tools/create_aomic1000_example_dataset.py +0 -0
  511. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/tools/create_aomicpiop1_example_dataset.py +0 -0
  512. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/tools/create_aomicpiop2_example_dataset.py +0 -0
  513. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/tools/create_bids_example_dataset.py +0 -0
  514. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/tools/create_bids_example_dataset_sessions.py +0 -0
  515. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  516. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/tools/create_hcp1200_example_dataset.py +0 -0
  517. {junifer-0.0.6.dev412 → junifer-0.0.6.dev418}/tox.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: junifer
3
- Version: 0.0.6.dev412
3
+ Version: 0.0.6.dev418
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
+ Allow storage of 2D timeseries, currently only supported by HDF5FeatureStorage by `Fede Raimondo`_
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.0.6.dev412'
16
- __version_tuple__ = version_tuple = (0, 0, 6, 'dev412')
15
+ __version__ = version = '0.0.6.dev418'
16
+ __version_tuple__ = version_tuple = (0, 0, 6, 'dev418')
@@ -226,6 +226,10 @@ class BaseFeatureStorage(ABC):
226
226
  self.store_scalar_table(
227
227
  meta_md5=meta_md5, element=t_element, **kwargs
228
228
  )
229
+ elif kind == "timeseries_2d":
230
+ self.store_timeseries_2d(
231
+ meta_md5=meta_md5, element=t_element, **kwargs
232
+ )
229
233
 
230
234
  def store_matrix(
231
235
  self,
@@ -321,6 +325,35 @@ class BaseFeatureStorage(ABC):
321
325
  klass=NotImplementedError,
322
326
  )
323
327
 
328
+ def store_timeseries_2d(
329
+ self,
330
+ meta_md5: str,
331
+ element: dict,
332
+ data: np.ndarray,
333
+ col_names: Optional[Iterable[str]] = None,
334
+ row_names: Optional[Iterable[str]] = None,
335
+ ) -> None:
336
+ """Store 2D timeseries.
337
+
338
+ Parameters
339
+ ----------
340
+ meta_md5 : str
341
+ The metadata MD5 hash.
342
+ element : dict
343
+ The element as a dictionary.
344
+ data : numpy.ndarray
345
+ The timeseries data to store.
346
+ col_names : list or tuple of str, optional
347
+ The column labels (default None).
348
+ row_names : list or tuple of str, optional
349
+ The row labels (default None).
350
+
351
+ """
352
+ raise_error(
353
+ msg="Concrete classes need to implement store_timeseries_2d().",
354
+ klass=NotImplementedError,
355
+ )
356
+
324
357
  def store_scalar_table(
325
358
  self,
326
359
  meta_md5: str,
@@ -4,7 +4,6 @@
4
4
  # Federico Raimondo <f.raimondo@fz-juelich.de>
5
5
  # License: AGPL
6
6
 
7
-
8
7
  from collections import defaultdict
9
8
  from collections.abc import Iterable
10
9
  from pathlib import Path
@@ -24,7 +23,13 @@ from ..external.h5io.h5io import (
24
23
  )
25
24
  from ..utils import logger, raise_error
26
25
  from .base import BaseFeatureStorage
27
- from .utils import element_to_prefix, matrix_to_vector, store_matrix_checks
26
+ from .utils import (
27
+ element_to_prefix,
28
+ matrix_to_vector,
29
+ store_matrix_checks,
30
+ store_timeseries_2d_checks,
31
+ timeseries2d_to_vector,
32
+ )
28
33
 
29
34
 
30
35
  __all__ = ["HDF5FeatureStorage"]
@@ -82,7 +87,7 @@ def _create_chunk(
82
87
  chunk_size=tuple(array_chunk_size),
83
88
  n_chunk=i_chunk,
84
89
  )
85
- elif kind in ["timeseries", "scalar_table"]:
90
+ elif kind in ["timeseries", "scalar_table", "timeseries_2d"]:
86
91
  out = ChunkedList(
87
92
  data=chunk_data,
88
93
  size=element_count,
@@ -91,8 +96,8 @@ def _create_chunk(
91
96
  else:
92
97
  raise_error(
93
98
  f"Invalid kind: {kind}. "
94
- "Must be one of ['vector', 'matrix', 'timeseries',"
95
- "'scalar_table']."
99
+ "Must be one of ['vector', 'matrix', 'timeseries', "
100
+ "'timeseries_2d', 'scalar_table']."
96
101
  )
97
102
  return out
98
103
 
@@ -196,8 +201,7 @@ class HDF5FeatureStorage(BaseFeatureStorage):
196
201
  if not self.single_output and not element:
197
202
  raise_error(
198
203
  msg=(
199
- "`element` must be provided when `single_output` "
200
- "is False"
204
+ "`element` must be provided when `single_output` is False"
201
205
  ),
202
206
  klass=RuntimeError,
203
207
  )
@@ -514,6 +518,27 @@ class HDF5FeatureStorage(BaseFeatureStorage):
514
518
  columns = hdf_data["column_headers"]
515
519
  # Convert data from 3D to 2D
516
520
  reshaped_data = np.concatenate(all_data, axis=0)
521
+ elif hdf_data["kind"] == "timeseries_2d":
522
+ # Create dictionary for aggregating index data
523
+ element_idx = defaultdict(list)
524
+ all_data = []
525
+ for idx, element in enumerate(hdf_data["element"]):
526
+ # Get row count for the element
527
+ t_data = hdf_data["data"][idx]
528
+ flat_data, columns = timeseries2d_to_vector(
529
+ data=t_data,
530
+ col_names=hdf_data["column_headers"],
531
+ row_names=hdf_data["row_headers"],
532
+ )
533
+ all_data.append(flat_data)
534
+ n_timepoints = flat_data.shape[0]
535
+ # Set rows for the index
536
+ for key, val in element.items():
537
+ element_idx[key].extend([val] * n_timepoints)
538
+ # Add extra column for timepoints
539
+ element_idx["timepoint"].extend(np.arange(n_timepoints))
540
+ # Convert data from 3D to 2D
541
+ reshaped_data = np.concatenate(all_data, axis=0)
517
542
  elif hdf_data["kind"] == "scalar_table":
518
543
  # Create dictionary for aggregating index data
519
544
  element_idx = defaultdict(list)
@@ -765,7 +790,7 @@ class HDF5FeatureStorage(BaseFeatureStorage):
765
790
  )
766
791
 
767
792
  t_data = stored_data["data"]
768
- if kind in ["timeseries", "scalar_table"]:
793
+ if kind in ["timeseries", "scalar_table", "timeseries_2d"]:
769
794
  t_data += data
770
795
  else:
771
796
  t_data = np.concatenate((t_data, data), axis=-1)
@@ -947,6 +972,44 @@ class HDF5FeatureStorage(BaseFeatureStorage):
947
972
  row_header_column_name="timepoint",
948
973
  )
949
974
 
975
+ def store_timeseries_2d(
976
+ self,
977
+ meta_md5: str,
978
+ element: dict[str, str],
979
+ data: np.ndarray,
980
+ col_names: Optional[Iterable[str]] = None,
981
+ row_names: Optional[Iterable[str]] = None,
982
+ ) -> None:
983
+ """Store a 2D timeseries.
984
+
985
+ Parameters
986
+ ----------
987
+ meta_md5 : str
988
+ The metadata MD5 hash.
989
+ element : dict
990
+ The element as dictionary.
991
+ data : numpy.ndarray
992
+ The 2D timeseries data to store.
993
+ col_names : list or tuple of str, optional
994
+ The column labels (default None).
995
+ row_names : list or tuple of str, optional
996
+ The row labels (default None).
997
+
998
+ """
999
+ store_timeseries_2d_checks(
1000
+ data_shape=data.shape,
1001
+ row_names_len=len(row_names), # type: ignore
1002
+ col_names_len=len(col_names), # type: ignore
1003
+ )
1004
+ self._store_data(
1005
+ kind="timeseries_2d",
1006
+ meta_md5=meta_md5,
1007
+ element=[element], # convert to list
1008
+ data=[data], # convert to list
1009
+ column_headers=col_names,
1010
+ row_headers=row_names,
1011
+ )
1012
+
950
1013
  def store_scalar_table(
951
1014
  self,
952
1015
  meta_md5: str,
@@ -1014,8 +1077,7 @@ class HDF5FeatureStorage(BaseFeatureStorage):
1014
1077
 
1015
1078
  # Run loop to collect metadata
1016
1079
  logger.info(
1017
- "Collecting metadata from "
1018
- f"{self.uri.parent}/*_{self.uri.name}" # type: ignore
1080
+ f"Collecting metadata from {self.uri.parent}/*_{self.uri.name}" # type: ignore
1019
1081
  )
1020
1082
  # Collect element files per feature MD5
1021
1083
  elements_per_feature_md5 = defaultdict(list)
@@ -1046,8 +1108,7 @@ class HDF5FeatureStorage(BaseFeatureStorage):
1046
1108
 
1047
1109
  # Run loop to collect data per feature per file
1048
1110
  logger.info(
1049
- "Collecting data from "
1050
- f"{self.uri.parent}/*_{self.uri.name}" # type: ignore
1111
+ f"Collecting data from {self.uri.parent}/*_{self.uri.name}" # type: ignore
1051
1112
  )
1052
1113
  logger.info(f"Will collect {len(elements_per_feature_md5)} features.")
1053
1114
 
@@ -1092,7 +1153,7 @@ class HDF5FeatureStorage(BaseFeatureStorage):
1092
1153
  kind = static_data["kind"]
1093
1154
 
1094
1155
  # Append the "dynamic" data
1095
- if kind in ["timeseries", "scalar_table"]:
1156
+ if kind in ["timeseries", "scalar_table", "timeseries_2d"]:
1096
1157
  chunk_data.extend(t_data["data"])
1097
1158
  else:
1098
1159
  chunk_data.append(t_data["data"])
@@ -826,6 +826,70 @@ def test_store_timeseries(tmp_path: Path) -> None:
826
826
  assert_array_equal(read_df.values, data)
827
827
 
828
828
 
829
+ def test_store_timeseries2d(tmp_path: Path) -> None:
830
+ """Test 2D timeseries store.
831
+
832
+ Parameters
833
+ ----------
834
+ tmp_path : pathlib.Path
835
+ The path to the test directory.
836
+
837
+ """
838
+ uri = tmp_path / "test_store_timeseries_2d.hdf5"
839
+ storage = HDF5FeatureStorage(uri=uri)
840
+ # Metadata to store
841
+ element = {"subject": "test"}
842
+ meta = {
843
+ "element": element,
844
+ "dependencies": ["numpy"],
845
+ "marker": {"name": "fc"},
846
+ "type": "BOLD",
847
+ }
848
+ # Process the metadata
849
+ meta_md5, meta_to_store, element_to_store = process_meta(meta)
850
+ # Store metadata
851
+ storage.store_metadata(
852
+ meta_md5=meta_md5, element=element_to_store, meta=meta_to_store
853
+ )
854
+
855
+ # Data to store
856
+ data = np.array(
857
+ [[10, 11, 12], [20, 21, 22], [30, 31, 32], [40, 41, 42], [50, 51, 52]]
858
+ )
859
+ data = np.c_[[data + (i * 100) for i in range(4)]] # Generate timeseries
860
+
861
+ col_names = ["roi1", "roi2", "roi3"]
862
+ row_names = ["ev1", "ev2", "ev3", "ev4", "ev5"]
863
+
864
+ # Store 2D timeseries
865
+ storage.store_timeseries_2d(
866
+ meta_md5=meta_md5,
867
+ element=element_to_store,
868
+ data=data,
869
+ col_names=col_names,
870
+ row_names=row_names,
871
+ )
872
+
873
+ # Read into dataframe
874
+ read_data = storage.read(feature_md5=meta_md5)
875
+ # Check if data are equal
876
+ assert_array_equal(read_data["data"][0], data)
877
+ assert read_data["column_headers"] == col_names
878
+ assert read_data["row_headers"], row_names
879
+
880
+ read_df = storage.read_df(feature_md5=meta_md5)
881
+ flatted_names = [f"{row}~{col}" for row in row_names for col in col_names]
882
+
883
+ expected_flat_data = np.array(
884
+ [10, 11, 12, 20, 21, 22, 30, 31, 32, 40, 41, 42, 50, 51, 52]
885
+ )
886
+ expected_flat_data = np.c_[
887
+ [expected_flat_data + (i * 100) for i in range(4)]
888
+ ] # Generate timeseries
889
+ assert_array_equal(read_df.values, expected_flat_data)
890
+ assert read_df.columns.to_list() == flatted_names
891
+
892
+
829
893
  def test_store_scalar_table(tmp_path: Path) -> None:
830
894
  """Test scalar table store.
831
895
 
@@ -857,7 +921,7 @@ def test_store_scalar_table(tmp_path: Path) -> None:
857
921
  col_names = ["roi1", "roi2"]
858
922
  row_names = ["ev1", "ev2", "ev3"]
859
923
 
860
- # Store timeseries
924
+ # Store scalar table
861
925
  storage.store_scalar_table(
862
926
  meta_md5=meta_md5,
863
927
  element=element_to_store,
@@ -910,6 +974,12 @@ def _create_data_to_store(n_elements: int, kind: str) -> tuple[str, dict]:
910
974
  "data": np.arange(20).reshape(2, 10),
911
975
  "col_names": [f"col-{i}" for i in range(10)],
912
976
  }
977
+ elif kind in "timeseries_2d":
978
+ data_to_store = {
979
+ "data": np.arange(120).reshape(6, 5, 4),
980
+ "row_names": [f"row-{i}" for i in range(5)],
981
+ "col_names": [f"col-{i}" for i in range(4)],
982
+ }
913
983
  elif kind in "scalar_table":
914
984
  data_to_store = {
915
985
  "data": np.arange(50).reshape(5, 10),
@@ -961,6 +1031,7 @@ def _create_data_to_store(n_elements: int, kind: str) -> tuple[str, dict]:
961
1031
  (10, 5, "matrix"),
962
1032
  (10, 5, "timeseries"),
963
1033
  (10, 5, "scalar_table"),
1034
+ (10, 5, "timeseries_2d"),
964
1035
  ],
965
1036
  )
966
1037
  def test_multi_output_store_and_collect(
@@ -982,7 +1053,9 @@ def test_multi_output_store_and_collect(
982
1053
  """
983
1054
  uri = tmp_path / "test_multi_output_store_and_collect.hdf5"
984
1055
  storage = HDF5FeatureStorage(
985
- uri=uri, single_output=False, chunk_size=chunk_size
1056
+ uri=uri,
1057
+ single_output=False,
1058
+ chunk_size=chunk_size,
986
1059
  )
987
1060
 
988
1061
  meta_md5, all_data = _create_data_to_store(n_elements, kind)
@@ -1013,6 +1086,12 @@ def test_multi_output_store_and_collect(
1013
1086
  element=t_data["element"],
1014
1087
  **t_data["data"],
1015
1088
  )
1089
+ elif kind == "timeseries_2d":
1090
+ storage.store_timeseries_2d(
1091
+ meta_md5=meta_md5,
1092
+ element=t_data["element"],
1093
+ **t_data["data"],
1094
+ )
1016
1095
  elif kind == "scalar_table":
1017
1096
  storage.store_scalar_table(
1018
1097
  meta_md5=meta_md5,
@@ -1052,6 +1131,10 @@ def test_multi_output_store_and_collect(
1052
1131
  data_size = np.sum([x["data"]["data"].shape[0] for x in all_data])
1053
1132
  assert len(all_df) == data_size
1054
1133
  idx_names = [x for x in all_df.index.names if x != "timepoint"]
1134
+ elif kind == "timeseries_2d":
1135
+ data_size = np.sum([x["data"]["data"].shape[0] for x in all_data])
1136
+ assert len(all_df) == data_size
1137
+ idx_names = [x for x in all_df.index.names if x != "timepoint"]
1055
1138
  elif kind == "scalar_table":
1056
1139
  data_size = np.sum([x["data"]["data"].shape[0] for x in all_data])
1057
1140
  assert len(all_df) == data_size
@@ -25,7 +25,7 @@ def test_BaseFeatureStorage() -> None:
25
25
  """Implement concrete class."""
26
26
 
27
27
  def __init__(self, uri, single_output=True):
28
- storage_types = ["matrix", "vector", "timeseries"]
28
+ storage_types = ["matrix", "vector", "timeseries", "timeseries_2d"]
29
29
  super().__init__(
30
30
  uri=uri,
31
31
  storage_types=storage_types,
@@ -33,7 +33,7 @@ def test_BaseFeatureStorage() -> None:
33
33
  )
34
34
 
35
35
  def get_valid_inputs(self):
36
- return ["matrix", "vector", "timeseries"]
36
+ return ["matrix", "vector", "timeseries", "timeseries_2d"]
37
37
 
38
38
  def list_features(self):
39
39
  super().list_features()
@@ -97,6 +97,9 @@ def test_BaseFeatureStorage() -> None:
97
97
  with pytest.raises(NotImplementedError):
98
98
  st.store(kind="timeseries", meta=meta)
99
99
 
100
+ with pytest.raises(NotImplementedError):
101
+ st.store(kind="timeseries_2d", meta=meta)
102
+
100
103
  with pytest.raises(NotImplementedError):
101
104
  st.store(kind="vector", meta=meta)
102
105
 
@@ -17,6 +17,7 @@ from junifer.storage.utils import (
17
17
  matrix_to_vector,
18
18
  process_meta,
19
19
  store_matrix_checks,
20
+ timeseries2d_to_vector,
20
21
  )
21
22
 
22
23
 
@@ -421,3 +422,27 @@ def test_matrix_to_vector(
421
422
  data, columns = matrix_to_vector(**params) # type: ignore
422
423
  assert_array_equal(data, expected_data)
423
424
  assert columns == expected_columns
425
+
426
+
427
+ def test_timeseries2d_to_vector() -> None:
428
+ """Test timeseries2d to vector."""
429
+ data = np.array(
430
+ [[10, 11, 12], [20, 21, 22], [30, 31, 32], [40, 41, 42], [50, 51, 52]]
431
+ )
432
+ data = np.c_[[data + (i * 100) for i in range(4)]] # Generate timeseries
433
+ col_names = ["c0", "c1", "c2"]
434
+ row_names = ["r0", "r1", "r2", "r3", "r4"]
435
+ flat_data, columns = timeseries2d_to_vector(
436
+ data=data,
437
+ col_names=col_names,
438
+ row_names=row_names,
439
+ )
440
+
441
+ expected_flat_data = np.array(
442
+ [10, 11, 12, 20, 21, 22, 30, 31, 32, 40, 41, 42, 50, 51, 52]
443
+ )
444
+ expected_flat_data = np.c_[
445
+ [expected_flat_data + (i * 100) for i in range(4)]
446
+ ] # Generate timeseries
447
+ assert_array_equal(flat_data, expected_flat_data)
448
+ assert columns == [f"{r}~{c}" for r in row_names for c in col_names]
@@ -181,6 +181,15 @@ def store_matrix_checks(
181
181
  col_names_len : int
182
182
  The length of column labels.
183
183
 
184
+ Raises
185
+ ------
186
+ ValueError
187
+ If the matrix kind is invalid
188
+ If the diagonal is False and the matrix kind is "full"
189
+ If the matrix kind is "triu" or "tril" and the matrix is not square
190
+ If the number of row names does not match the number of rows
191
+ If the number of column names does not match the number of columns
192
+
184
193
  """
185
194
  # Matrix kind validation
186
195
  if matrix_kind not in ("triu", "tril", "full"):
@@ -212,6 +221,51 @@ def store_matrix_checks(
212
221
  )
213
222
 
214
223
 
224
+ def store_timeseries_2d_checks(
225
+ data_shape: tuple[int, int, int],
226
+ row_names_len: int,
227
+ col_names_len: int,
228
+ ) -> None:
229
+ """Run parameter checks for store_timeseries_2d() methods.
230
+
231
+ Parameters
232
+ ----------
233
+ data_shape : tuple of int and int
234
+ The shape of the matrix data to store.
235
+ row_names_len : int
236
+ The length of row labels.
237
+ col_names_len : int
238
+ The length of column labels.
239
+
240
+ Raises
241
+ ------
242
+ ValueError
243
+ If the data is not a 3D array (timepoints, rows, columns)
244
+ If the number of row names does not match the number of rows
245
+ If the number of column names does not match the number of columns
246
+
247
+ """
248
+ # data validation
249
+ if len(data_shape) != 3:
250
+ raise_error(
251
+ msg="Data must be a 3D array",
252
+ klass=ValueError,
253
+ )
254
+
255
+ # Row label validation
256
+ if row_names_len != data_shape[1]: # type: ignore
257
+ raise_error(
258
+ msg="Number of row names does not match number of rows",
259
+ klass=ValueError,
260
+ )
261
+ # Column label validation
262
+ if col_names_len != data_shape[2]: # type: ignore
263
+ raise_error(
264
+ msg="Number of column names does not match number of columns",
265
+ klass=ValueError,
266
+ )
267
+
268
+
215
269
  def matrix_to_vector(
216
270
  data: np.ndarray,
217
271
  col_names: Iterable[str],
@@ -268,3 +322,35 @@ def matrix_to_vector(
268
322
  ]
269
323
 
270
324
  return flat_data, columns
325
+
326
+
327
+ def timeseries2d_to_vector(
328
+ data: np.ndarray,
329
+ col_names: Iterable[str],
330
+ row_names: Iterable[str],
331
+ ) -> tuple[np.ndarray, list[str]]:
332
+ """Convert matrix to vector based on parameters.
333
+
334
+ Parameters
335
+ ----------
336
+ data : 2D / 3D numpy.ndarray
337
+ The matrix / tensor data to store / read.
338
+ col_names : list or tuple of str
339
+ The column labels.
340
+ row_names : list or tuple of str
341
+ The row labels.
342
+
343
+ Returns
344
+ -------
345
+ 2D numpy.ndarray
346
+ The vector / matrix data.
347
+ list of str
348
+ The column labels.
349
+
350
+ """
351
+ # Reshape data to 2D
352
+ flat_data = data.reshape(data.shape[0], -1)
353
+ # Generate flat 1D row X column names
354
+ columns = [f"{r}~{c}" for r in row_names for c in col_names]
355
+
356
+ return flat_data, columns
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: junifer
3
- Version: 0.0.6.dev412
3
+ Version: 0.0.6.dev418
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>
@@ -121,6 +121,7 @@ docs/changes/newsfragments/414.misc
121
121
  docs/changes/newsfragments/415.change
122
122
  docs/changes/newsfragments/416.enh
123
123
  docs/changes/newsfragments/420.bugfix
124
+ docs/changes/newsfragments/422.feature
124
125
  docs/extending/coordinates.rst
125
126
  docs/extending/datagrabber.rst
126
127
  docs/extending/dependencies.rst
File without changes