junifer 0.0.5.dev240__tar.gz → 0.0.6__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 (514) hide show
  1. junifer-0.0.6/.dockerignore +19 -0
  2. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/dependabot.yml +6 -2
  3. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/workflows/ci-docs.yml +11 -5
  4. junifer-0.0.6/.github/workflows/ci.yml +78 -0
  5. junifer-0.0.6/.github/workflows/docker-ci-publish.yml +103 -0
  6. junifer-0.0.6/.github/workflows/docker-docs-publish.yml +100 -0
  7. junifer-0.0.6/.github/workflows/docs-preview.yml +68 -0
  8. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/workflows/docs.yml +30 -30
  9. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/workflows/lint.yml +1 -1
  10. junifer-0.0.6/.github/workflows/publish.yml +46 -0
  11. {junifer-0.0.5.dev240 → junifer-0.0.6}/.pre-commit-config.yaml +6 -6
  12. junifer-0.0.6/Dockerfile-ci +72 -0
  13. junifer-0.0.6/Dockerfile-docs +26 -0
  14. {junifer-0.0.5.dev240 → junifer-0.0.6}/PKG-INFO +20 -15
  15. {junifer-0.0.5.dev240 → junifer-0.0.6}/README.md +1 -0
  16. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/Makefile +4 -14
  17. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/api.rst +3 -3
  18. junifer-0.0.6/docs/api/cli.rst +6 -0
  19. junifer-0.0.6/docs/api/data.rst +6 -0
  20. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/index.rst +1 -0
  21. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/onthefly.rst +3 -0
  22. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/pipeline.rst +0 -6
  23. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/builtin.rst +9 -8
  24. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/conf.py +43 -21
  25. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/coordinates.rst +23 -10
  26. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/dependencies.rst +18 -7
  27. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/extension.rst +21 -5
  28. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/index.rst +1 -0
  29. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/marker.rst +3 -2
  30. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/masks.rst +21 -7
  31. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/parcellations.rst +18 -7
  32. junifer-0.0.6/docs/extending/plugins.rst +50 -0
  33. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/links.inc +3 -0
  34. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/preprocess.rst +19 -8
  35. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/using/masks.rst +2 -2
  36. junifer-0.0.6/docs/using/running.rst +285 -0
  37. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/whats_new.rst +335 -12
  38. {junifer-0.0.5.dev240 → junifer-0.0.6}/ignore_words.txt +2 -0
  39. junifer-0.0.6/junifer/__init__.py +10 -0
  40. junifer-0.0.5.dev240/junifer/__init__.py → junifer-0.0.6/junifer/__init__.pyi +20 -22
  41. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/_version.py +9 -4
  42. junifer-0.0.6/junifer/api/__init__.py +10 -0
  43. junifer-0.0.6/junifer/api/__init__.pyi +4 -0
  44. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/decorators.py +14 -19
  45. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/functions.py +165 -109
  46. junifer-0.0.6/junifer/api/py.typed +0 -0
  47. junifer-0.0.6/junifer/api/queue_context/__init__.py +9 -0
  48. junifer-0.0.5.dev240/junifer/api/queue_context/__init__.py → junifer-0.0.6/junifer/api/queue_context/__init__.pyi +1 -7
  49. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/queue_context/gnu_parallel_local_adapter.py +22 -6
  50. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/queue_context/htcondor_adapter.py +23 -6
  51. junifer-0.0.6/junifer/api/queue_context/py.typed +0 -0
  52. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +3 -3
  53. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/queue_context/tests/test_htcondor_adapter.py +3 -3
  54. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/tests/test_functions.py +168 -74
  55. junifer-0.0.6/junifer/cli/__init__.py +24 -0
  56. junifer-0.0.6/junifer/cli/__init__.pyi +3 -0
  57. {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/cli.py +141 -125
  58. junifer-0.0.6/junifer/cli/parser.py +235 -0
  59. junifer-0.0.6/junifer/cli/py.typed +0 -0
  60. {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/tests/test_cli.py +8 -8
  61. junifer-0.0.5.dev240/junifer/api/tests/test_api_utils.py → junifer-0.0.6/junifer/cli/tests/test_cli_utils.py +5 -4
  62. {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/tests/test_parser.py +2 -2
  63. {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/utils.py +6 -16
  64. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/__init__.py +2 -2
  65. junifer-0.0.6/junifer/configs/juseless/__init__.pyi +3 -0
  66. junifer-0.0.6/junifer/configs/juseless/datagrabbers/__init__.py +11 -0
  67. junifer-0.0.5.dev240/junifer/configs/juseless/datagrabbers/__init__.py → junifer-0.0.6/junifer/configs/juseless/datagrabbers/__init__.pyi +6 -14
  68. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +2 -2
  69. junifer-0.0.6/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  70. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +2 -2
  71. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/ucla.py +4 -4
  72. junifer-0.0.6/junifer/configs/juseless/py.typed +0 -0
  73. junifer-0.0.6/junifer/conftest.py +25 -0
  74. junifer-0.0.6/junifer/data/__init__.py +10 -0
  75. junifer-0.0.6/junifer/data/__init__.pyi +29 -0
  76. junifer-0.0.6/junifer/data/_dispatch.py +248 -0
  77. junifer-0.0.6/junifer/data/coordinates/__init__.py +9 -0
  78. junifer-0.0.6/junifer/data/coordinates/__init__.pyi +5 -0
  79. junifer-0.0.6/junifer/data/coordinates/_ants_coordinates_warper.py +104 -0
  80. junifer-0.0.6/junifer/data/coordinates/_coordinates.py +385 -0
  81. junifer-0.0.6/junifer/data/coordinates/_fsl_coordinates_warper.py +81 -0
  82. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/tests/test_coordinates.py +26 -33
  83. junifer-0.0.6/junifer/data/masks/__init__.py +9 -0
  84. junifer-0.0.6/junifer/data/masks/__init__.pyi +6 -0
  85. junifer-0.0.6/junifer/data/masks/_ants_mask_warper.py +177 -0
  86. junifer-0.0.6/junifer/data/masks/_fsl_mask_warper.py +106 -0
  87. junifer-0.0.6/junifer/data/masks/_masks.py +802 -0
  88. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/masks}/tests/test_masks.py +67 -63
  89. junifer-0.0.6/junifer/data/parcellations/__init__.py +9 -0
  90. junifer-0.0.6/junifer/data/parcellations/__init__.pyi +6 -0
  91. junifer-0.0.6/junifer/data/parcellations/_ants_parcellation_warper.py +166 -0
  92. junifer-0.0.6/junifer/data/parcellations/_fsl_parcellation_warper.py +89 -0
  93. junifer-0.0.6/junifer/data/parcellations/_parcellations.py +1388 -0
  94. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/parcellations}/tests/test_parcellations.py +165 -295
  95. junifer-0.0.6/junifer/data/pipeline_data_registry_base.py +76 -0
  96. junifer-0.0.6/junifer/data/py.typed +0 -0
  97. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/template_spaces.py +44 -79
  98. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/tests/test_data_utils.py +1 -2
  99. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/tests/test_template_spaces.py +8 -4
  100. junifer-0.0.6/junifer/data/utils.py +152 -0
  101. junifer-0.0.6/junifer/datagrabber/__init__.py +11 -0
  102. junifer-0.0.5.dev240/junifer/datagrabber/__init__.py → junifer-0.0.6/junifer/datagrabber/__init__.pyi +13 -21
  103. junifer-0.0.6/junifer/datagrabber/aomic/__init__.py +10 -0
  104. junifer-0.0.5.dev240/junifer/datagrabber/aomic/__init__.py → junifer-0.0.6/junifer/datagrabber/aomic/__init__.pyi +1 -8
  105. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/id1000.py +81 -52
  106. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/piop1.py +83 -55
  107. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/piop2.py +85 -56
  108. junifer-0.0.6/junifer/datagrabber/aomic/py.typed +0 -0
  109. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/tests/test_id1000.py +19 -12
  110. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/tests/test_piop1.py +52 -18
  111. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/aomic/tests/test_piop2.py +50 -17
  112. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/base.py +22 -18
  113. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/datalad_base.py +71 -34
  114. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/dmcc13_benchmark.py +31 -18
  115. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/hcp1200/__init__.py +2 -3
  116. junifer-0.0.6/junifer/datagrabber/hcp1200/__init__.pyi +4 -0
  117. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +3 -3
  118. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/hcp1200/hcp1200.py +26 -15
  119. junifer-0.0.6/junifer/datagrabber/hcp1200/py.typed +0 -0
  120. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +8 -2
  121. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/multiple.py +14 -9
  122. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/pattern.py +132 -96
  123. junifer-0.0.6/junifer/datagrabber/pattern_validation_mixin.py +500 -0
  124. junifer-0.0.6/junifer/datagrabber/py.typed +0 -0
  125. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_datalad_base.py +27 -12
  126. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +28 -11
  127. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_multiple.py +48 -2
  128. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_pattern_datalad.py +1 -1
  129. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +6 -6
  130. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datareader/__init__.py +2 -2
  131. junifer-0.0.6/junifer/datareader/__init__.pyi +3 -0
  132. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datareader/default.py +6 -6
  133. junifer-0.0.6/junifer/datareader/py.typed +0 -0
  134. junifer-0.0.6/junifer/external/nilearn/__init__.py +9 -0
  135. junifer-0.0.5.dev240/junifer/external/nilearn/__init__.py → junifer-0.0.6/junifer/external/nilearn/__init__.pyi +1 -7
  136. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/nilearn/junifer_connectivity_measure.py +25 -17
  137. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +4 -4
  138. junifer-0.0.6/junifer/external/nilearn/py.typed +0 -0
  139. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +17 -16
  140. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +2 -3
  141. junifer-0.0.6/junifer/markers/__init__.py +11 -0
  142. junifer-0.0.5.dev240/junifer/markers/__init__.py → junifer-0.0.6/junifer/markers/__init__.pyi +18 -28
  143. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/base.py +11 -14
  144. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/brainprint.py +12 -14
  145. junifer-0.0.6/junifer/markers/complexity/__init__.py +21 -0
  146. junifer-0.0.6/junifer/markers/complexity/__init__.pyi +17 -0
  147. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/complexity_base.py +9 -11
  148. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/hurst_exponent.py +7 -7
  149. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/multiscale_entropy_auc.py +7 -7
  150. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/perm_entropy.py +7 -7
  151. junifer-0.0.6/junifer/markers/complexity/py.typed +0 -0
  152. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/range_entropy.py +7 -7
  153. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/range_entropy_auc.py +7 -7
  154. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/sample_entropy.py +7 -7
  155. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_complexity_base.py +1 -1
  156. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_hurst_exponent.py +5 -5
  157. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +5 -5
  158. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_perm_entropy.py +5 -5
  159. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_range_entropy.py +5 -5
  160. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_range_entropy_auc.py +5 -5
  161. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_sample_entropy.py +5 -5
  162. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +5 -5
  163. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/complexity/weighted_perm_entropy.py +7 -7
  164. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/ets_rss.py +12 -11
  165. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/__init__.py +2 -3
  166. junifer-0.0.6/junifer/markers/falff/__init__.pyi +4 -0
  167. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/_afni_falff.py +38 -45
  168. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/_junifer_falff.py +16 -19
  169. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/falff_base.py +7 -11
  170. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/falff_parcels.py +9 -9
  171. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/falff_spheres.py +8 -8
  172. junifer-0.0.6/junifer/markers/falff/py.typed +0 -0
  173. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/tests/test_falff_spheres.py +3 -1
  174. junifer-0.0.6/junifer/markers/functional_connectivity/__init__.py +9 -0
  175. junifer-0.0.5.dev240/junifer/markers/functional_connectivity/__init__.py → junifer-0.0.6/junifer/markers/functional_connectivity/__init__.pyi +6 -12
  176. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +9 -8
  177. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +8 -8
  178. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +7 -7
  179. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/functional_connectivity_base.py +13 -12
  180. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +8 -8
  181. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +7 -7
  182. junifer-0.0.6/junifer/markers/functional_connectivity/py.typed +0 -0
  183. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +1 -2
  184. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +1 -2
  185. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +6 -6
  186. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +5 -5
  187. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/parcel_aggregation.py +22 -17
  188. junifer-0.0.6/junifer/markers/py.typed +0 -0
  189. junifer-0.0.6/junifer/markers/reho/__init__.py +9 -0
  190. junifer-0.0.5.dev240/junifer/markers/reho/__init__.py → junifer-0.0.6/junifer/markers/reho/__init__.pyi +1 -7
  191. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/_afni_reho.py +29 -35
  192. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/_junifer_reho.py +13 -14
  193. junifer-0.0.6/junifer/markers/reho/py.typed +0 -0
  194. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/reho_base.py +7 -11
  195. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/reho_parcels.py +10 -10
  196. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/reho_spheres.py +9 -9
  197. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/sphere_aggregation.py +22 -17
  198. junifer-0.0.6/junifer/markers/temporal_snr/__init__.py +9 -0
  199. junifer-0.0.5.dev240/junifer/markers/temporal_snr/__init__.py → junifer-0.0.6/junifer/markers/temporal_snr/__init__.pyi +1 -7
  200. junifer-0.0.6/junifer/markers/temporal_snr/py.typed +0 -0
  201. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/temporal_snr_base.py +11 -10
  202. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/temporal_snr_parcels.py +8 -8
  203. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/temporal_snr_spheres.py +7 -7
  204. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_ets_rss.py +3 -3
  205. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_parcel_aggregation.py +24 -24
  206. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_sphere_aggregation.py +6 -6
  207. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/utils.py +3 -3
  208. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/onthefly/__init__.py +2 -1
  209. junifer-0.0.6/junifer/onthefly/_brainprint.py +138 -0
  210. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/onthefly/read_transform.py +5 -8
  211. junifer-0.0.6/junifer/pipeline/__init__.py +9 -0
  212. junifer-0.0.5.dev240/junifer/pipeline/__init__.py → junifer-0.0.6/junifer/pipeline/__init__.pyi +8 -12
  213. junifer-0.0.5.dev240/junifer/markers/collection.py → junifer-0.0.6/junifer/pipeline/marker_collection.py +8 -14
  214. junifer-0.0.6/junifer/pipeline/pipeline_component_registry.py +294 -0
  215. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/pipeline_step_mixin.py +15 -11
  216. junifer-0.0.6/junifer/pipeline/py.typed +0 -0
  217. junifer-0.0.5.dev240/junifer/markers/tests/test_collection.py → junifer-0.0.6/junifer/pipeline/tests/test_marker_collection.py +2 -3
  218. junifer-0.0.6/junifer/pipeline/tests/test_pipeline_component_registry.py +200 -0
  219. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/tests/test_pipeline_step_mixin.py +36 -37
  220. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/tests/test_update_meta_mixin.py +4 -4
  221. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/tests/test_workdir_manager.py +43 -0
  222. junifer-0.0.6/junifer/pipeline/update_meta_mixin.py +56 -0
  223. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/utils.py +6 -6
  224. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/pipeline/workdir_manager.py +19 -5
  225. junifer-0.0.6/junifer/preprocess/__init__.py +11 -0
  226. junifer-0.0.5.dev240/junifer/preprocess/__init__.py → junifer-0.0.6/junifer/preprocess/__init__.pyi +5 -13
  227. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/base.py +10 -10
  228. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/confounds/__init__.py +2 -2
  229. junifer-0.0.6/junifer/preprocess/confounds/__init__.pyi +3 -0
  230. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/confounds/fmriprep_confound_remover.py +243 -64
  231. junifer-0.0.6/junifer/preprocess/confounds/py.typed +0 -0
  232. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +121 -14
  233. junifer-0.0.6/junifer/preprocess/py.typed +0 -0
  234. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/__init__.py +2 -2
  235. junifer-0.0.6/junifer/preprocess/smoothing/__init__.pyi +3 -0
  236. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/_afni_smoothing.py +40 -40
  237. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/_fsl_smoothing.py +22 -32
  238. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/_nilearn_smoothing.py +35 -14
  239. junifer-0.0.6/junifer/preprocess/smoothing/py.typed +0 -0
  240. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/smoothing.py +11 -13
  241. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/warping/__init__.py +2 -2
  242. junifer-0.0.6/junifer/preprocess/warping/__init__.pyi +3 -0
  243. junifer-0.0.6/junifer/preprocess/warping/_ants_warper.py +274 -0
  244. junifer-0.0.6/junifer/preprocess/warping/_fsl_warper.py +163 -0
  245. junifer-0.0.6/junifer/preprocess/warping/py.typed +0 -0
  246. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/warping/space_warper.py +39 -11
  247. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/warping/tests/test_space_warper.py +5 -9
  248. junifer-0.0.6/junifer/py.typed +0 -0
  249. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/stats.py +5 -5
  250. junifer-0.0.6/junifer/storage/__init__.py +10 -0
  251. junifer-0.0.5.dev240/junifer/storage/__init__.py → junifer-0.0.6/junifer/storage/__init__.pyi +5 -12
  252. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/base.py +47 -13
  253. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/hdf5.py +95 -33
  254. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/pandas_base.py +12 -11
  255. junifer-0.0.6/junifer/storage/py.typed +0 -0
  256. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/sqlite.py +11 -11
  257. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/tests/test_hdf5.py +86 -4
  258. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/tests/test_sqlite.py +2 -2
  259. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/tests/test_storage_base.py +5 -2
  260. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/tests/test_utils.py +33 -7
  261. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/utils.py +95 -9
  262. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/__init__.py +2 -3
  263. junifer-0.0.6/junifer/testing/__init__.pyi +4 -0
  264. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/datagrabbers.py +10 -11
  265. junifer-0.0.6/junifer/testing/py.typed +0 -0
  266. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/registry.py +4 -7
  267. junifer-0.0.6/junifer/testing/tests/test_testing_registry.py +16 -0
  268. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/tests/test_stats.py +2 -2
  269. junifer-0.0.6/junifer/typing/__init__.py +9 -0
  270. junifer-0.0.6/junifer/typing/__init__.pyi +31 -0
  271. junifer-0.0.6/junifer/typing/_typing.py +68 -0
  272. junifer-0.0.6/junifer/utils/__init__.py +10 -0
  273. junifer-0.0.5.dev240/junifer/utils/__init__.py → junifer-0.0.6/junifer/utils/__init__.pyi +9 -11
  274. junifer-0.0.6/junifer/utils/_config.py +110 -0
  275. junifer-0.0.6/junifer/utils/_yaml.py +16 -0
  276. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/helpers.py +6 -6
  277. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/logging.py +117 -8
  278. junifer-0.0.6/junifer/utils/py.typed +0 -0
  279. {junifer-0.0.5.dev240/junifer/pipeline → junifer-0.0.6/junifer/utils}/singleton.py +19 -14
  280. junifer-0.0.6/junifer/utils/tests/test_config.py +59 -0
  281. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer.egg-info/PKG-INFO +20 -15
  282. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer.egg-info/SOURCES.txt +122 -74
  283. junifer-0.0.6/junifer.egg-info/entry_points.txt +2 -0
  284. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer.egg-info/requires.txt +14 -11
  285. {junifer-0.0.5.dev240 → junifer-0.0.6}/pyproject.toml +22 -18
  286. {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_aomic1000_example_dataset.py +46 -3
  287. {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_aomicpiop1_example_dataset.py +42 -0
  288. {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_aomicpiop2_example_dataset.py +42 -0
  289. {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_bids_example_dataset.py +2 -0
  290. {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_bids_example_dataset_sessions.py +2 -0
  291. {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_dmcc13_benchmark_example_dataset.py +5 -1
  292. {junifer-0.0.5.dev240 → junifer-0.0.6}/tools/create_hcp1200_example_dataset.py +9 -5
  293. {junifer-0.0.5.dev240 → junifer-0.0.6}/tox.ini +7 -6
  294. junifer-0.0.5.dev240/.github/workflows/ci.yml +0 -124
  295. junifer-0.0.5.dev240/.github/workflows/docs-preview.yml +0 -68
  296. junifer-0.0.5.dev240/.github/workflows/pypi.yml +0 -31
  297. junifer-0.0.5.dev240/docs/api/data.rst +0 -26
  298. junifer-0.0.5.dev240/docs/changes/newsfragments/115.doc +0 -1
  299. junifer-0.0.5.dev240/docs/changes/newsfragments/136.enh +0 -1
  300. junifer-0.0.5.dev240/docs/changes/newsfragments/161.feature +0 -1
  301. junifer-0.0.5.dev240/docs/changes/newsfragments/273.feature +0 -1
  302. junifer-0.0.5.dev240/docs/changes/newsfragments/318.misc +0 -1
  303. junifer-0.0.5.dev240/docs/changes/newsfragments/323.feature +0 -1
  304. junifer-0.0.5.dev240/docs/changes/newsfragments/324.bugfix +0 -1
  305. junifer-0.0.5.dev240/docs/changes/newsfragments/327.doc +0 -1
  306. junifer-0.0.5.dev240/docs/changes/newsfragments/330.doc +0 -1
  307. junifer-0.0.5.dev240/docs/changes/newsfragments/331.bugfix +0 -1
  308. junifer-0.0.5.dev240/docs/changes/newsfragments/332.bugfix +0 -1
  309. junifer-0.0.5.dev240/docs/changes/newsfragments/336.removal +0 -1
  310. junifer-0.0.5.dev240/docs/changes/newsfragments/337.misc +0 -1
  311. junifer-0.0.5.dev240/docs/changes/newsfragments/339.bugfix +0 -1
  312. junifer-0.0.5.dev240/docs/changes/newsfragments/340.bugfix +0 -1
  313. junifer-0.0.5.dev240/docs/changes/newsfragments/341.enh +0 -1
  314. junifer-0.0.5.dev240/docs/changes/newsfragments/342.misc +0 -1
  315. junifer-0.0.5.dev240/docs/changes/newsfragments/343.feature +0 -1
  316. junifer-0.0.5.dev240/docs/changes/newsfragments/344.feature +0 -1
  317. junifer-0.0.5.dev240/docs/changes/newsfragments/345.feature +0 -1
  318. junifer-0.0.5.dev240/docs/changes/newsfragments/346.enh +0 -1
  319. junifer-0.0.5.dev240/docs/changes/newsfragments/346.feature +0 -1
  320. junifer-0.0.5.dev240/docs/changes/newsfragments/347.misc +0 -1
  321. junifer-0.0.5.dev240/docs/changes/newsfragments/348.change +0 -1
  322. junifer-0.0.5.dev240/docs/changes/newsfragments/348.enh +0 -1
  323. junifer-0.0.5.dev240/docs/changes/newsfragments/348.feature +0 -1
  324. junifer-0.0.5.dev240/docs/changes/newsfragments/349.change +0 -1
  325. junifer-0.0.5.dev240/docs/changes/newsfragments/349.enh +0 -1
  326. junifer-0.0.5.dev240/docs/changes/newsfragments/350.enh +0 -1
  327. junifer-0.0.5.dev240/docs/changes/newsfragments/351.change +0 -1
  328. junifer-0.0.5.dev240/docs/changes/newsfragments/351.enh +0 -1
  329. junifer-0.0.5.dev240/docs/changes/newsfragments/351.feature +0 -1
  330. junifer-0.0.5.dev240/docs/changes/newsfragments/351.misc +0 -1
  331. junifer-0.0.5.dev240/docs/sphinxext/gh_substitutions.py +0 -31
  332. junifer-0.0.5.dev240/docs/using/running.rst +0 -115
  333. junifer-0.0.5.dev240/junifer/api/__init__.py +0 -12
  334. junifer-0.0.5.dev240/junifer/api/parser.py +0 -118
  335. junifer-0.0.5.dev240/junifer/data/__init__.py +0 -50
  336. junifer-0.0.5.dev240/junifer/data/coordinates.py +0 -408
  337. junifer-0.0.5.dev240/junifer/data/masks.py +0 -670
  338. junifer-0.0.5.dev240/junifer/data/parcellations.py +0 -1828
  339. junifer-0.0.5.dev240/junifer/data/utils.py +0 -47
  340. junifer-0.0.5.dev240/junifer/datagrabber/pattern_validation_mixin.py +0 -388
  341. junifer-0.0.5.dev240/junifer/markers/complexity/__init__.py +0 -37
  342. junifer-0.0.5.dev240/junifer/pipeline/registry.py +0 -177
  343. junifer-0.0.5.dev240/junifer/pipeline/tests/test_registry.py +0 -150
  344. junifer-0.0.5.dev240/junifer/pipeline/update_meta_mixin.py +0 -52
  345. junifer-0.0.5.dev240/junifer/preprocess/warping/_ants_warper.py +0 -170
  346. junifer-0.0.5.dev240/junifer/preprocess/warping/_fsl_warper.py +0 -112
  347. junifer-0.0.5.dev240/junifer/testing/tests/test_testing_registry.py +0 -24
  348. junifer-0.0.5.dev240/junifer.egg-info/entry_points.txt +0 -2
  349. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  350. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  351. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  352. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  353. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  354. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  355. {junifer-0.0.5.dev240 → junifer-0.0.6}/.github/pull_request_template.md +0 -0
  356. {junifer-0.0.5.dev240 → junifer-0.0.6}/.gitignore +0 -0
  357. {junifer-0.0.5.dev240 → junifer-0.0.6}/.gitmodules +0 -0
  358. {junifer-0.0.5.dev240 → junifer-0.0.6}/AUTHORS.rst +0 -0
  359. {junifer-0.0.5.dev240 → junifer-0.0.6}/LICENSE.md +0 -0
  360. {junifer-0.0.5.dev240 → junifer-0.0.6}/codecov.yml +0 -0
  361. {junifer-0.0.5.dev240 → junifer-0.0.6}/conda-env.yml +0 -0
  362. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/_static/css/custom.css +0 -0
  363. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/_static/js/custom.js +0 -0
  364. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/_templates/versions.html +0 -0
  365. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/configs.rst +0 -0
  366. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/datagrabbers.rst +0 -0
  367. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/datareaders.rst +0 -0
  368. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/markers.rst +0 -0
  369. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/nilearn.rst +0 -0
  370. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/preprocessing.rst +0 -0
  371. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/stats.rst +0 -0
  372. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/storage.rst +0 -0
  373. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/testing.rst +0 -0
  374. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/api/utils.rst +0 -0
  375. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/changes/contributors.inc +0 -0
  376. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/changes/newsfragments/.gitignore +0 -0
  377. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/contribution.rst +0 -0
  378. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/datagrabber.rst +0 -0
  379. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/extending/preprocessor.rst +0 -0
  380. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/faq.rst +0 -0
  381. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/help.rst +0 -0
  382. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/images/junifer_logo.png +0 -0
  383. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/index.rst +0 -0
  384. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/installation.rst +0 -0
  385. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/maintaining.rst +0 -0
  386. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/redirect.html +0 -0
  387. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/starting.rst +0 -0
  388. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/data.rst +0 -0
  389. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/datagrabber.rst +0 -0
  390. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/datareader.rst +0 -0
  391. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/index.rst +0 -0
  392. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/marker.rst +0 -0
  393. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/pipeline.rst +0 -0
  394. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/understanding/storage.rst +0 -0
  395. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/using/codeless.rst +0 -0
  396. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/using/index.rst +0 -0
  397. {junifer-0.0.5.dev240 → junifer-0.0.6}/docs/using/queueing.rst +0 -0
  398. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/README.rst +0 -0
  399. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/norun_hcpfc_pearson.py +0 -0
  400. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/norun_ukbvm_gmd.py +0 -0
  401. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/run_compute_parcel_mean.py +0 -0
  402. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/run_datagrabber_bids_datalad.py +0 -0
  403. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/run_ets_rss_marker.py +0 -0
  404. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/run_junifer_julearn.py +0 -0
  405. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/run_run_gmd_mean.py +0 -0
  406. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/yamls/gmd_mean.yaml +0 -0
  407. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  408. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  409. {junifer-0.0.5.dev240 → junifer-0.0.6}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  410. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  411. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  412. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/afni/3dRSFC +0 -0
  413. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/afni/3dReHo +0 -0
  414. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/afni/afni +0 -0
  415. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  416. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/ants/ResampleImage +0 -0
  417. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/ants/antsApplyTransforms +0 -0
  418. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  419. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  420. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/freesurfer/mri_binarize +0 -0
  421. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/freesurfer/mri_mc +0 -0
  422. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/freesurfer/mri_pretess +0 -0
  423. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/freesurfer/mris_convert +0 -0
  424. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  425. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/fsl/applywarp +0 -0
  426. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/fsl/flirt +0 -0
  427. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/fsl/img2imgcoord +0 -0
  428. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  429. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/fsl/std2imgcoord +0 -0
  430. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/run_conda.bash +0 -0
  431. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/run_conda.zsh +0 -0
  432. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/run_venv.bash +0 -0
  433. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/api/res/run_venv.zsh +0 -0
  434. {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/tests/data/gmd_mean.yaml +0 -0
  435. {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/tests/data/gmd_mean_htcondor.yaml +0 -0
  436. {junifer-0.0.5.dev240/junifer/api → junifer-0.0.6/junifer/cli}/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  437. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/__init__.py +0 -0
  438. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  439. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  440. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  441. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  442. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  443. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  444. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  445. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/AutobiographicalMemory_VOIs.txt +0 -0
  446. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/CogAC_VOIs.txt +0 -0
  447. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/CogAR_VOIs.txt +0 -0
  448. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/DMNBuckner_VOIs.txt +0 -0
  449. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Dosenbach2010_MNI_VOIs.txt +0 -0
  450. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Empathy_VOIs.txt +0 -0
  451. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Motor_VOIs.txt +0 -0
  452. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/MultiTask_VOIs.txt +0 -0
  453. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/PhysioStress_VOIs.txt +0 -0
  454. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Power2011_MNI_VOIs.txt +0 -0
  455. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Power2013_MNI_VOIs.tsv +0 -0
  456. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Rew_VOIs.txt +0 -0
  457. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/Somatosensory_VOIs.txt +0 -0
  458. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/ToM_VOIs.txt +0 -0
  459. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/VigAtt_VOIs.txt +0 -0
  460. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/WM_VOIs.txt +0 -0
  461. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/eMDN_VOIs.txt +0 -0
  462. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/eSAD_VOIs.txt +0 -0
  463. {junifer-0.0.5.dev240/junifer/data → junifer-0.0.6/junifer/data/coordinates}/VOIs/meta/extDMN_VOIs.txt +0 -0
  464. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz +0 -0
  465. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz +0 -0
  466. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.nii.gz +0 -0
  467. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz +0 -0
  468. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/pattern_datalad.py +0 -0
  469. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_base.py +0 -0
  470. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datagrabber/tests/test_pattern.py +0 -0
  471. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/datareader/tests/test_default_reader.py +0 -0
  472. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  473. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  474. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  475. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  476. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  477. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  478. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  479. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  480. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/__init__.py +0 -0
  481. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/h5io/h5io/__init__.py +0 -0
  482. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/h5io/h5io/_h5io.py +0 -0
  483. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/h5io/h5io/_version.py +0 -0
  484. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  485. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  486. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/falff/tests/test_falff_parcels.py +0 -0
  487. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +0 -0
  488. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  489. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/tests/test_reho_parcels.py +0 -0
  490. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/reho/tests/test_reho_spheres.py +0 -0
  491. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  492. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +0 -0
  493. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +0 -0
  494. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_brainprint.py +0 -0
  495. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_marker_utils.py +0 -0
  496. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/markers/tests/test_markers_base.py +0 -0
  497. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/onthefly/tests/test_read_transform.py +0 -0
  498. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/smoothing/tests/test_smoothing.py +0 -0
  499. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  500. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/storage/tests/test_pandas_base.py +0 -0
  501. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  502. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  503. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  504. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  505. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/testing/utils.py +0 -0
  506. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/tests/test_main.py +0 -0
  507. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/fs.py +0 -0
  508. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/tests/test_fs.py +0 -0
  509. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/tests/test_helpers.py +0 -0
  510. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer/utils/tests/test_logging.py +0 -0
  511. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer.egg-info/dependency_links.txt +0 -0
  512. {junifer-0.0.5.dev240 → junifer-0.0.6}/junifer.egg-info/top_level.txt +0 -0
  513. {junifer-0.0.5.dev240 → junifer-0.0.6}/setup.cfg +0 -0
  514. {junifer-0.0.5.dev240 → junifer-0.0.6}/setup.py +0 -0
@@ -0,0 +1,19 @@
1
+ # .git/
2
+
3
+ build
4
+ dist
5
+ tools
6
+ *.egg-info
7
+ *.egg/
8
+ *.pyc
9
+ *.swp
10
+
11
+ .tox
12
+ .pytest_cache
13
+ .ruff_cache
14
+ .coverage
15
+ html/*
16
+ __pycache__
17
+
18
+ # Compiled Documentation
19
+ docs/_build
@@ -1,10 +1,14 @@
1
1
  # Set update schedule for GitHub Actions
2
-
3
2
  version: 2
4
3
  updates:
5
-
6
4
  - package-ecosystem: "github-actions"
7
5
  directory: "/"
8
6
  schedule:
9
7
  # Check for updates to GitHub Actions every week
10
8
  interval: "weekly"
9
+ # Group updates to avoid extra PRs
10
+ groups:
11
+ # Group name
12
+ actions:
13
+ patterns:
14
+ - "*"
@@ -4,18 +4,24 @@ on:
4
4
  push:
5
5
  paths-ignore:
6
6
  - 'junifer/**'
7
+ - 'docs/changes/newsfragments/**'
7
8
  - '.github/workflows/**'
9
+ - 'tox.ini'
10
+ - 'pyproject.toml'
8
11
  pull_request:
9
12
  paths-ignore:
10
13
  - 'junifer/**'
14
+ - 'docs/changes/newsfragments/**'
11
15
  - '.github/workflows/**'
16
+ - 'tox.ini'
17
+ - 'pyproject.toml'
12
18
  jobs:
13
19
  run-tests:
14
- runs-on: ubuntu-latest
20
+ runs-on: ubuntu-22.04
15
21
  strategy:
16
22
  fail-fast: false
17
23
  matrix:
18
- python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
24
+ python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
19
25
  steps:
20
26
  - run: 'echo "No build required"'
21
27
  - name: Create mock coverage.xml file
@@ -40,12 +46,12 @@ jobs:
40
46
  echo '</package>' >> coverage.xml
41
47
  echo '</packages>' >> coverage.xml
42
48
  echo '</coverage>' >> coverage.xml
43
- if: matrix.python-version == 3.11
49
+ if: matrix.python-version == 3.12
44
50
  - name: Upload mock coverage to Codecov
45
- uses: codecov/codecov-action@v4
51
+ uses: codecov/codecov-action@v5
46
52
  with:
47
53
  token: ${{ secrets.CODECOV_TOKEN }}
48
54
  # Allow coverage upload failure
49
55
  fail_ci_if_error: false
50
56
  flags: docs
51
- if: success() && matrix.python-version == 3.11
57
+ if: success() && matrix.python-version == 3.12
@@ -0,0 +1,78 @@
1
+ name: Run Tests
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - 'junifer/**'
7
+ - '.github/workflows/**'
8
+ - 'tox.ini'
9
+ - 'pyproject.toml'
10
+ pull_request:
11
+ paths:
12
+ - 'junifer/**'
13
+ - '.github/workflows/**'
14
+ - 'tox.ini'
15
+ - 'pyproject.toml'
16
+
17
+ jobs:
18
+ run-tests:
19
+ # https://github.com/actions/setup-python/issues/1013#issuecomment-2642078401
20
+ runs-on: ubuntu-22.04
21
+ # Use custom CI image
22
+ container: ghcr.io/juaml/junifer-ci:main
23
+ strategy:
24
+ fail-fast: false
25
+ matrix:
26
+ python-version: ['3.9', '3.10', '3.11', '3.12']
27
+
28
+ steps:
29
+ - name: Check ANTs
30
+ run: |
31
+ echo "Using ANTs : $(antsRegistration --version)"
32
+ - name: Check AFNI
33
+ run: |
34
+ echo "Using AFNI : $(afni --version)"
35
+ - name: Check FSL
36
+ run: |
37
+ echo "Using FSL : $(flirt -version)"
38
+ - name: Install system dependencies
39
+ # actions/checkout fails to identify Git as it's not in the CI image
40
+ run: |
41
+ apt-get -qq update
42
+ apt-get -qq install -y \
43
+ git \
44
+ git-annex \
45
+ make \
46
+ jq
47
+ - name: Copy junifer-data directory
48
+ run: |
49
+ mkdir -p $HOME/junifer_data/v2
50
+ cp -ar /root/junifer_data/v2/. $HOME/junifer_data/v2/
51
+ - name: Checkout repository
52
+ uses: actions/checkout@v4
53
+ with:
54
+ submodules: true
55
+ - name: Set up Python ${{ matrix.python-version }}
56
+ uses: actions/setup-python@v5
57
+ with:
58
+ python-version: ${{ matrix.python-version }}
59
+ - name: Install Python dependencies
60
+ run: |
61
+ python -m pip install --upgrade pip setuptools wheel
62
+ python -m pip install tox tox-gh-actions
63
+ - name: Configure Git for DataLad
64
+ run: |
65
+ git config --global user.email "junifer-runner@github.com"
66
+ git config --global user.name "GitHub Runner"
67
+ - name: Test with tox
68
+ # https://github.com/actions/checkout/issues/1169#issuecomment-2291682583
69
+ run: |
70
+ git config --system --add safe.directory $(pwd)
71
+ tox
72
+ - name: Upload coverage to Codecov
73
+ uses: codecov/codecov-action@v5
74
+ with:
75
+ token: ${{ secrets.CODECOV_TOKEN }}
76
+ fail_ci_if_error: true
77
+ flags: junifer
78
+ if: success() && matrix.python-version == 3.12
@@ -0,0 +1,103 @@
1
+ name: Docker for CI
2
+
3
+ # This workflow uses actions that are not certified by GitHub.
4
+ # They are provided by a third-party and are governed by
5
+ # separate terms of service, privacy policy, and support
6
+ # documentation.
7
+
8
+ on:
9
+ push:
10
+ # Only run when the file is edited on main
11
+ branches: [ "main" ]
12
+ paths: [ "Dockerfile-ci" ]
13
+ pull_request:
14
+ # Only run when the file is edited on main
15
+ branches: [ "main" ]
16
+ paths: [ "Dockerfile-ci" ]
17
+ workflow_dispatch: {}
18
+
19
+ env:
20
+ # Use docker.io for Docker Hub if empty
21
+ REGISTRY: ghcr.io
22
+ # github.repository as <account>/<repo>
23
+ IMAGE_NAME: ${{ github.repository }}-ci
24
+
25
+
26
+ jobs:
27
+ build:
28
+
29
+ runs-on: ubuntu-24.04
30
+ permissions:
31
+ contents: read
32
+ packages: write
33
+ # This is used to complete the identity challenge
34
+ # with sigstore/fulcio when running outside of PRs.
35
+ id-token: write
36
+
37
+ steps:
38
+ # Taken from https://github.com/orgs/community/discussions/25678#discussioncomment-5242449
39
+ - name: Delete huge unnecessary tools folder
40
+ run: rm -rf /opt/hostedtoolcache
41
+ - name: Checkout repository
42
+ uses: actions/checkout@v4
43
+
44
+ # Install the cosign tool except on PR
45
+ # https://github.com/sigstore/cosign-installer
46
+ - name: Install cosign
47
+ if: github.event_name != 'pull_request'
48
+ uses: sigstore/cosign-installer@d7d6bc7722e3daa8354c50bcb52f4837da5e9b6a #v3.8.1
49
+ with:
50
+ cosign-release: 'v2.2.4'
51
+
52
+ # Set up BuildKit Docker container builder to be able to build
53
+ # multi-platform images and export cache
54
+ # https://github.com/docker/setup-buildx-action
55
+ - name: Set up Docker Buildx
56
+ uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
57
+
58
+ # Login against a Docker registry except on PR
59
+ # https://github.com/docker/login-action
60
+ - name: Log into registry ${{ env.REGISTRY }}
61
+ if: github.event_name != 'pull_request'
62
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
63
+ with:
64
+ registry: ${{ env.REGISTRY }}
65
+ username: ${{ github.actor }}
66
+ password: ${{ secrets.GITHUB_TOKEN }}
67
+
68
+ # Extract metadata (tags, labels) for Docker
69
+ # https://github.com/docker/metadata-action
70
+ - name: Extract Docker metadata
71
+ id: meta
72
+ uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
73
+ with:
74
+ images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
75
+
76
+ # Build and push Docker image with Buildx (don't push on PR)
77
+ # https://github.com/docker/build-push-action
78
+ - name: Build and push Docker image
79
+ id: build-and-push
80
+ uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
81
+ with:
82
+ context: .
83
+ file: Dockerfile-ci
84
+ push: ${{ github.event_name != 'pull_request' }}
85
+ tags: ${{ steps.meta.outputs.tags }}
86
+ labels: ${{ steps.meta.outputs.labels }}
87
+ cache-from: type=gha
88
+ cache-to: type=gha,mode=max
89
+
90
+ # Sign the resulting Docker image digest except on PRs.
91
+ # This will only write to the public Rekor transparency log when the Docker
92
+ # repository is public to avoid leaking data. If you would like to publish
93
+ # transparency data even for private images, pass --force to cosign below.
94
+ # https://github.com/sigstore/cosign
95
+ - name: Sign the published Docker image
96
+ if: ${{ github.event_name != 'pull_request' }}
97
+ env:
98
+ # https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable
99
+ TAGS: ${{ steps.meta.outputs.tags }}
100
+ DIGEST: ${{ steps.build-and-push.outputs.digest }}
101
+ # This step uses the identity token to provision an ephemeral certificate
102
+ # against the sigstore community Fulcio instance.
103
+ run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST}
@@ -0,0 +1,100 @@
1
+ name: Docker for docs
2
+
3
+ # This workflow uses actions that are not certified by GitHub.
4
+ # They are provided by a third-party and are governed by
5
+ # separate terms of service, privacy policy, and support
6
+ # documentation.
7
+
8
+ on:
9
+ push:
10
+ # Only run when the file is edited on main
11
+ branches: [ "main" ]
12
+ paths: [ "Dockerfile-docs" ]
13
+ pull_request:
14
+ # Only run when the file is edited on main
15
+ branches: [ "main" ]
16
+ paths: [ "Dockerfile-docs" ]
17
+ workflow_dispatch: {}
18
+
19
+ env:
20
+ # Use docker.io for Docker Hub if empty
21
+ REGISTRY: ghcr.io
22
+ # github.repository as <account>/<repo>
23
+ IMAGE_NAME: ${{ github.repository }}-docs
24
+
25
+
26
+ jobs:
27
+ build:
28
+
29
+ runs-on: ubuntu-24.04
30
+ permissions:
31
+ contents: read
32
+ packages: write
33
+ # This is used to complete the identity challenge
34
+ # with sigstore/fulcio when running outside of PRs.
35
+ id-token: write
36
+
37
+ steps:
38
+ - name: Checkout repository
39
+ uses: actions/checkout@v4
40
+
41
+ # Install the cosign tool except on PR
42
+ # https://github.com/sigstore/cosign-installer
43
+ - name: Install cosign
44
+ if: github.event_name != 'pull_request'
45
+ uses: sigstore/cosign-installer@d7d6bc7722e3daa8354c50bcb52f4837da5e9b6a #v3.8.1
46
+ with:
47
+ cosign-release: 'v2.2.4'
48
+
49
+ # Set up BuildKit Docker container builder to be able to build
50
+ # multi-platform images and export cache
51
+ # https://github.com/docker/setup-buildx-action
52
+ - name: Set up Docker Buildx
53
+ uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
54
+
55
+ # Login against a Docker registry except on PR
56
+ # https://github.com/docker/login-action
57
+ - name: Log into registry ${{ env.REGISTRY }}
58
+ if: github.event_name != 'pull_request'
59
+ uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
60
+ with:
61
+ registry: ${{ env.REGISTRY }}
62
+ username: ${{ github.actor }}
63
+ password: ${{ secrets.GITHUB_TOKEN }}
64
+
65
+ # Extract metadata (tags, labels) for Docker
66
+ # https://github.com/docker/metadata-action
67
+ - name: Extract Docker metadata
68
+ id: meta
69
+ uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
70
+ with:
71
+ images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
72
+
73
+ # Build and push Docker image with Buildx (don't push on PR)
74
+ # https://github.com/docker/build-push-action
75
+ - name: Build and push Docker image
76
+ id: build-and-push
77
+ uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
78
+ with:
79
+ context: .
80
+ file: Dockerfile-docs
81
+ push: ${{ github.event_name != 'pull_request' }}
82
+ tags: ${{ steps.meta.outputs.tags }}
83
+ labels: ${{ steps.meta.outputs.labels }}
84
+ cache-from: type=gha
85
+ cache-to: type=gha,mode=max
86
+
87
+ # Sign the resulting Docker image digest except on PRs.
88
+ # This will only write to the public Rekor transparency log when the Docker
89
+ # repository is public to avoid leaking data. If you would like to publish
90
+ # transparency data even for private images, pass --force to cosign below.
91
+ # https://github.com/sigstore/cosign
92
+ - name: Sign the published Docker image
93
+ if: ${{ github.event_name != 'pull_request' }}
94
+ env:
95
+ # https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable
96
+ TAGS: ${{ steps.meta.outputs.tags }}
97
+ DIGEST: ${{ steps.build-and-push.outputs.digest }}
98
+ # This step uses the identity token to provision an ephemeral certificate
99
+ # against the sigstore community Fulcio instance.
100
+ run: echo "${TAGS}" | xargs -I {} cosign sign --yes {}@${DIGEST}
@@ -0,0 +1,68 @@
1
+ name: Build and preview docs
2
+
3
+ on:
4
+ push:
5
+ branches-ignore:
6
+ - 'main'
7
+ tags-ignore:
8
+ - v*
9
+ pull_request:
10
+ types:
11
+ - opened
12
+ - reopened
13
+ - synchronize
14
+ - closed
15
+
16
+ concurrency: preview-${{ github.ref }}
17
+
18
+ jobs:
19
+ build-docs:
20
+ # https://github.com/actions/setup-python/issues/1013#issuecomment-2642078401
21
+ runs-on: ubuntu-22.04
22
+ permissions:
23
+ # Needed for preview deploy
24
+ pull-requests: write
25
+ # Use custom docs CI image
26
+ container: ghcr.io/juaml/junifer-docs:main
27
+ steps:
28
+ - name: Check ANTs
29
+ run: |
30
+ echo "Using ANTs : $(antsRegistration --version)"
31
+ - name: Install system dependencies
32
+ # actions/checkout fails to identify Git as it's not in the CI image
33
+ run: |
34
+ apt-get -qq update
35
+ apt-get -qq install -y \
36
+ git \
37
+ git-annex \
38
+ make \
39
+ jq
40
+ - name: Copy junifer-data directory
41
+ run: |
42
+ mkdir -p $HOME/junifer_data/v2
43
+ cp -ar /root/junifer_data/v2/. $HOME/junifer_data/v2/
44
+ - name: Checkout repository
45
+ uses: actions/checkout@v4
46
+ with:
47
+ fetch-depth: 0
48
+ submodules: true
49
+ - name: Set up Python
50
+ uses: actions/setup-python@v5
51
+ with:
52
+ python-version: "3.12"
53
+ - name: Install Python dependencies
54
+ run: |
55
+ python -m pip install --upgrade pip setuptools wheel
56
+ python -m pip install -e ".[docs,neurokit2]"
57
+ - name: Configure Git for DataLad
58
+ run: |
59
+ git config --global user.email "junifer-runner@github.com"
60
+ git config --global user.name "GitHub Runner"
61
+ - name: Test build docs
62
+ run: |
63
+ BUILDDIR=_build/main make -C docs/ local
64
+ - name: Deploy preview
65
+ if: github.event_name == 'pull_request'
66
+ uses: rossjrw/pr-preview-action@v1
67
+ with:
68
+ source-dir: docs/_build/main
@@ -8,52 +8,50 @@ on:
8
8
  # Sequence of patterns matched against refs/tags
9
9
  tags:
10
10
  - v*
11
+ workflow_dispatch: {}
11
12
 
12
13
  jobs:
13
14
  build-docs:
14
- runs-on: ubuntu-latest
15
+ # https://github.com/actions/setup-python/issues/1013#issuecomment-2642078401
16
+ runs-on: ubuntu-22.04
17
+ # Use custom docs CI image
18
+ container: ghcr.io/juaml/junifer-docs:main
15
19
  steps:
16
- - name: Checkout source
20
+ - name: Check ANTs
21
+ run: |
22
+ echo "Using ANTs : $(antsRegistration --version)"
23
+ - name: Install system dependencies
24
+ # actions/checkout fails to identify Git as it's not in the CI image
25
+ run: |
26
+ apt-get -qq update
27
+ apt-get -qq install -y \
28
+ git \
29
+ git-annex \
30
+ make \
31
+ jq
32
+ - name: Copy junifer-data directory
33
+ run: |
34
+ mkdir -p $HOME/junifer_data/v2
35
+ cp -ar /root/junifer_data/v2/. $HOME/junifer_data/v2/
36
+ - name: Checkout repository
17
37
  uses: actions/checkout@v4
18
38
  with:
19
39
  # require all of history to see all tagged versions' docs
20
40
  fetch-depth: 0
21
41
  submodules: true
22
- - name: Set up Python 3.11
42
+ - name: Set up Python
23
43
  uses: actions/setup-python@v5
24
44
  with:
25
- python-version: '3.11'
26
- - name: Check for sudo
27
- shell: bash
28
- run: |
29
- if type sudo >/dev/null 2>&1; then SUDO="sudo"; else SUDO=""; fi
30
- echo "SUDO=$SUDO" >> $GITHUB_ENV
31
- - name: Install dependencies
45
+ python-version: "3.12"
46
+ - name: Install Python dependencies
32
47
  run: |
33
- $SUDO bash -c "$(curl -fsSL http://neuro.debian.net/_files/neurodebian-travis.sh)"
34
- $SUDO apt-get update -qq
35
- $SUDO apt-get install git-annex-standalone
36
48
  python -m pip install --upgrade pip setuptools wheel
37
49
  python -m pip install -e ".[docs,neurokit2]"
38
50
  python -m pip install git+https://github.com/dls-controls/sphinx-multiversion@only-arg
39
- - name: Configure git for datalad
51
+ - name: Configure Git for DataLad
40
52
  run: |
41
- git config --global user.email "runner@github.com"
42
- git config --global user.name "GITHUB CI Runner"
43
- - name: Install ANTs
44
- run: |
45
- echo "++ Add universe repo"
46
- sudo add-apt-repository -y universe
47
-
48
- echo "++ Update package manager info"
49
- sudo apt-get update -qq
50
-
51
- echo "++ Downloading ANTs"
52
- curl -fsSL -o ants.zip https://github.com/ANTsX/ANTs/releases/download/v2.5.1/ants-2.5.1-ubuntu-22.04-X64-gcc.zip
53
- unzip ants.zip -d /opt
54
- mv /opt/ants-2.5.1/bin/* /opt/ants-2.5.1
55
- rm ants.zip
56
- echo "/opt/ants-2.5.1" >> $GITHUB_PATH
53
+ git config --global user.email "junifer-runner@github.com"
54
+ git config --global user.name "GitHub Runner"
57
55
  - name: Checkout gh-pages
58
56
  # As we already did a deploy of gh-pages above, it is guaranteed to be there
59
57
  # so check it out so we can selectively build docs below
@@ -63,7 +61,9 @@ jobs:
63
61
  path: docs/_build
64
62
  - name: Build docs
65
63
  # Use the args we normally pass to sphinx-build, but run sphinx-multiversion
64
+ # https://github.com/actions/checkout/issues/1169#issuecomment-2291682583
66
65
  run: |
66
+ git config --system --add safe.directory $(pwd)
67
67
  make -C docs/ html
68
68
  touch docs/_build/.nojekyll
69
69
  cp docs/redirect.html docs/_build/index.html
@@ -12,7 +12,7 @@ jobs:
12
12
  - name: Install Python
13
13
  uses: actions/setup-python@v5
14
14
  with:
15
- python-version: "3.11"
15
+ python-version: "3.x"
16
16
  - name: Install dependencies
17
17
  run: |
18
18
  python -m pip install --upgrade pip
@@ -0,0 +1,46 @@
1
+ name: Build and publish
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ tags:
8
+ - 'v*'
9
+
10
+ jobs:
11
+ build-and-publish:
12
+ name: Build and publish
13
+ runs-on: ubuntu-latest
14
+ permissions:
15
+ # Needed for PyPI publishing
16
+ id-token: write
17
+ # Needed for GitHub releases
18
+ contents: write
19
+ steps:
20
+ - name: Checkout source
21
+ uses: actions/checkout@v4
22
+ with:
23
+ fetch-depth: 0
24
+ submodules: true
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v5
27
+ with:
28
+ python-version: "3.x"
29
+ - name: Install build
30
+ run: |
31
+ python -m pip install --upgrade pip
32
+ python -m pip install build
33
+ - name: Build package
34
+ run:
35
+ python -m build
36
+ - name: Publish package to PyPI
37
+ uses: pypa/gh-action-pypi-publish@release/v1
38
+ - name: Make release on GitHub
39
+ uses: softprops/action-gh-release@v2
40
+ if: startsWith(github.ref, 'refs/tags/')
41
+ with:
42
+ files: |
43
+ dist/*.tar.gz
44
+ dist/*.whl
45
+ generate_release_notes: true
46
+ make_latest: true
@@ -4,7 +4,7 @@ ci:
4
4
 
5
5
  repos:
6
6
  - repo: https://github.com/pre-commit/pre-commit-hooks
7
- rev: v4.6.0
7
+ rev: v5.0.0
8
8
  hooks:
9
9
  - id: check-ast
10
10
  - id: check-docstring-first
@@ -17,24 +17,24 @@ repos:
17
17
  - id: trailing-whitespace
18
18
  args: [--markdown-linebreak-ext=md]
19
19
  - repo: https://github.com/abravalheri/validate-pyproject
20
- rev: v0.16
20
+ rev: v0.23
21
21
  hooks:
22
22
  - id: validate-pyproject
23
23
  - repo: https://github.com/psf/black-pre-commit-mirror
24
- rev: 24.4.2
24
+ rev: 24.10.0
25
25
  hooks:
26
26
  - id: black
27
27
  exclude: ^(docs/|examples/|tools/)
28
28
  args: [--check]
29
29
  - repo: https://github.com/astral-sh/ruff-pre-commit
30
- rev: v0.4.2
30
+ rev: v0.9.3
31
31
  hooks:
32
32
  - id: ruff
33
33
  types_or: [python, jupyter]
34
34
  exclude: ^(__init__.py)
35
35
  args: [--output-format, grouped, --show-fixes]
36
36
  - repo: https://github.com/codespell-project/codespell
37
- rev: v2.2.6
37
+ rev: v2.4.0
38
38
  hooks:
39
39
  - id: codespell
40
40
  exclude: ^(.github/|docs/)
@@ -48,7 +48,7 @@ repos:
48
48
  - id: rst-directive-colons
49
49
  - id: rst-inline-touching-normal
50
50
  - repo: https://github.com/adamchainz/blacken-docs
51
- rev: "1.16.0"
51
+ rev: "1.19.1"
52
52
  hooks:
53
53
  - id: blacken-docs
54
54
  additional_dependencies: