junifer 0.0.8.dev22__tar.gz → 0.0.8.dev184__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 (518) hide show
  1. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/workflows/ci.yml +1 -1
  2. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/workflows/docker-ci-publish.yml +6 -6
  3. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/workflows/docker-docs-publish.yml +6 -6
  4. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/workflows/docker-publish.yml +6 -6
  5. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/workflows/docs-preview.yml +1 -1
  6. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/workflows/docs.yml +2 -2
  7. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/workflows/lint.yml +1 -1
  8. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/workflows/publish.yml +1 -1
  9. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/PKG-INFO +6 -1
  10. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/onthefly.rst +1 -1
  11. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/builtin.rst +3 -3
  12. junifer-0.0.8.dev184/docs/changes/newsfragments/239.enh +1 -0
  13. junifer-0.0.8.dev184/docs/changes/newsfragments/364.doc +1 -0
  14. junifer-0.0.8.dev184/docs/changes/newsfragments/364.enh +1 -0
  15. junifer-0.0.8.dev184/docs/changes/newsfragments/364.feature +1 -0
  16. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/conf.py +12 -0
  17. junifer-0.0.8.dev184/docs/extending/confounds_format.rst +22 -0
  18. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/datagrabber.rst +51 -66
  19. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/dependencies.rst +9 -11
  20. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/index.rst +2 -0
  21. junifer-0.0.8.dev184/docs/extending/logging.rst +38 -0
  22. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/marker.rst +40 -48
  23. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/parcellations.rst +1 -1
  24. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/preprocessor.rst +19 -25
  25. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/whats_new.rst +1 -1
  26. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/run_compute_parcel_mean.py +9 -2
  27. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/run_datagrabber_bids_datalad.py +2 -2
  28. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/run_junifer_julearn.py +1 -1
  29. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/_version.py +3 -3
  30. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/functions.py +8 -1
  31. junifer-0.0.8.dev184/junifer/api/queue_context/__init__.pyi +13 -0
  32. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/queue_context/gnu_parallel_local_adapter.py +73 -113
  33. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/queue_context/htcondor_adapter.py +106 -172
  34. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/queue_context/queue_context_adapter.py +51 -3
  35. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +3 -27
  36. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/queue_context/tests/test_htcondor_adapter.py +4 -40
  37. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/tests/test_functions.py +1 -1
  38. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/parser.py +5 -1
  39. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +1 -0
  40. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/tests/test_cli_utils.py +3 -0
  41. junifer-0.0.8.dev184/junifer/configs/__init__.py +9 -0
  42. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/__init__.pyi +4 -2
  43. junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +42 -0
  44. junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers/camcan_vbm.py +45 -0
  45. junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers/ixi_vbm.py +68 -0
  46. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -7
  47. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -16
  48. junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers/ucla.py +156 -0
  49. junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers/ukb_vbm.py +45 -0
  50. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/conftest.py +4 -3
  51. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/_dispatch.py +1 -1
  52. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/coordinates/_ants_coordinates_warper.py +4 -1
  53. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/coordinates/_coordinates.py +5 -1
  54. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/coordinates/_fsl_coordinates_warper.py +4 -1
  55. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/maps/_ants_maps_warper.py +4 -1
  56. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/maps/_fsl_maps_warper.py +4 -1
  57. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/maps/_maps.py +5 -1
  58. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/masks/_ants_mask_warper.py +4 -1
  59. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/masks/_fsl_mask_warper.py +4 -1
  60. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/masks/_masks.py +5 -1
  61. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/masks/tests/test_masks.py +6 -6
  62. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/parcellations/_ants_parcellation_warper.py +4 -1
  63. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/parcellations/_fsl_parcellation_warper.py +4 -1
  64. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/parcellations/_parcellations.py +11 -3
  65. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/template_spaces.py +5 -1
  66. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/utils.py +4 -1
  67. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/__init__.pyi +38 -5
  68. junifer-0.0.8.dev184/junifer/datagrabber/aomic/__init__.pyi +12 -0
  69. junifer-0.0.8.dev184/junifer/datagrabber/aomic/_types.py +22 -0
  70. junifer-0.0.8.dev184/junifer/datagrabber/aomic/id1000.py +245 -0
  71. junifer-0.0.8.dev184/junifer/datagrabber/aomic/piop1.py +315 -0
  72. junifer-0.0.8.dev184/junifer/datagrabber/aomic/piop2.py +298 -0
  73. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/aomic/tests/test_id1000.py +33 -50
  74. junifer-0.0.8.dev184/junifer/datagrabber/aomic/tests/test_piop1.py +156 -0
  75. junifer-0.0.8.dev184/junifer/datagrabber/aomic/tests/test_piop2.py +141 -0
  76. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/base.py +81 -46
  77. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/datalad_base.py +117 -72
  78. junifer-0.0.8.dev184/junifer/datagrabber/dmcc13_benchmark.py +380 -0
  79. junifer-0.0.8.dev184/junifer/datagrabber/hcp1200/__init__.pyi +9 -0
  80. junifer-0.0.8.dev184/junifer/datagrabber/hcp1200/datalad_hcp1200.py +69 -0
  81. junifer-0.0.8.dev184/junifer/datagrabber/hcp1200/hcp1200.py +212 -0
  82. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +54 -127
  83. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/multiple.py +36 -20
  84. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/pattern.py +61 -168
  85. junifer-0.0.8.dev184/junifer/datagrabber/pattern_datalad.py +63 -0
  86. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/pattern_validation_mixin.py +22 -50
  87. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_base.py +4 -4
  88. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_datalad_base.py +14 -25
  89. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +62 -116
  90. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_multiple.py +29 -26
  91. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_pattern.py +19 -24
  92. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_pattern_datalad.py +68 -106
  93. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +6 -47
  94. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datareader/default.py +6 -2
  95. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datareader/tests/test_default_reader.py +1 -1
  96. junifer-0.0.8.dev184/junifer/external/__init__.py +9 -0
  97. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/__init__.pyi +6 -3
  98. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/base.py +106 -70
  99. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/brainprint.py +28 -35
  100. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/complexity_base.py +30 -29
  101. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/hurst_exponent.py +22 -33
  102. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/multiscale_entropy_auc.py +23 -33
  103. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/perm_entropy.py +22 -34
  104. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/range_entropy.py +22 -33
  105. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/range_entropy_auc.py +22 -33
  106. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/sample_entropy.py +22 -34
  107. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_hurst_exponent.py +2 -1
  108. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +2 -1
  109. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_perm_entropy.py +2 -1
  110. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_range_entropy.py +2 -1
  111. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_range_entropy_auc.py +2 -1
  112. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_sample_entropy.py +2 -1
  113. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +2 -1
  114. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/weighted_perm_entropy.py +22 -34
  115. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/ets_rss.py +26 -27
  116. junifer-0.0.8.dev184/junifer/markers/falff/__init__.pyi +11 -0
  117. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/falff/_afni_falff.py +9 -5
  118. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/falff/_junifer_falff.py +1 -1
  119. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/falff/falff_base.py +59 -58
  120. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/falff/falff_maps.py +14 -38
  121. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/falff/falff_parcels.py +24 -49
  122. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/falff/falff_spheres.py +32 -59
  123. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/falff/tests/test_falff_maps.py +11 -11
  124. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/falff/tests/test_falff_parcels.py +12 -9
  125. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/falff/tests/test_falff_spheres.py +12 -9
  126. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +31 -33
  127. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +10 -23
  128. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +18 -33
  129. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +23 -43
  130. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/functional_connectivity_base.py +36 -35
  131. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +10 -23
  132. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +18 -33
  133. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +23 -44
  134. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +8 -4
  135. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +2 -2
  136. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +4 -3
  137. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +4 -3
  138. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +2 -2
  139. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +5 -4
  140. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +4 -11
  141. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/maps_aggregation.py +67 -51
  142. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/parcel_aggregation.py +82 -64
  143. junifer-0.0.8.dev184/junifer/markers/reho/__init__.pyi +11 -0
  144. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/reho/_afni_reho.py +9 -5
  145. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/reho/_junifer_reho.py +2 -1
  146. junifer-0.0.8.dev184/junifer/markers/reho/reho_base.py +195 -0
  147. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/reho/reho_maps.py +12 -28
  148. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/reho/reho_parcels.py +21 -38
  149. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/reho/reho_spheres.py +28 -51
  150. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/reho/tests/test_reho_maps.py +9 -9
  151. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/reho/tests/test_reho_parcels.py +13 -8
  152. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/reho/tests/test_reho_spheres.py +11 -8
  153. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/sphere_aggregation.py +84 -70
  154. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/temporal_snr_base.py +24 -24
  155. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/temporal_snr_maps.py +7 -16
  156. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/temporal_snr_parcels.py +18 -26
  157. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/temporal_snr_spheres.py +26 -40
  158. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +2 -2
  159. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +3 -4
  160. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +3 -3
  161. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +3 -11
  162. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/tests/test_brainprint.py +10 -9
  163. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/tests/test_ets_rss.py +2 -2
  164. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/tests/test_maps_aggregation.py +34 -34
  165. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/tests/test_markers_base.py +6 -6
  166. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/tests/test_parcel_aggregation.py +49 -46
  167. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/tests/test_sphere_aggregation.py +39 -36
  168. junifer-0.0.8.dev184/junifer/onthefly/__init__.py +9 -0
  169. junifer-0.0.8.dev22/junifer/onthefly/__init__.py → junifer-0.0.8.dev184/junifer/onthefly/__init__.pyi +1 -7
  170. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/onthefly/read_transform.py +5 -1
  171. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/onthefly/tests/test_read_transform.py +7 -7
  172. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/__init__.pyi +4 -2
  173. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/marker_collection.py +10 -5
  174. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/pipeline_component_registry.py +16 -2
  175. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/pipeline_step_mixin.py +4 -3
  176. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_marker_collection.py +3 -3
  177. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_pipeline_step_mixin.py +9 -26
  178. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_update_meta_mixin.py +3 -2
  179. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/update_meta_mixin.py +2 -4
  180. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/utils.py +17 -12
  181. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/workdir_manager.py +5 -5
  182. junifer-0.0.8.dev184/junifer/preprocess/__init__.pyi +20 -0
  183. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/_temporal_filter.py +17 -23
  184. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/_temporal_slicer.py +11 -26
  185. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/base.py +95 -52
  186. junifer-0.0.8.dev184/junifer/preprocess/confounds/__init__.pyi +11 -0
  187. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/confounds/fmriprep_confound_remover.py +68 -97
  188. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +32 -37
  189. junifer-0.0.8.dev184/junifer/preprocess/smoothing/__init__.pyi +3 -0
  190. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/_afni_smoothing.py +4 -3
  191. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/_fsl_smoothing.py +4 -3
  192. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/_nilearn_smoothing.py +1 -1
  193. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/smoothing.py +58 -39
  194. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/tests/test_smoothing.py +4 -4
  195. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/tests/test_preprocess_base.py +3 -5
  196. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/tests/test_temporal_filter.py +3 -3
  197. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/tests/test_temporal_slicer.py +0 -8
  198. junifer-0.0.8.dev184/junifer/preprocess/warping/__init__.pyi +3 -0
  199. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/warping/_ants_warper.py +4 -3
  200. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/warping/_fsl_warper.py +4 -3
  201. junifer-0.0.8.dev184/junifer/preprocess/warping/py.typed +0 -0
  202. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/warping/space_warper.py +69 -63
  203. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/warping/tests/test_space_warper.py +43 -41
  204. junifer-0.0.8.dev184/junifer/py.typed +0 -0
  205. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/stats.py +41 -30
  206. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/__init__.pyi +8 -4
  207. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/base.py +52 -43
  208. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/hdf5.py +33 -72
  209. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/pandas_base.py +5 -13
  210. junifer-0.0.8.dev184/junifer/storage/py.typed +0 -0
  211. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/sqlite.py +27 -40
  212. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/tests/test_hdf5.py +0 -12
  213. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/tests/test_sqlite.py +7 -17
  214. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/tests/test_storage_base.py +15 -20
  215. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/tests/test_utils.py +0 -10
  216. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/utils.py +31 -31
  217. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/testing/datagrabbers.py +33 -34
  218. junifer-0.0.8.dev184/junifer/testing/py.typed +0 -0
  219. junifer-0.0.8.dev184/junifer/testing/tests/test_testing_registry.py +39 -0
  220. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/tests/test_stats.py +0 -2
  221. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/typing/_typing.py +29 -12
  222. junifer-0.0.8.dev184/junifer/typing/py.typed +0 -0
  223. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/__init__.pyi +3 -1
  224. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/helpers.py +20 -1
  225. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/logging.py +2 -1
  226. junifer-0.0.8.dev184/junifer/utils/py.typed +0 -0
  227. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer.egg-info/PKG-INFO +6 -1
  228. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer.egg-info/SOURCES.txt +14 -0
  229. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer.egg-info/requires.txt +7 -0
  230. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/pyproject.toml +5 -0
  231. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/uv.lock +525 -0
  232. junifer-0.0.8.dev22/junifer/api/queue_context/__init__.pyi +0 -5
  233. junifer-0.0.8.dev22/junifer/configs/__init__.py +0 -4
  234. junifer-0.0.8.dev22/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -47
  235. junifer-0.0.8.dev22/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -51
  236. junifer-0.0.8.dev22/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -75
  237. junifer-0.0.8.dev22/junifer/configs/juseless/datagrabbers/ucla.py +0 -146
  238. junifer-0.0.8.dev22/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -50
  239. junifer-0.0.8.dev22/junifer/datagrabber/aomic/__init__.pyi +0 -5
  240. junifer-0.0.8.dev22/junifer/datagrabber/aomic/id1000.py +0 -234
  241. junifer-0.0.8.dev22/junifer/datagrabber/aomic/piop1.py +0 -311
  242. junifer-0.0.8.dev22/junifer/datagrabber/aomic/piop2.py +0 -296
  243. junifer-0.0.8.dev22/junifer/datagrabber/aomic/tests/test_piop1.py +0 -198
  244. junifer-0.0.8.dev22/junifer/datagrabber/aomic/tests/test_piop2.py +0 -177
  245. junifer-0.0.8.dev22/junifer/datagrabber/dmcc13_benchmark.py +0 -367
  246. junifer-0.0.8.dev22/junifer/datagrabber/hcp1200/__init__.pyi +0 -4
  247. junifer-0.0.8.dev22/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -75
  248. junifer-0.0.8.dev22/junifer/datagrabber/hcp1200/hcp1200.py +0 -202
  249. junifer-0.0.8.dev22/junifer/datagrabber/pattern_datalad.py +0 -163
  250. junifer-0.0.8.dev22/junifer/external/__init__.py +0 -4
  251. junifer-0.0.8.dev22/junifer/markers/falff/__init__.pyi +0 -5
  252. junifer-0.0.8.dev22/junifer/markers/reho/__init__.pyi +0 -5
  253. junifer-0.0.8.dev22/junifer/markers/reho/reho_base.py +0 -138
  254. junifer-0.0.8.dev22/junifer/preprocess/__init__.pyi +0 -15
  255. junifer-0.0.8.dev22/junifer/preprocess/confounds/__init__.pyi +0 -3
  256. junifer-0.0.8.dev22/junifer/preprocess/smoothing/__init__.pyi +0 -3
  257. junifer-0.0.8.dev22/junifer/preprocess/warping/__init__.pyi +0 -3
  258. junifer-0.0.8.dev22/junifer/testing/tests/test_testing_registry.py +0 -16
  259. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.dockerignore +0 -0
  260. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  261. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  262. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  263. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  264. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  265. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  266. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/dependabot.yml +0 -0
  267. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/pull_request_template.md +0 -0
  268. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/workflows/check-stale.yml +0 -0
  269. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.github/workflows/ci-docs.yml +0 -0
  270. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.gitignore +0 -0
  271. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.gitmodules +0 -0
  272. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.pre-commit-config.yaml +0 -0
  273. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/.python-version +0 -0
  274. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/AUTHORS.rst +0 -0
  275. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/Dockerfile +0 -0
  276. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/Dockerfile-ci +0 -0
  277. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/Dockerfile-docs +0 -0
  278. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/LICENSE.md +0 -0
  279. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/README.md +0 -0
  280. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/codecov.yml +0 -0
  281. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/conda-env.yml +0 -0
  282. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/Makefile +0 -0
  283. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/_static/css/custom.css +0 -0
  284. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/_static/js/custom.js +0 -0
  285. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/_templates/versions.html +0 -0
  286. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/api.rst +0 -0
  287. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/cli.rst +0 -0
  288. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/configs.rst +0 -0
  289. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/data.rst +0 -0
  290. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/datagrabbers.rst +0 -0
  291. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/datareaders.rst +0 -0
  292. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/index.rst +0 -0
  293. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/markers.rst +0 -0
  294. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/nilearn.rst +0 -0
  295. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/pipeline.rst +0 -0
  296. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/preprocessing.rst +0 -0
  297. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/stats.rst +0 -0
  298. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/storage.rst +0 -0
  299. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/testing.rst +0 -0
  300. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/api/utils.rst +0 -0
  301. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/changes/contributors.inc +0 -0
  302. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/changes/newsfragments/.gitignore +0 -0
  303. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/changes/newsfragments/474.misc +0 -0
  304. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/changes/newsfragments/482.bugfix +0 -0
  305. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/changes/newsfragments/492.bugfix +0 -0
  306. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/contribution.rst +0 -0
  307. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/coordinates.rst +0 -0
  308. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/data_dump_asset.rst +0 -0
  309. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/data_registries.rst +0 -0
  310. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/data_types.rst +0 -0
  311. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/extension.rst +0 -0
  312. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/maps.rst +0 -0
  313. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/masks.rst +0 -0
  314. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/extending/plugins.rst +0 -0
  315. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/faq.rst +0 -0
  316. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/help.rst +0 -0
  317. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/images/junifer_logo.png +0 -0
  318. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/index.rst +0 -0
  319. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/installation.rst +0 -0
  320. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/links.inc +0 -0
  321. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/maintaining.rst +0 -0
  322. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/redirect.html +0 -0
  323. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/starting.rst +0 -0
  324. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/understanding/data.rst +0 -0
  325. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/understanding/datagrabber.rst +0 -0
  326. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/understanding/datareader.rst +0 -0
  327. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/understanding/index.rst +0 -0
  328. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/understanding/marker.rst +0 -0
  329. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/understanding/pipeline.rst +0 -0
  330. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/understanding/preprocess.rst +0 -0
  331. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/understanding/storage.rst +0 -0
  332. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/using/codeless.rst +0 -0
  333. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/using/configuring.rst +0 -0
  334. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/using/dumping.rst +0 -0
  335. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/using/index.rst +0 -0
  336. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/using/masks.rst +0 -0
  337. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/using/queueing.rst +0 -0
  338. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/docs/using/running.rst +0 -0
  339. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/README.rst +0 -0
  340. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/norun_hcpfc_pearson.py +0 -0
  341. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/norun_ukbvm_gmd.py +0 -0
  342. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/run_ets_rss_marker.py +0 -0
  343. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/run_run_gmd_mean.py +0 -0
  344. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/yamls/gmd_mean.yaml +0 -0
  345. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/yamls/gmd_mean_htcondor.yaml +0 -0
  346. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  347. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/examples/yamls/ukb_gmd_mean.yaml +0 -0
  348. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/ignore_words.txt +0 -0
  349. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/__init__.py +0 -0
  350. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/__init__.pyi +0 -0
  351. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/__init__.py +0 -0
  352. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/__init__.pyi +0 -0
  353. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/decorators.py +0 -0
  354. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/py.typed +0 -0
  355. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/queue_context/__init__.py +0 -0
  356. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/queue_context/py.typed +0 -0
  357. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  358. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/afni/3dRSFC +0 -0
  359. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/afni/3dReHo +0 -0
  360. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/afni/afni +0 -0
  361. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  362. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/ants/ResampleImage +0 -0
  363. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/ants/antsApplyTransforms +0 -0
  364. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  365. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  366. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/freesurfer/mri_binarize +0 -0
  367. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/freesurfer/mri_mc +0 -0
  368. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/freesurfer/mri_pretess +0 -0
  369. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/freesurfer/mris_convert +0 -0
  370. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  371. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/fsl/applywarp +0 -0
  372. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/fsl/flirt +0 -0
  373. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/fsl/img2imgcoord +0 -0
  374. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  375. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/fsl/std2imgcoord +0 -0
  376. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/run_conda.bash +0 -0
  377. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/run_conda.zsh +0 -0
  378. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/run_venv.bash +0 -0
  379. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/res/run_venv.zsh +0 -0
  380. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/api/tests/test_decorators.py +0 -0
  381. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/__init__.py +0 -0
  382. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/__init__.pyi +0 -0
  383. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/cli.py +0 -0
  384. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/py.typed +0 -0
  385. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  386. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  387. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/tests/test_cli.py +0 -0
  388. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/tests/test_parser.py +0 -0
  389. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/cli/utils.py +0 -0
  390. /junifer-0.0.8.dev22/junifer/configs/juseless/datagrabbers/py.typed → /junifer-0.0.8.dev184/junifer/configs/__init__.pyi +0 -0
  391. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/configs/juseless/__init__.py +0 -0
  392. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/configs/juseless/__init__.pyi +0 -0
  393. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  394. {junifer-0.0.8.dev22/junifer/configs/juseless → junifer-0.0.8.dev184/junifer/configs/juseless/datagrabbers}/py.typed +0 -0
  395. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  396. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  397. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  398. {junifer-0.0.8.dev22/junifer/data → junifer-0.0.8.dev184/junifer/configs/juseless}/py.typed +0 -0
  399. {junifer-0.0.8.dev22/junifer/datagrabber/aomic → junifer-0.0.8.dev184/junifer/configs}/py.typed +0 -0
  400. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/__init__.py +0 -0
  401. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/__init__.pyi +0 -0
  402. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/coordinates/__init__.py +0 -0
  403. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/coordinates/__init__.pyi +0 -0
  404. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/coordinates/tests/test_coordinates.py +0 -0
  405. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/maps/__init__.py +0 -0
  406. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/maps/__init__.pyi +0 -0
  407. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/maps/tests/test_maps.py +0 -0
  408. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/masks/__init__.py +0 -0
  409. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/masks/__init__.pyi +0 -0
  410. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/parcellations/__init__.py +0 -0
  411. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/parcellations/__init__.pyi +0 -0
  412. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/parcellations/tests/test_parcellations.py +0 -0
  413. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/pipeline_data_registry_base.py +0 -0
  414. {junifer-0.0.8.dev22/junifer/datagrabber/hcp1200 → junifer-0.0.8.dev184/junifer/data}/py.typed +0 -0
  415. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/tests/test_data_utils.py +0 -0
  416. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/tests/test_dispatch.py +0 -0
  417. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/data/tests/test_template_spaces.py +0 -0
  418. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/__init__.py +0 -0
  419. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/aomic/__init__.py +0 -0
  420. {junifer-0.0.8.dev22/junifer/datagrabber → junifer-0.0.8.dev184/junifer/datagrabber/aomic}/py.typed +0 -0
  421. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  422. {junifer-0.0.8.dev22/junifer/datareader → junifer-0.0.8.dev184/junifer/datagrabber/hcp1200}/py.typed +0 -0
  423. {junifer-0.0.8.dev22/junifer/external/nilearn → junifer-0.0.8.dev184/junifer/datagrabber}/py.typed +0 -0
  424. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datareader/__init__.py +0 -0
  425. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/datareader/__init__.pyi +0 -0
  426. {junifer-0.0.8.dev22/junifer/markers/complexity → junifer-0.0.8.dev184/junifer/datareader}/py.typed +0 -0
  427. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  428. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  429. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  430. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  431. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  432. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  433. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  434. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  435. /junifer-0.0.8.dev22/junifer/markers/falff/py.typed → /junifer-0.0.8.dev184/junifer/external/__init__.pyi +0 -0
  436. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/h5io/h5io/__init__.py +0 -0
  437. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/h5io/h5io/_h5io.py +0 -0
  438. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/h5io/h5io/_version.py +0 -0
  439. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  440. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  441. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/nilearn/__init__.py +0 -0
  442. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/nilearn/__init__.pyi +0 -0
  443. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  444. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  445. {junifer-0.0.8.dev22/junifer/markers/functional_connectivity → junifer-0.0.8.dev184/junifer/external/nilearn}/py.typed +0 -0
  446. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  447. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  448. {junifer-0.0.8.dev22/junifer/markers → junifer-0.0.8.dev184/junifer/external}/py.typed +0 -0
  449. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/__init__.py +0 -0
  450. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/__init__.py +0 -0
  451. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/__init__.pyi +0 -0
  452. {junifer-0.0.8.dev22/junifer/markers/reho → junifer-0.0.8.dev184/junifer/markers/complexity}/py.typed +0 -0
  453. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  454. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/falff/__init__.py +0 -0
  455. {junifer-0.0.8.dev22/junifer/markers/temporal_snr → junifer-0.0.8.dev184/junifer/markers/falff}/py.typed +0 -0
  456. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/__init__.py +0 -0
  457. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  458. {junifer-0.0.8.dev22/junifer/pipeline → junifer-0.0.8.dev184/junifer/markers/functional_connectivity}/py.typed +0 -0
  459. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  460. {junifer-0.0.8.dev22/junifer/preprocess/confounds → junifer-0.0.8.dev184/junifer/markers}/py.typed +0 -0
  461. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/reho/__init__.py +0 -0
  462. {junifer-0.0.8.dev22/junifer/preprocess → junifer-0.0.8.dev184/junifer/markers/reho}/py.typed +0 -0
  463. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/__init__.py +0 -0
  464. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  465. {junifer-0.0.8.dev22/junifer/preprocess/smoothing → junifer-0.0.8.dev184/junifer/markers/temporal_snr}/py.typed +0 -0
  466. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/tests/test_marker_utils.py +0 -0
  467. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/markers/utils.py +0 -0
  468. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/onthefly/_brainprint.py +0 -0
  469. {junifer-0.0.8.dev22/junifer/preprocess/warping → junifer-0.0.8.dev184/junifer/onthefly}/py.typed +0 -0
  470. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/__init__.py +0 -0
  471. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/_data_object_dumper.py +0 -0
  472. {junifer-0.0.8.dev22/junifer → junifer-0.0.8.dev184/junifer/pipeline}/py.typed +0 -0
  473. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_data_object_dumper.py +0 -0
  474. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  475. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  476. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/__init__.py +0 -0
  477. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/confounds/__init__.py +0 -0
  478. {junifer-0.0.8.dev22/junifer/storage → junifer-0.0.8.dev184/junifer/preprocess/confounds}/py.typed +0 -0
  479. {junifer-0.0.8.dev22/junifer/testing → junifer-0.0.8.dev184/junifer/preprocess}/py.typed +0 -0
  480. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/smoothing/__init__.py +0 -0
  481. {junifer-0.0.8.dev22/junifer/utils → junifer-0.0.8.dev184/junifer/preprocess/smoothing}/py.typed +0 -0
  482. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/preprocess/warping/__init__.py +0 -0
  483. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/__init__.py +0 -0
  484. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/storage/tests/test_pandas_base.py +0 -0
  485. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/testing/__init__.py +0 -0
  486. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/testing/__init__.pyi +0 -0
  487. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  488. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/testing/registry.py +0 -0
  489. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +0 -0
  490. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -0
  491. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/testing/tests/test_spmauditory_datagrabber.py +0 -0
  492. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/testing/utils.py +0 -0
  493. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/tests/test_main.py +0 -0
  494. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/typing/__init__.py +0 -0
  495. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/typing/__init__.pyi +0 -0
  496. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/__init__.py +0 -0
  497. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/_config.py +0 -0
  498. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/_yaml.py +0 -0
  499. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/fs.py +0 -0
  500. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/singleton.py +0 -0
  501. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/tests/test_config.py +0 -0
  502. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/tests/test_fs.py +0 -0
  503. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/tests/test_helpers.py +0 -0
  504. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer/utils/tests/test_logging.py +0 -0
  505. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer.egg-info/dependency_links.txt +0 -0
  506. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer.egg-info/entry_points.txt +0 -0
  507. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/junifer.egg-info/top_level.txt +0 -0
  508. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/justfile +0 -0
  509. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/setup.cfg +0 -0
  510. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/setup.py +0 -0
  511. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/tools/create_aomic1000_example_dataset.py +0 -0
  512. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/tools/create_aomicpiop1_example_dataset.py +0 -0
  513. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/tools/create_aomicpiop2_example_dataset.py +0 -0
  514. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/tools/create_bids_example_dataset.py +0 -0
  515. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/tools/create_bids_example_dataset_sessions.py +0 -0
  516. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  517. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/tools/create_hcp1200_example_dataset.py +0 -0
  518. {junifer-0.0.8.dev22 → junifer-0.0.8.dev184}/tox.ini +0 -0
@@ -57,7 +57,7 @@ jobs:
57
57
  mkdir -p $HOME/junifer_data/v7
58
58
  cp -ar /root/junifer_data/v7/. $HOME/junifer_data/v7/
59
59
  - name: Checkout repository
60
- uses: actions/checkout@v5
60
+ uses: actions/checkout@v6
61
61
  with:
62
62
  submodules: true
63
63
  - name: Set up Python ${{ matrix.python-version }}
@@ -32,27 +32,27 @@ jobs:
32
32
  sudo docker builder prune -a
33
33
  - run: df -h
34
34
  - name: Checkout repository
35
- uses: actions/checkout@v5
35
+ uses: actions/checkout@v6
36
36
  - name: Install cosign
37
37
  if: github.event_name != 'pull_request'
38
- uses: sigstore/cosign-installer@v4.0.0
38
+ uses: sigstore/cosign-installer@v4.1.0
39
39
  - name: Set up Docker Buildx
40
- uses: docker/setup-buildx-action@v3.11.1
40
+ uses: docker/setup-buildx-action@v4.0.0
41
41
  - name: Log into registry ${{ env.REGISTRY }}
42
42
  if: github.event_name != 'pull_request'
43
- uses: docker/login-action@v3.6.0
43
+ uses: docker/login-action@v4.0.0
44
44
  with:
45
45
  registry: ${{ env.REGISTRY }}
46
46
  username: ${{ github.actor }}
47
47
  password: ${{ secrets.GITHUB_TOKEN }}
48
48
  - name: Extract Docker metadata
49
49
  id: meta
50
- uses: docker/metadata-action@v5.8.0
50
+ uses: docker/metadata-action@v6.0.0
51
51
  with:
52
52
  images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
53
53
  - name: Build and push Docker image
54
54
  id: build-and-push
55
- uses: docker/build-push-action@v6.18.0
55
+ uses: docker/build-push-action@v7.0.0
56
56
  with:
57
57
  context: .
58
58
  file: Dockerfile-ci
@@ -32,27 +32,27 @@ jobs:
32
32
  sudo docker builder prune -a
33
33
  - run: df -h
34
34
  - name: Checkout repository
35
- uses: actions/checkout@v5
35
+ uses: actions/checkout@v6
36
36
  - name: Install cosign
37
37
  if: github.event_name != 'pull_request'
38
- uses: sigstore/cosign-installer@v4.0.0
38
+ uses: sigstore/cosign-installer@v4.1.0
39
39
  - name: Set up Docker Buildx
40
- uses: docker/setup-buildx-action@v3.11.1
40
+ uses: docker/setup-buildx-action@v4.0.0
41
41
  - name: Log into registry ${{ env.REGISTRY }}
42
42
  if: github.event_name != 'pull_request'
43
- uses: docker/login-action@v3.6.0
43
+ uses: docker/login-action@v4.0.0
44
44
  with:
45
45
  registry: ${{ env.REGISTRY }}
46
46
  username: ${{ github.actor }}
47
47
  password: ${{ secrets.GITHUB_TOKEN }}
48
48
  - name: Extract Docker metadata
49
49
  id: meta
50
- uses: docker/metadata-action@v5.8.0
50
+ uses: docker/metadata-action@v6.0.0
51
51
  with:
52
52
  images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
53
53
  - name: Build and push Docker image
54
54
  id: build-and-push
55
- uses: docker/build-push-action@v6.18.0
55
+ uses: docker/build-push-action@v7.0.0
56
56
  with:
57
57
  context: .
58
58
  file: Dockerfile-docs
@@ -32,27 +32,27 @@ jobs:
32
32
  sudo docker builder prune -a
33
33
  - run: df -h
34
34
  - name: Checkout repository
35
- uses: actions/checkout@v5
35
+ uses: actions/checkout@v6
36
36
  - name: Install cosign
37
37
  if: github.event_name != 'pull_request'
38
- uses: sigstore/cosign-installer@v4.0.0
38
+ uses: sigstore/cosign-installer@v4.1.0
39
39
  - name: Set up Docker Buildx
40
- uses: docker/setup-buildx-action@v3.11.1
40
+ uses: docker/setup-buildx-action@v4.0.0
41
41
  - name: Log into registry ${{ env.REGISTRY }}
42
42
  if: github.event_name != 'pull_request'
43
- uses: docker/login-action@v3.6.0
43
+ uses: docker/login-action@v4.0.0
44
44
  with:
45
45
  registry: ${{ env.REGISTRY }}
46
46
  username: ${{ github.actor }}
47
47
  password: ${{ secrets.GITHUB_TOKEN }}
48
48
  - name: Extract Docker metadata
49
49
  id: meta
50
- uses: docker/metadata-action@v5.8.0
50
+ uses: docker/metadata-action@v6.0.0
51
51
  with:
52
52
  images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
53
53
  - name: Build and push Docker image
54
54
  id: build-and-push
55
- uses: docker/build-push-action@v6.18.0
55
+ uses: docker/build-push-action@v7.0.0
56
56
  with:
57
57
  context: .
58
58
  file: Dockerfile
@@ -43,7 +43,7 @@ jobs:
43
43
  mkdir -p $HOME/junifer_data/v7
44
44
  cp -ar /root/junifer_data/v7/. $HOME/junifer_data/v7/
45
45
  - name: Checkout repository
46
- uses: actions/checkout@v5
46
+ uses: actions/checkout@v6
47
47
  with:
48
48
  fetch-depth: 0
49
49
  submodules: true
@@ -34,7 +34,7 @@ jobs:
34
34
  mkdir -p $HOME/junifer_data/v7
35
35
  cp -ar /root/junifer_data/v7/. $HOME/junifer_data/v7/
36
36
  - name: Checkout repository
37
- uses: actions/checkout@v5
37
+ uses: actions/checkout@v6
38
38
  with:
39
39
  # require all of history to see all tagged versions' docs
40
40
  fetch-depth: 0
@@ -55,7 +55,7 @@ jobs:
55
55
  - name: Checkout gh-pages
56
56
  # As we already did a deploy of gh-pages above, it is guaranteed to be there
57
57
  # so check it out so we can selectively build docs below
58
- uses: actions/checkout@v5
58
+ uses: actions/checkout@v6
59
59
  with:
60
60
  ref: gh-pages
61
61
  path: docs/_build
@@ -8,7 +8,7 @@ jobs:
8
8
  lint:
9
9
  runs-on: ubuntu-latest
10
10
  steps:
11
- - uses: actions/checkout@v5
11
+ - uses: actions/checkout@v6
12
12
  - name: Install Python
13
13
  uses: actions/setup-python@v6
14
14
  with:
@@ -18,7 +18,7 @@ jobs:
18
18
  contents: write
19
19
  steps:
20
20
  - name: Checkout source
21
- uses: actions/checkout@v5
21
+ uses: actions/checkout@v6
22
22
  with:
23
23
  fetch-depth: 0
24
24
  submodules: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.8.dev22
3
+ Version: 0.0.8.dev184
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>
@@ -46,6 +46,9 @@ Requires-Dist: importlib_metadata; python_version < "3.9"
46
46
  Requires-Dist: looseversion==1.3.0; python_version >= "3.12"
47
47
  Requires-Dist: junifer_data==1.3.0
48
48
  Requires-Dist: structlog<26.0.0,>=25.0.0
49
+ Requires-Dist: pydantic>=2.11.4
50
+ Requires-Dist: aenum<3.2.0,>=3.1.0
51
+ Requires-Dist: typing_extensions<4.16.0,>=4.15.0; python_version < "3.12"
49
52
  Provides-Extra: all
50
53
  Requires-Dist: bctpy==0.6.0; extra == "all"
51
54
  Requires-Dist: neurokit2>=0.1.7; extra == "all"
@@ -72,6 +75,8 @@ Requires-Dist: towncrier<=25.8.0,>=24.7.0; extra == "docs"
72
75
  Requires-Dist: sphinxcontrib-mermaid<=1.0.0,>=0.8.1; extra == "docs"
73
76
  Requires-Dist: sphinxcontrib-towncrier==0.5.0a0; extra == "docs"
74
77
  Requires-Dist: setuptools-scm>=8; extra == "docs"
78
+ Requires-Dist: autodoc_pydantic>=2.0.0; extra == "docs"
79
+ Requires-Dist: enum-tools[sphinx]<0.14.0,>=0.13.0; extra == "docs"
75
80
  Dynamic: license-file
76
81
 
77
82
  ![Junifer logo](docs/images/junifer_logo.png "junifer logo")
@@ -5,5 +5,5 @@ On-the-fly
5
5
  :members:
6
6
  :imported-members:
7
7
 
8
- .. automodule:: junifer.onthefly.brainprint
8
+ .. automodule:: junifer.onthefly._brainprint
9
9
  :members:
@@ -158,16 +158,16 @@ Available
158
158
  | (subject-native or other template spaces)
159
159
  - Done
160
160
  - 0.0.4
161
- * - ``Smoothing``
161
+ * - :class:`.Smoothing`
162
162
  - | Apply smoothing to data, particularly useful when dealing with
163
163
  | ``fMRIPrep``-ed data
164
164
  - In Progress
165
165
  - :gh:`161`
166
- * - ``TemporalSlicer``
166
+ * - :class:`.TemporalSlicer`
167
167
  - Slice ``BOLD`` data temporally
168
168
  - | Done
169
169
  - :gh:`443`
170
- * - ``TemporalFilter``
170
+ * - :class:`.TemporalFilter`
171
171
  - Filter (clean) ``BOLD`` data temporally
172
172
  - | Done
173
173
  - :gh:`432`
@@ -0,0 +1 @@
1
+ Improve logging consistency of components by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Add documentation on adding confounds format by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Adopt Pydantic for user-facing core objects to perform automatic validation using typing annotations by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Enable confounds format to be added by introducing :func:`.register_confounds_format` by `Synchon Mandal`_
@@ -65,6 +65,8 @@ extensions = [
65
65
  "sphinx_copybutton", # copy button for code blocks
66
66
  "sphinxcontrib.mermaid", # mermaid support
67
67
  "sphinxcontrib.towncrier.ext", # towncrier fragment support
68
+ "sphinxcontrib.autodoc_pydantic", # autodoc support for pydantic models
69
+ "enum_tools.autoenum", # enum support
68
70
  ]
69
71
 
70
72
  if use_multiversion:
@@ -97,6 +99,15 @@ nitpick_ignore_regex = [
97
99
  ("py:class", "pipeline.Pipeline"), # nilearn
98
100
  ("py:obj", "neurokit2.*"), # ignore neurokit2
99
101
  ("py:obj", "datalad.*"), # ignore datalad
102
+ ("py:obj", "junifer.*"), # ignore junifer internal
103
+ ("py:class", "annotated_types.*"), # ignore pydantic annotated types
104
+ ("py:obj", "variants"), # ignore variants
105
+ ("py:obj", "them"), # ignore them
106
+ ("py:class", "junifer.utils.helpers.ensure_list"), # ignore ensure_list
107
+ ("py:class", "junifer.utils.helpers.ensure_list_or_none"), # ignore ensure_list_or_none
108
+ ("py:class", "PydanticUndefined"), # ignore PydanticUndefined
109
+ ("py:class", "FieldInfo"), # ignore FieldInfo
110
+ ("py:class", "NoneType"), # ignore NoneType
100
111
  ]
101
112
 
102
113
  # -- Options for HTML output -------------------------------------------------
@@ -154,6 +165,7 @@ intersphinx_mapping = {
154
165
  "pandas": ("https://pandas.pydata.org/pandas-docs/dev", None),
155
166
  # "sqlalchemy": ("https://docs.sqlalchemy.org/en/20/", None),
156
167
  "scipy": ("https://docs.scipy.org/doc/scipy/", None),
168
+ "pydantic": ("https://docs.pydantic.dev/latest/", None),
157
169
  }
158
170
 
159
171
  # -- sphinx.ext.extlinks configuration ---------------------------------------
@@ -0,0 +1,22 @@
1
+ .. include:: ../links.inc
2
+
3
+ .. _adding_confounds_format:
4
+
5
+ Adding Confounds Format
6
+ =======================
7
+
8
+ #. Check :ref:`extending junifer <extending_extension>` on how to create a
9
+ *junifer extension* if you have not done so.
10
+ #. Register the confounds format before defining / using a DataGrabber like so:
11
+
12
+ .. code-block:: python
13
+
14
+ from junifer.datagrabber import register_confounds_format
15
+ ...
16
+
17
+
18
+ # registers the confounds format as "confounds" and accessible as
19
+ # ``ConfoundsFormat.Confounds``
20
+ register_confounds_format(name="Confounds", alias="confounds")
21
+
22
+ ...
@@ -140,29 +140,24 @@ With the variables defined above, we can create our DataGrabber and name it
140
140
 
141
141
  from pathlib import Path
142
142
 
143
- from junifer.datagrabber import PatternDataGrabber
143
+ from junifer.datagrabber import PatternDataGrabber, DataType
144
+ from junifer.typing import DataGrabberPatterns
144
145
 
145
146
 
146
147
  class ExampleBIDSDataGrabber(PatternDataGrabber):
147
- def __init__(self, datadir: str | Path) -> None:
148
- types = ["T1w", "BOLD"]
149
- patterns = {
150
- "T1w": {
151
- "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
152
- "space": "native",
153
- },
154
- "BOLD": {
155
- "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
156
- "space": "MNI152NLin6Asym",
157
- },
158
- }
159
- replacements = ["subject", "session"]
160
- super().__init__(
161
- datadir=datadir,
162
- types=types,
163
- patterns=patterns,
164
- replacements=replacements,
165
- )
148
+
149
+ types: list[DataType] = [DataType.T1w, DataType.BOLD]
150
+ patterns: DataGrabberPatterns = {
151
+ "T1w": {
152
+ "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
153
+ "space": "native",
154
+ },
155
+ "BOLD": {
156
+ "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
157
+ "space": "MNI152NLin6Asym",
158
+ },
159
+ }
160
+ replacements: list[str] = ["subject", "session"]
166
161
 
167
162
  Our DataGrabber is ready to be used by ``junifer``. However, it is still unknown
168
163
  to the library. We need to register it in the library. To do so, we need to
@@ -175,29 +170,24 @@ use the :func:`.register_datagrabber` decorator.
175
170
 
176
171
  from junifer.api.decorators import register_datagrabber
177
172
  from junifer.datagrabber import PatternDataGrabber
173
+ from junifer.typing import DataGrabberPatterns
178
174
 
179
175
 
180
176
  @register_datagrabber
181
177
  class ExampleBIDSDataGrabber(PatternDataGrabber):
182
- def __init__(self, datadir: str | Path) -> None:
183
- types = ["T1w", "BOLD"]
184
- patterns = {
185
- "T1w": {
186
- "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
187
- "space": "native",
188
- },
189
- "BOLD": {
190
- "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
191
- "space": "MNI152NLin6Asym",
192
- },
193
- }
194
- replacements = ["subject", "session"]
195
- super().__init__(
196
- datadir=datadir,
197
- types=types,
198
- patterns=patterns,
199
- replacements=replacements,
200
- )
178
+
179
+ types: list[DataType] = [DataType.T1w, DataType.BOLD]
180
+ patterns: DataGrabberPatterns = {
181
+ "T1w": {
182
+ "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
183
+ "space": "native",
184
+ },
185
+ "BOLD": {
186
+ "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
187
+ "space": "MNI152NLin6Asym",
188
+ },
189
+ }
190
+ replacements: list[str] = ["subject", "session"]
201
191
 
202
192
 
203
193
  Now, we can use our DataGrabber in ``junifer``, by setting the ``datagrabber``
@@ -259,35 +249,30 @@ And we can create our DataGrabber:
259
249
 
260
250
  .. code-block:: python
261
251
 
252
+ from pathlib import Path
253
+
262
254
  from junifer.api.decorators import register_datagrabber
263
255
  from junifer.datagrabber import PatternDataladDataGrabber
256
+ from pydantic import AnyUrl
264
257
 
265
258
 
266
259
  @register_datagrabber
267
260
  class ExampleBIDSDataGrabber(PatternDataladDataGrabber):
268
- def __init__(self) -> None:
269
- types = ["T1w", "BOLD"]
270
- patterns = {
271
- "T1w": {
272
- "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
273
- "space": "native",
274
- },
275
- "BOLD": {
276
- "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
277
- "space": "MNI152NLin6Asym",
278
- },
279
- }
280
- replacements = ["subject", "session"]
281
- uri = "https://gin.g-node.org/juaml/datalad-example-bids"
282
- rootdir = "example_bids_ses"
283
- super().__init__(
284
- datadir=None,
285
- uri=uri,
286
- rootdir=rootdir,
287
- types=types,
288
- patterns=patterns,
289
- replacements=replacements,
290
- )
261
+
262
+ uri: AnyUrl = "https://gin.g-node.org/juaml/datalad-example-bids"
263
+ types: list[DataType] = ["T1w", "BOLD"]
264
+ patterns: DataGrabberPatterns = {
265
+ "T1w": {
266
+ "pattern": "{subject}/{session}/anat/{subject}_{session}_T1w.nii.gz",
267
+ "space": "native",
268
+ },
269
+ "BOLD": {
270
+ "pattern": "{subject}/{session}/func/{subject}_{session}_task-rest_bold.nii.gz",
271
+ "space": "MNI152NLin6Asym",
272
+ },
273
+ }
274
+ replacements: list[str] = ["subject", "session"]
275
+ rootdir: Path = "example_bids_ses"
291
276
 
292
277
  This approach can be used directly from the YAML, like so:
293
278
 
@@ -376,8 +361,8 @@ need to implement the following methods:
376
361
 
377
362
  .. note::
378
363
 
379
- The ``__init__`` method could also be implemented, but it is not mandatory.
380
- This is required if the DataGrabber requires any extra parameter.
364
+ If the DataGrabber requires any extra parameter, they could be defined as
365
+ class attributes.
381
366
 
382
367
  We will now implement our BIDS example with this method.
383
368
 
@@ -494,8 +479,8 @@ more information about the format of the confounds file. Thus, the
494
479
  ``BOLD.confounds`` element is a dictionary with the following keys:
495
480
 
496
481
  - ``path``: the path to the confounds file.
497
- - ``format``: the format of the confounds file. Currently, this can be either
498
- ``fmriprep`` or ``adhoc``.
482
+ - ``format``: the format of the confounds file. Check :enum:`.ConfoundsFormat`
483
+ for options.
499
484
 
500
485
  The ``fmriprep`` format corresponds to the format of the confounds files
501
486
  generated by `fMRIPrep`_. The ``adhoc`` format corresponds to a format that is
@@ -46,7 +46,7 @@ by having a class attribute like so:
46
46
 
47
47
  _EXT_DEPENDENCIES: ClassVar[ExternalDependencies] = [
48
48
  {
49
- "name": "afni",
49
+ "name": ExtDep.AFNI,
50
50
  "commands": ["3dReHo", "3dAFNItoNIFTI"],
51
51
  },
52
52
  ]
@@ -55,7 +55,7 @@ The above example is taken from the class which computes regional homogeneity
55
55
  (ReHo) using AFNI. The general pattern is that you need to have the value of
56
56
  ``_EXT_DEPENDENCIES`` as a list of dictionary with two keys:
57
57
 
58
- * ``name`` (str) : lowercased name of the toolbox
58
+ * ``name`` (:enum:`.ExtDep`) : name of the toolbox
59
59
  * ``commands`` (list of str) : actual names of the commands you need to use
60
60
 
61
61
  This is simple but powerful as we will see in the following sub-sections.
@@ -81,11 +81,11 @@ that it shows the problem a bit better and how we solve it:
81
81
  _CONDITIONAL_DEPENDENCIES: ClassVar[ConditionalDependencies] = [
82
82
  {
83
83
  "using": "fsl",
84
- "depends_on": FSLWarper,
84
+ "depends_on": [FSLWarper],
85
85
  },
86
86
  {
87
87
  "using": "ants",
88
- "depends_on": ANTsWarper,
88
+ "depends_on": [ANTSWarper],
89
89
  },
90
90
  {
91
91
  "using": "auto",
@@ -93,18 +93,16 @@ that it shows the problem a bit better and how we solve it:
93
93
  },
94
94
  ]
95
95
 
96
- def __init__(
97
- self, using: str, reference: str, on: Union[List[str], str]
98
- ) -> None:
99
- # validation and setting up
100
- ...
96
+ using: str
97
+ reference: str
98
+ on: List[DataType]
101
99
 
102
100
 
103
101
  Here, you see a new class attribute ``_CONDITIONAL_DEPENDENCIES`` which is a
104
102
  list of dictionaries with two keys:
105
103
 
106
104
  * ``using`` (str) : lowercased name of the toolbox
107
- * ``depends_on`` (object or list of objects) : a class or list of classes which \
105
+ * ``depends_on`` (list of objects) : list of classes which \
108
106
  implements the particular tool's use
109
107
 
110
108
  It is mandatory to have the ``using`` positional argument in the constructor in
@@ -128,7 +126,7 @@ similar. ``FSLWarper`` looks like this (only the relevant part is shown here):
128
126
 
129
127
  _EXT_DEPENDENCIES: ClassVar[ExternalDependencies] = [
130
128
  {
131
- "name": "fsl",
129
+ "name": ExtDep.FSL,
132
130
  "commands": ["flirt", "applywarp"],
133
131
  },
134
132
  ]
@@ -23,6 +23,7 @@ DataGrabbers, Preprocessors, Markers, etc., following the *junifer* way.
23
23
  :caption: Contents:
24
24
 
25
25
  extension
26
+ logging
26
27
  datagrabber
27
28
  marker
28
29
  preprocessor
@@ -34,4 +35,5 @@ DataGrabbers, Preprocessors, Markers, etc., following the *junifer* way.
34
35
  plugins
35
36
  data_registries
36
37
  data_types
38
+ confounds_format
37
39
  data_dump_asset
@@ -0,0 +1,38 @@
1
+ .. include:: ../links.inc
2
+
3
+ .. _logging_in_extension:
4
+
5
+ Logging in a ``junifer`` extension
6
+ ==================================
7
+
8
+ It is important to have proper logging in your code and ``junifer`` makes it trivial to do so for your extensions.
9
+
10
+ For DataGrabber:
11
+
12
+ .. code-block:: python
13
+
14
+ from junifer.datagrabber import logger
15
+
16
+
17
+ For Preprocessor:
18
+
19
+ .. code-block:: python
20
+
21
+ from junifer.preprocess import logger
22
+
23
+
24
+ For Marker:
25
+
26
+ .. code-block:: python
27
+
28
+ from junifer.marker import logger
29
+
30
+
31
+ For Storage:
32
+
33
+ .. code-block:: python
34
+
35
+ from junifer.storage import logger
36
+
37
+
38
+ Importing the correct logger will give you a properly set up logger which will fit right in with the rest of ``junifer``\'s log output.