junifer 0.0.8.dev211__tar.gz → 0.0.8.dev249__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 (579) hide show
  1. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.dockerignore +3 -0
  2. junifer-0.0.8.dev249/.github/workflows/ci.yml +157 -0
  3. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/workflows/docker-publish.yml +15 -3
  4. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/workflows/docs-preview.yml +11 -24
  5. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/workflows/docs.yml +9 -20
  6. junifer-0.0.8.dev249/.github/workflows/lint.yml +29 -0
  7. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/workflows/publish.yml +3 -5
  8. junifer-0.0.8.dev249/Dockerfile +82 -0
  9. junifer-0.0.8.dev249/Dockerfile-ci +134 -0
  10. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/PKG-INFO +4 -4
  11. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/codecov.yml +4 -11
  12. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/502.bugfix +1 -1
  13. junifer-0.0.8.dev249/docs/changes/newsfragments/511.bugfix +1 -0
  14. junifer-0.0.8.dev249/docs/changes/newsfragments/511.bugfix.1 +1 -0
  15. junifer-0.0.8.dev249/docs/changes/newsfragments/511.change +1 -0
  16. junifer-0.0.8.dev249/docs/changes/newsfragments/511.enh +1 -0
  17. junifer-0.0.8.dev249/docs/changes/newsfragments/511.enh.1 +1 -0
  18. junifer-0.0.8.dev249/docs/changes/newsfragments/511.feature +1 -0
  19. junifer-0.0.8.dev249/docs/changes/newsfragments/511.misc +1 -0
  20. junifer-0.0.8.dev249/docs/changes/newsfragments/511.misc.1 +1 -0
  21. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/conf.py +29 -0
  22. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/contribution.rst +1 -1
  23. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/datagrabber.rst +5 -5
  24. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/norun_hcpfc_pearson.py +2 -2
  25. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/run_compute_parcel_mean.py +17 -13
  26. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/run_datagrabber_bids_datalad.py +1 -1
  27. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/run_ets_rss_marker.py +6 -6
  28. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/run_junifer_julearn.py +18 -14
  29. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/run_run_gmd_mean.py +17 -11
  30. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/yamls/gmd_mean.yaml +2 -2
  31. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/yamls/gmd_mean_htcondor.yaml +2 -2
  32. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/yamls/ukb_gmd_mean.yaml +2 -2
  33. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/_version.py +3 -3
  34. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/tests/test_functions.py +6 -1
  35. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/tests/test_cli.py +3 -0
  36. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/tests/test_cli_utils.py +19 -3
  37. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/utils.py +14 -9
  38. junifer-0.0.8.dev249/junifer/conftest.py +48 -0
  39. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/coordinates/_coordinates.py +43 -2
  40. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/coordinates/tests/test_coordinates.py +12 -0
  41. junifer-0.0.8.dev249/junifer/data/coordinates/tests/test_coordinates_names.py +37 -0
  42. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/maps/tests/test_maps.py +9 -18
  43. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/masks/tests/test_masks.py +3 -0
  44. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/parcellations/tests/test_parcellations.py +3 -0
  45. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/template_spaces.py +17 -1
  46. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/tests/test_template_spaces.py +3 -0
  47. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/aomic/tests/test_id1000.py +39 -3
  48. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/aomic/tests/test_piop1.py +38 -3
  49. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/aomic/tests/test_piop2.py +39 -3
  50. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/datalad_base.py +10 -3
  51. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/hcp1200/tests/test_hcp1200.py +6 -5
  52. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/pattern.py +16 -2
  53. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/tests/test_datalad_base.py +6 -2
  54. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/tests/test_dmcc13_benchmark.py +36 -1
  55. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/tests/test_multiple.py +6 -2
  56. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/tests/test_pattern.py +83 -0
  57. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/tests/test_pattern_datalad.py +6 -2
  58. junifer-0.0.8.dev249/junifer/markers/complexity/tests/test_hurst_exponent.py +88 -0
  59. junifer-0.0.8.dev249/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +90 -0
  60. junifer-0.0.8.dev249/junifer/markers/complexity/tests/test_perm_entropy.py +88 -0
  61. junifer-0.0.8.dev249/junifer/markers/complexity/tests/test_range_entropy.py +88 -0
  62. junifer-0.0.8.dev249/junifer/markers/complexity/tests/test_range_entropy_auc.py +90 -0
  63. junifer-0.0.8.dev249/junifer/markers/complexity/tests/test_sample_entropy.py +88 -0
  64. junifer-0.0.8.dev249/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +90 -0
  65. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/_junifer_falff.py +31 -26
  66. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/tests/test_falff_maps.py +10 -13
  67. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/tests/test_falff_parcels.py +3 -0
  68. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/tests/test_falff_spheres.py +3 -0
  69. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +13 -17
  70. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +7 -6
  71. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +3 -0
  72. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +3 -0
  73. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +7 -6
  74. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +3 -0
  75. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +3 -0
  76. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/tests/test_reho_maps.py +10 -13
  77. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/tests/test_reho_parcels.py +10 -8
  78. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/tests/test_reho_spheres.py +5 -2
  79. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +12 -19
  80. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +5 -0
  81. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +5 -0
  82. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/tests/test_ets_rss.py +4 -0
  83. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/tests/test_maps_aggregation.py +33 -80
  84. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/tests/test_parcel_aggregation.py +3 -0
  85. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/tests/test_sphere_aggregation.py +3 -0
  86. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/tests/test_data_object_dumper.py +3 -2
  87. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/tests/test_marker_collection.py +3 -0
  88. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/tests/test_pipeline_step_mixin.py +3 -0
  89. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +3 -0
  90. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/smoothing/tests/test_smoothing.py +6 -3
  91. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/tests/test_temporal_filter.py +3 -0
  92. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/tests/test_temporal_slicer.py +3 -0
  93. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/warping/space_warper.py +2 -2
  94. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/warping/tests/test_space_warper.py +3 -0
  95. junifer-0.0.8.dev249/junifer/testing/__init__.pyi +4 -0
  96. junifer-0.0.8.dev249/junifer/testing/datagrabbers.py +513 -0
  97. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/testing/registry.py +6 -0
  98. junifer-0.0.8.dev249/junifer/testing/tests/test_adhdtesting_datagrabber.py +24 -0
  99. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +5 -0
  100. junifer-0.0.8.dev249/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +85 -0
  101. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/testing/tests/test_spmauditory_datagrabber.py +13 -0
  102. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/testing/tests/test_testing_registry.py +4 -0
  103. junifer-0.0.8.dev249/junifer/testing/tests/test_testing_utils.py +35 -0
  104. junifer-0.0.8.dev249/junifer/testing/utils.py +61 -0
  105. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/logging.py +26 -1
  106. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer.egg-info/PKG-INFO +4 -4
  107. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer.egg-info/SOURCES.txt +12 -4
  108. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer.egg-info/requires.txt +5 -5
  109. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer.egg-info/scm_file_list.json +12 -4
  110. junifer-0.0.8.dev249/junifer.egg-info/scm_version.json +8 -0
  111. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/pyproject.toml +39 -5
  112. junifer-0.0.8.dev249/scripts/start.sh +7 -0
  113. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/tox.ini +29 -8
  114. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/uv.lock +515 -116
  115. junifer-0.0.8.dev211/.github/workflows/ci-docs.yml +0 -57
  116. junifer-0.0.8.dev211/.github/workflows/ci.yml +0 -72
  117. junifer-0.0.8.dev211/.github/workflows/docker-ci-publish.yml +0 -69
  118. junifer-0.0.8.dev211/.github/workflows/docker-docs-publish.yml +0 -69
  119. junifer-0.0.8.dev211/.github/workflows/lint.yml +0 -23
  120. junifer-0.0.8.dev211/Dockerfile +0 -82
  121. junifer-0.0.8.dev211/Dockerfile-ci +0 -72
  122. junifer-0.0.8.dev211/Dockerfile-docs +0 -26
  123. junifer-0.0.8.dev211/junifer/conftest.py +0 -58
  124. junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_hurst_exponent.py +0 -78
  125. junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +0 -77
  126. junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_perm_entropy.py +0 -77
  127. junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_range_entropy.py +0 -78
  128. junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_range_entropy_auc.py +0 -78
  129. junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_sample_entropy.py +0 -77
  130. junifer-0.0.8.dev211/junifer/markers/complexity/tests/test_weighted_perm_entropy.py +0 -77
  131. junifer-0.0.8.dev211/junifer/testing/__init__.pyi +0 -4
  132. junifer-0.0.8.dev211/junifer/testing/datagrabbers.py +0 -256
  133. junifer-0.0.8.dev211/junifer/testing/tests/test_partlycloudytesting_datagrabber.py +0 -40
  134. junifer-0.0.8.dev211/junifer/testing/utils.py +0 -29
  135. junifer-0.0.8.dev211/junifer.egg-info/scm_version.json +0 -8
  136. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/ISSUE_TEMPLATE/bug-report.yml +0 -0
  137. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  138. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/ISSUE_TEMPLATE/dataset-request.yml +0 -0
  139. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/ISSUE_TEMPLATE/documention-request.yml +0 -0
  140. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/ISSUE_TEMPLATE/feature-request.yml +0 -0
  141. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/ISSUE_TEMPLATE/marker-request.yml +0 -0
  142. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/dependabot.yml +0 -0
  143. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/pull_request_template.md +0 -0
  144. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.github/workflows/check-stale.yml +0 -0
  145. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.gitignore +0 -0
  146. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.gitmodules +0 -0
  147. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.pre-commit-config.yaml +0 -0
  148. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/.python-version +0 -0
  149. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/AUTHORS.rst +0 -0
  150. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/LICENSE.md +0 -0
  151. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/README.md +0 -0
  152. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/conda-env.yml +0 -0
  153. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/Makefile +0 -0
  154. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/_static/css/custom.css +0 -0
  155. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/_static/js/custom.js +0 -0
  156. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/_templates/versions.html +0 -0
  157. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/api.rst +0 -0
  158. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/cli.rst +0 -0
  159. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/configs.rst +0 -0
  160. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/data.rst +0 -0
  161. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/datagrabbers.rst +0 -0
  162. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/datareaders.rst +0 -0
  163. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/index.rst +0 -0
  164. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/markers.rst +0 -0
  165. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/nilearn.rst +0 -0
  166. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/onthefly.rst +0 -0
  167. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/pipeline.rst +0 -0
  168. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/preprocessing.rst +0 -0
  169. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/stats.rst +0 -0
  170. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/storage.rst +0 -0
  171. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/testing.rst +0 -0
  172. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/api/utils.rst +0 -0
  173. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/builtin.rst +0 -0
  174. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/contributors.inc +0 -0
  175. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/.gitignore +0 -0
  176. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/239.enh +0 -0
  177. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/364.doc +0 -0
  178. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/364.enh +0 -0
  179. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/364.feature +0 -0
  180. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/474.misc +0 -0
  181. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/482.bugfix +0 -0
  182. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/492.bugfix +0 -0
  183. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/499.enh +0 -0
  184. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/503.enh +0 -0
  185. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/changes/newsfragments/510.bugfix +0 -0
  186. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/confounds_format.rst +0 -0
  187. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/coordinates.rst +0 -0
  188. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/data_dump_asset.rst +0 -0
  189. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/data_registries.rst +0 -0
  190. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/data_types.rst +0 -0
  191. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/dependencies.rst +0 -0
  192. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/extension.rst +0 -0
  193. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/index.rst +0 -0
  194. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/logging.rst +0 -0
  195. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/maps.rst +0 -0
  196. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/marker.rst +0 -0
  197. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/masks.rst +0 -0
  198. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/parcellations.rst +0 -0
  199. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/plugins.rst +0 -0
  200. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/extending/preprocessor.rst +0 -0
  201. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/faq.rst +0 -0
  202. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/help.rst +0 -0
  203. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/images/junifer_logo.png +0 -0
  204. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/index.rst +0 -0
  205. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/installation.rst +0 -0
  206. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/links.inc +0 -0
  207. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/maintaining.rst +0 -0
  208. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/redirect.html +0 -0
  209. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/starting.rst +0 -0
  210. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/understanding/data.rst +0 -0
  211. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/understanding/datagrabber.rst +0 -0
  212. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/understanding/datareader.rst +0 -0
  213. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/understanding/index.rst +0 -0
  214. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/understanding/marker.rst +0 -0
  215. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/understanding/pipeline.rst +0 -0
  216. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/understanding/preprocess.rst +0 -0
  217. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/understanding/storage.rst +0 -0
  218. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/using/codeless.rst +0 -0
  219. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/using/configuring.rst +0 -0
  220. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/using/dumping.rst +0 -0
  221. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/using/index.rst +0 -0
  222. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/using/masks.rst +0 -0
  223. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/using/queueing.rst +0 -0
  224. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/using/running.rst +0 -0
  225. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/docs/whats_new.rst +0 -0
  226. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/README.rst +0 -0
  227. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/norun_ukbvm_gmd.py +0 -0
  228. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/examples/yamls/partly_cloudy_agg_mean_tian.yml +0 -0
  229. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/ignore_words.txt +0 -0
  230. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/__init__.py +0 -0
  231. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/__init__.pyi +0 -0
  232. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/__init__.py +0 -0
  233. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/__init__.pyi +0 -0
  234. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/decorators.py +0 -0
  235. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/functions.py +0 -0
  236. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/py.typed +0 -0
  237. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/queue_context/__init__.py +0 -0
  238. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/queue_context/__init__.pyi +0 -0
  239. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/queue_context/gnu_parallel_local_adapter.py +0 -0
  240. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/queue_context/htcondor_adapter.py +0 -0
  241. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/queue_context/py.typed +0 -0
  242. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/queue_context/queue_context_adapter.py +0 -0
  243. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +0 -0
  244. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/queue_context/tests/test_htcondor_adapter.py +0 -0
  245. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/afni/3dAFNItoNIFTI +0 -0
  246. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/afni/3dRSFC +0 -0
  247. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/afni/3dReHo +0 -0
  248. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/afni/afni +0 -0
  249. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/afni/run_afni_docker.sh +0 -0
  250. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/ants/ResampleImage +0 -0
  251. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/ants/antsApplyTransforms +0 -0
  252. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
  253. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/ants/run_ants_docker.sh +0 -0
  254. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/freesurfer/mri_binarize +0 -0
  255. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/freesurfer/mri_mc +0 -0
  256. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/freesurfer/mri_pretess +0 -0
  257. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/freesurfer/mris_convert +0 -0
  258. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/freesurfer/run_freesurfer_docker.sh +0 -0
  259. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/fsl/applywarp +0 -0
  260. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/fsl/flirt +0 -0
  261. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/fsl/img2imgcoord +0 -0
  262. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/fsl/run_fsl_docker.sh +0 -0
  263. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/fsl/std2imgcoord +0 -0
  264. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/run_conda.bash +0 -0
  265. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/run_conda.zsh +0 -0
  266. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/run_venv.bash +0 -0
  267. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/res/run_venv.zsh +0 -0
  268. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/api/tests/test_decorators.py +0 -0
  269. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/__init__.py +0 -0
  270. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/__init__.pyi +0 -0
  271. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/cli.py +0 -0
  272. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/parser.py +0 -0
  273. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/py.typed +0 -0
  274. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/tests/data/gmd_mean.yaml +0 -0
  275. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/tests/data/gmd_mean_htcondor.yaml +0 -0
  276. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +0 -0
  277. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/__init__.py +0 -0
  278. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/__init__.pyi +0 -0
  279. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/__init__.py +0 -0
  280. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/__init__.pyi +0 -0
  281. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/__init__.py +0 -0
  282. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/__init__.pyi +0 -0
  283. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +0 -0
  284. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/camcan_vbm.py +0 -0
  285. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/ixi_vbm.py +0 -0
  286. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/py.typed +0 -0
  287. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py +0 -0
  288. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py +0 -0
  289. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -0
  290. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/tests/test_ucla.py +0 -0
  291. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py +0 -0
  292. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/ucla.py +0 -0
  293. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/datagrabbers/ukb_vbm.py +0 -0
  294. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/juseless/py.typed +0 -0
  295. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/configs/py.typed +0 -0
  296. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/__init__.py +0 -0
  297. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/__init__.pyi +0 -0
  298. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/_dispatch.py +0 -0
  299. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/coordinates/__init__.py +0 -0
  300. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/coordinates/__init__.pyi +0 -0
  301. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/coordinates/_ants_coordinates_warper.py +0 -0
  302. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/coordinates/_fsl_coordinates_warper.py +0 -0
  303. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/maps/__init__.py +0 -0
  304. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/maps/__init__.pyi +0 -0
  305. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/maps/_ants_maps_warper.py +0 -0
  306. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/maps/_fsl_maps_warper.py +0 -0
  307. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/maps/_maps.py +0 -0
  308. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/masks/__init__.py +0 -0
  309. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/masks/__init__.pyi +0 -0
  310. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/masks/_ants_mask_warper.py +0 -0
  311. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/masks/_fsl_mask_warper.py +0 -0
  312. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/masks/_masks.py +0 -0
  313. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/parcellations/__init__.py +0 -0
  314. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/parcellations/__init__.pyi +0 -0
  315. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/parcellations/_ants_parcellation_warper.py +0 -0
  316. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/parcellations/_fsl_parcellation_warper.py +0 -0
  317. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/parcellations/_parcellations.py +0 -0
  318. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/pipeline_data_registry_base.py +0 -0
  319. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/py.typed +0 -0
  320. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/tests/test_data_utils.py +0 -0
  321. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/tests/test_dispatch.py +0 -0
  322. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/data/utils.py +0 -0
  323. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/__init__.py +0 -0
  324. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/__init__.pyi +0 -0
  325. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/aomic/__init__.py +0 -0
  326. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/aomic/__init__.pyi +0 -0
  327. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/aomic/_types.py +0 -0
  328. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/aomic/id1000.py +0 -0
  329. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/aomic/piop1.py +0 -0
  330. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/aomic/piop2.py +0 -0
  331. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/aomic/py.typed +0 -0
  332. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/base.py +0 -0
  333. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/dmcc13_benchmark.py +0 -0
  334. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/hcp1200/__init__.py +0 -0
  335. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/hcp1200/__init__.pyi +0 -0
  336. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/hcp1200/datalad_hcp1200.py +0 -0
  337. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/hcp1200/hcp1200.py +0 -0
  338. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/hcp1200/py.typed +0 -0
  339. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/multiple.py +0 -0
  340. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/pattern_datalad.py +0 -0
  341. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/pattern_validation_mixin.py +0 -0
  342. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/py.typed +0 -0
  343. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/tests/test_base.py +0 -0
  344. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datagrabber/tests/test_pattern_validation_mixin.py +0 -0
  345. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datareader/__init__.py +0 -0
  346. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datareader/__init__.pyi +0 -0
  347. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datareader/default.py +0 -0
  348. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datareader/py.typed +0 -0
  349. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/datareader/tests/test_default_reader.py +0 -0
  350. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.codecov.yml +0 -0
  351. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.codespellignore +0 -0
  352. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  353. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +0 -0
  354. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  355. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +0 -0
  356. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.github/dependabot.yml +0 -0
  357. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.github/workflows/build.yml +0 -0
  358. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.github/workflows/code-style.yml +0 -0
  359. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.github/workflows/doc.yml +0 -0
  360. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.github/workflows/publish.yml +0 -0
  361. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.github/workflows/pytest.yml +0 -0
  362. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/.gitignore +0 -0
  363. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/LICENSE +0 -0
  364. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/README.md +0 -0
  365. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/__init__.py +0 -0
  366. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/_version.py +0 -0
  367. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/asymmetry.py +0 -0
  368. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/brainprint.py +0 -0
  369. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/cli/__init__.py +0 -0
  370. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/cli/help_text.py +0 -0
  371. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/cli/parser.py +0 -0
  372. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/cli/utils.py +0 -0
  373. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
  374. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/commands/sys_info.py +0 -0
  375. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/surfaces.py +0 -0
  376. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/utils/__init__.py +0 -0
  377. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/utils/_config.py +0 -0
  378. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
  379. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +0 -0
  380. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/brainprint/utils/utils.py +0 -0
  381. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/Makefile +0 -0
  382. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
  383. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +0 -0
  384. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +0 -0
  385. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +0 -0
  386. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/api/index.rst +0 -0
  387. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/conf.py +0 -0
  388. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/index.rst +0 -0
  389. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/links.inc +0 -0
  390. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/make.bat +0 -0
  391. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/doc/references.bib +0 -0
  392. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/pyproject.toml +0 -0
  393. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/BrainPrint/setup.py +0 -0
  394. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/__init__.py +0 -0
  395. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/__init__.pyi +0 -0
  396. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/.coveragerc +0 -0
  397. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/.gitattributes +0 -0
  398. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/.gitignore +0 -0
  399. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/.travis.yml +0 -0
  400. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/.vscode/launch.json +0 -0
  401. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/.vscode/settings.json +0 -0
  402. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/LICENSE.txt +0 -0
  403. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/MANIFEST.in +0 -0
  404. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/Makefile +0 -0
  405. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/README.rst +0 -0
  406. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/azure-pipelines.yml +0 -0
  407. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/h5io/__init__.py +0 -0
  408. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/h5io/_h5io.py +0 -0
  409. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/h5io/_version.py +0 -0
  410. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/h5io/chunked_array.py +0 -0
  411. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/h5io/chunked_list.py +0 -0
  412. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/h5io/tests/__init__.py +0 -0
  413. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/h5io/tests/test_chunked_array.py +0 -0
  414. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/h5io/tests/test_chunked_list.py +0 -0
  415. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/h5io/tests/test_io.py +0 -0
  416. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/setup.cfg +0 -0
  417. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/setup.py +0 -0
  418. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/h5io/versioneer.py +0 -0
  419. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/nilearn/__init__.py +0 -0
  420. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/nilearn/__init__.pyi +0 -0
  421. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/nilearn/junifer_connectivity_measure.py +0 -0
  422. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/nilearn/junifer_nifti_spheres_masker.py +0 -0
  423. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/nilearn/py.typed +0 -0
  424. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +0 -0
  425. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +0 -0
  426. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/external/py.typed +0 -0
  427. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/__init__.py +0 -0
  428. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/__init__.pyi +0 -0
  429. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/base.py +0 -0
  430. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/brainprint.py +0 -0
  431. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/__init__.py +0 -0
  432. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/__init__.pyi +0 -0
  433. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/complexity_base.py +0 -0
  434. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/hurst_exponent.py +0 -0
  435. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/multiscale_entropy_auc.py +0 -0
  436. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/perm_entropy.py +0 -0
  437. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/py.typed +0 -0
  438. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/range_entropy.py +0 -0
  439. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/range_entropy_auc.py +0 -0
  440. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/sample_entropy.py +0 -0
  441. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/tests/test_complexity_base.py +0 -0
  442. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/complexity/weighted_perm_entropy.py +0 -0
  443. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/ets_rss.py +0 -0
  444. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/__init__.py +0 -0
  445. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/__init__.pyi +0 -0
  446. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/_afni_falff.py +0 -0
  447. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/falff_base.py +0 -0
  448. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/falff_maps.py +0 -0
  449. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/falff_parcels.py +0 -0
  450. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/falff_spheres.py +0 -0
  451. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/falff/py.typed +0 -0
  452. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/__init__.py +0 -0
  453. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/__init__.pyi +0 -0
  454. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +0 -0
  455. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +0 -0
  456. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +0 -0
  457. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +0 -0
  458. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/functional_connectivity_base.py +0 -0
  459. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/functional_connectivity_maps.py +0 -0
  460. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/functional_connectivity_parcels.py +0 -0
  461. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/functional_connectivity_spheres.py +0 -0
  462. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/py.typed +0 -0
  463. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py +0 -0
  464. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/maps_aggregation.py +0 -0
  465. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/parcel_aggregation.py +0 -0
  466. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/py.typed +0 -0
  467. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/__init__.py +0 -0
  468. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/__init__.pyi +0 -0
  469. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/_afni_reho.py +0 -0
  470. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/_junifer_reho.py +0 -0
  471. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/py.typed +0 -0
  472. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/reho_base.py +0 -0
  473. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/reho_maps.py +0 -0
  474. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/reho_parcels.py +0 -0
  475. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/reho/reho_spheres.py +0 -0
  476. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/sphere_aggregation.py +0 -0
  477. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/__init__.py +0 -0
  478. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/__init__.pyi +0 -0
  479. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/py.typed +0 -0
  480. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/temporal_snr_base.py +0 -0
  481. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/temporal_snr_maps.py +0 -0
  482. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/temporal_snr_parcels.py +0 -0
  483. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/temporal_snr_spheres.py +0 -0
  484. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +0 -0
  485. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/tests/test_brainprint.py +0 -0
  486. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/tests/test_marker_utils.py +0 -0
  487. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/tests/test_markers_base.py +0 -0
  488. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/markers/utils.py +0 -0
  489. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/onthefly/__init__.py +0 -0
  490. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/onthefly/__init__.pyi +0 -0
  491. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/onthefly/_brainprint.py +0 -0
  492. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/onthefly/py.typed +0 -0
  493. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/onthefly/read_transform.py +0 -0
  494. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/onthefly/tests/test_read_transform.py +0 -0
  495. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/__init__.py +0 -0
  496. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/__init__.pyi +0 -0
  497. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/_data_object_dumper.py +0 -0
  498. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/marker_collection.py +0 -0
  499. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/pipeline_component_registry.py +0 -0
  500. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/pipeline_step_mixin.py +0 -0
  501. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/py.typed +0 -0
  502. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/tests/test_pipeline_component_registry.py +0 -0
  503. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/tests/test_update_meta_mixin.py +0 -0
  504. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/tests/test_workdir_manager.py +0 -0
  505. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/update_meta_mixin.py +0 -0
  506. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/utils.py +0 -0
  507. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/pipeline/workdir_manager.py +0 -0
  508. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/__init__.py +0 -0
  509. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/__init__.pyi +0 -0
  510. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/_temporal_filter.py +0 -0
  511. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/_temporal_slicer.py +0 -0
  512. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/base.py +0 -0
  513. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/confounds/__init__.py +0 -0
  514. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/confounds/__init__.pyi +0 -0
  515. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/confounds/fmriprep_confound_remover.py +0 -0
  516. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/confounds/py.typed +0 -0
  517. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/py.typed +0 -0
  518. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/smoothing/__init__.py +0 -0
  519. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/smoothing/__init__.pyi +0 -0
  520. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/smoothing/_afni_smoothing.py +0 -0
  521. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/smoothing/_fsl_smoothing.py +0 -0
  522. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/smoothing/_nilearn_smoothing.py +0 -0
  523. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/smoothing/py.typed +0 -0
  524. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/smoothing/smoothing.py +0 -0
  525. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/tests/test_preprocess_base.py +0 -0
  526. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/warping/__init__.py +0 -0
  527. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/warping/__init__.pyi +0 -0
  528. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/warping/_ants_warper.py +0 -0
  529. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/warping/_fsl_warper.py +0 -0
  530. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/preprocess/warping/py.typed +0 -0
  531. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/py.typed +0 -0
  532. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/stats.py +0 -0
  533. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/__init__.py +0 -0
  534. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/__init__.pyi +0 -0
  535. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/base.py +0 -0
  536. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/hdf5.py +0 -0
  537. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/pandas_base.py +0 -0
  538. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/py.typed +0 -0
  539. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/sqlite.py +0 -0
  540. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/tests/test_hdf5.py +0 -0
  541. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/tests/test_pandas_base.py +0 -0
  542. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/tests/test_sqlite.py +0 -0
  543. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/tests/test_storage_base.py +0 -0
  544. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/tests/test_utils.py +0 -0
  545. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/storage/utils.py +0 -0
  546. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/testing/__init__.py +0 -0
  547. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/testing/data/sub-0001_task-anticipation_acq-seq_desc-confounds_regressors.tsv +0 -0
  548. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/testing/py.typed +0 -0
  549. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/tests/test_main.py +0 -0
  550. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/tests/test_stats.py +0 -0
  551. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/typing/__init__.py +0 -0
  552. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/typing/__init__.pyi +0 -0
  553. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/typing/_typing.py +0 -0
  554. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/typing/py.typed +0 -0
  555. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/__init__.py +0 -0
  556. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/__init__.pyi +0 -0
  557. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/_config.py +0 -0
  558. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/_yaml.py +0 -0
  559. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/fs.py +0 -0
  560. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/helpers.py +0 -0
  561. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/py.typed +0 -0
  562. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/singleton.py +0 -0
  563. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/tests/test_config.py +0 -0
  564. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/tests/test_fs.py +0 -0
  565. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/tests/test_helpers.py +0 -0
  566. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer/utils/tests/test_logging.py +0 -0
  567. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer.egg-info/dependency_links.txt +0 -0
  568. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer.egg-info/entry_points.txt +0 -0
  569. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/junifer.egg-info/top_level.txt +0 -0
  570. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/justfile +0 -0
  571. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/setup.cfg +0 -0
  572. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/setup.py +0 -0
  573. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/tools/create_aomic1000_example_dataset.py +0 -0
  574. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/tools/create_aomicpiop1_example_dataset.py +0 -0
  575. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/tools/create_aomicpiop2_example_dataset.py +0 -0
  576. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/tools/create_bids_example_dataset.py +0 -0
  577. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/tools/create_bids_example_dataset_sessions.py +0 -0
  578. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/tools/create_dmcc13_benchmark_example_dataset.py +0 -0
  579. {junifer-0.0.8.dev211 → junifer-0.0.8.dev249}/tools/create_hcp1200_example_dataset.py +0 -0
@@ -17,3 +17,6 @@ __pycache__
17
17
 
18
18
  # Compiled Documentation
19
19
  docs/_build
20
+
21
+ # Local environments
22
+ .venv
@@ -0,0 +1,157 @@
1
+ name: Run Tests
2
+
3
+ on:
4
+ push:
5
+ # Branches are tested through their pull requests
6
+ branches:
7
+ - main
8
+ pull_request:
9
+ workflow_dispatch: {}
10
+
11
+ # Cancel superseded runs of the same branch / PR, except on main
12
+ concurrency:
13
+ group: tests-${{ github.event.pull_request.number || github.ref }}
14
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
15
+
16
+ jobs:
17
+ # Check whether the library changed, to skip the tests otherwise
18
+ # (e.g. on docs-only changes)
19
+ changes:
20
+ runs-on: ubuntu-latest
21
+ permissions:
22
+ contents: read
23
+ pull-requests: read
24
+ outputs:
25
+ code: ${{ steps.filter.outputs.code }}
26
+ steps:
27
+ - name: Checkout repository
28
+ uses: actions/checkout@v7
29
+ if: github.event_name != 'pull_request'
30
+ - name: Check for library changes
31
+ uses: dorny/paths-filter@v3
32
+ id: filter
33
+ with:
34
+ filters: |
35
+ code:
36
+ - 'junifer/**'
37
+ - '.github/workflows/ci.yml'
38
+ - 'tox.ini'
39
+ - 'pyproject.toml'
40
+ - 'uv.lock'
41
+ - 'codecov.yml'
42
+
43
+ # Tests that need testing datasets, junifer-data or AFNI / ANTs / FSL
44
+ run-tests-external:
45
+ needs: changes
46
+ if: needs.changes.outputs.code == 'true' || github.event_name == 'workflow_dispatch'
47
+ runs-on: [self-hosted, linux, x64, data-v7]
48
+ strategy:
49
+ fail-fast: false
50
+ matrix:
51
+ # Only the version used for coverage; all versions run on the rest
52
+ python-version: ['3.13']
53
+ # https://github.com/actions/setup-python/issues/1013#issuecomment-2642078401
54
+ steps:
55
+ - name: Check ANTs
56
+ run: |
57
+ echo "Using ANTs : $(antsRegistration --version)"
58
+ - name: Check AFNI
59
+ run: |
60
+ echo "Using AFNI : $(afni --version)"
61
+ - name: Check FSL
62
+ run: |
63
+ echo "Using FSL : $(flirt -version)"
64
+ - name: Check tooling
65
+ run: |
66
+ echo "HOME=$HOME"
67
+ which git-annex && git annex version | head -1
68
+ ls -d "$HOME"/junifer_data/* && cat "$HOME/junifer-data-version"
69
+ - name: Checkout repository
70
+ uses: actions/checkout@v7
71
+ with:
72
+ submodules: true
73
+ - name: Set up Python ${{ matrix.python-version }}
74
+ uses: actions/setup-python@v7
75
+ with:
76
+ python-version: ${{ matrix.python-version }}
77
+ - name: Set up uv
78
+ uses: astral-sh/setup-uv@v10.2.0
79
+ - name: Install tox
80
+ # tox-uv makes tox create the test environments with uv
81
+ run: |
82
+ uv tool install tox --with tox-uv --with tox-gh-actions
83
+ - name: Configure Git for DataLad
84
+ run: |
85
+ git config --global user.email "junifer-runner@github.com"
86
+ git config --global user.name "GitHub Runner"
87
+ - name: Test with tox
88
+ # https://github.com/actions/checkout/issues/1169#issuecomment-2291682583
89
+ run: |
90
+ git config --global --add safe.directory $(pwd)
91
+ tox -- -m external
92
+ - name: Upload coverage to Codecov
93
+ uses: codecov/codecov-action@v7
94
+ with:
95
+ token: ${{ secrets.CODECOV_TOKEN }}
96
+ fail_ci_if_error: true
97
+ flags: junifer
98
+ if: success() && matrix.python-version == '3.13'
99
+
100
+ # All the other tests
101
+ run-tests:
102
+ needs: changes
103
+ if: needs.changes.outputs.code == 'true' || github.event_name == 'workflow_dispatch'
104
+ runs-on: ubuntu-latest
105
+ strategy:
106
+ fail-fast: false
107
+ matrix:
108
+ python-version: ['3.10', '3.11', '3.12', '3.13', '3.14']
109
+ steps:
110
+ - name: Checkout repository
111
+ uses: actions/checkout@v7
112
+ with:
113
+ submodules: true
114
+ - name: Install git-annex
115
+ run: |
116
+ sudo apt-get update
117
+ sudo apt-get install -y git-annex
118
+ - name: Set up Python ${{ matrix.python-version }}
119
+ uses: actions/setup-python@v7
120
+ with:
121
+ python-version: ${{ matrix.python-version }}
122
+ - name: Set up uv
123
+ uses: astral-sh/setup-uv@v10.2.0
124
+ - name: Install tox
125
+ # tox-uv makes tox create the test environments with uv
126
+ run: |
127
+ uv tool install tox --with tox-uv --with tox-gh-actions
128
+ - name: Configure Git for DataLad
129
+ run: |
130
+ git config --global user.email "junifer-runner@github.com"
131
+ git config --global user.name "GitHub Runner"
132
+ - name: Test with tox
133
+ run: |
134
+ tox -- -m "not external"
135
+ - name: Upload coverage to Codecov
136
+ uses: codecov/codecov-action@v7
137
+ with:
138
+ token: ${{ secrets.CODECOV_TOKEN }}
139
+ fail_ci_if_error: true
140
+ flags: junifer
141
+ if: success() && matrix.python-version == '3.13'
142
+
143
+ # Single status to require in branch protection: passes when the tests
144
+ # passed or were skipped because the library did not change
145
+ tests:
146
+ needs: [changes, run-tests-external, run-tests]
147
+ if: always()
148
+ runs-on: ubuntu-latest
149
+ steps:
150
+ - name: Check test results
151
+ if: >-
152
+ contains(needs.*.result, 'failure') ||
153
+ contains(needs.*.result, 'cancelled')
154
+ run: |
155
+ echo "Some test jobs failed or were cancelled"
156
+ exit 1
157
+ - run: echo "Tests passed or were not needed"
@@ -1,12 +1,14 @@
1
1
  name: Docker
2
2
 
3
3
  on:
4
+ # Publish an image for every release
4
5
  push:
5
- branches: [ "main" ]
6
- paths: [ "Dockerfile" ]
6
+ tags:
7
+ - v*
8
+ # Only test that the image builds
7
9
  pull_request:
8
10
  branches: [ "main" ]
9
- paths: [ "Dockerfile" ]
11
+ paths: [ "Dockerfile", ".github/workflows/docker-publish.yml" ]
10
12
  workflow_dispatch: {}
11
13
 
12
14
  env:
@@ -33,6 +35,10 @@ jobs:
33
35
  - run: df -h
34
36
  - name: Checkout repository
35
37
  uses: actions/checkout@v7
38
+ with:
39
+ # Tags are needed for the junifer version (setuptools-scm)
40
+ fetch-depth: 0
41
+ submodules: true
36
42
  - name: Install cosign
37
43
  if: github.event_name != 'pull_request'
38
44
  uses: sigstore/cosign-installer@v4.1.2
@@ -50,6 +56,12 @@ jobs:
50
56
  uses: docker/metadata-action@v6.2.0
51
57
  with:
52
58
  images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
59
+ # vX.Y.Z -> X.Y.Z, X.Y and latest; branch name for manual runs
60
+ tags: |
61
+ type=semver,pattern={{version}}
62
+ type=semver,pattern={{major}}.{{minor}}
63
+ type=ref,event=branch
64
+ type=ref,event=pr
53
65
  - name: Build and push Docker image
54
66
  id: build-and-push
55
67
  uses: docker/build-push-action@v7.3.0
@@ -1,11 +1,7 @@
1
1
  name: Build and preview docs
2
2
 
3
3
  on:
4
- push:
5
- branches-ignore:
6
- - 'main'
7
- tags-ignore:
8
- - v*
4
+ # Docs for main and tags are built by docs.yml
9
5
  pull_request:
10
6
  types:
11
7
  - opened
@@ -13,35 +9,25 @@ on:
13
9
  - synchronize
14
10
  - closed
15
11
 
16
- concurrency: preview-${{ github.ref }}
12
+ concurrency:
13
+ group: preview-${{ github.ref }}
14
+ cancel-in-progress: true
17
15
 
18
16
  jobs:
19
17
  build-docs:
20
- # https://github.com/actions/setup-python/issues/1013#issuecomment-2642078401
21
- runs-on: ubuntu-22.04
18
+ runs-on: [self-hosted, linux, x64, data-v7]
22
19
  permissions:
23
20
  # Needed for preview deploy
24
21
  pull-requests: write
25
22
  contents: write
26
- # Use custom docs CI image
27
- container: ghcr.io/juaml/junifer-docs:main
28
23
  steps:
29
24
  - name: Check ANTs
30
25
  run: |
31
26
  echo "Using ANTs : $(antsRegistration --version)"
32
- - name: Install system dependencies
33
- # actions/checkout fails to identify Git as it's not in the CI image
27
+ - name: Check tooling
34
28
  run: |
35
- apt-get -qq update
36
- apt-get -qq install -y \
37
- git \
38
- git-annex \
39
- make \
40
- jq
41
- - name: Copy junifer-data directory
42
- run: |
43
- mkdir -p $HOME/junifer_data/v7
44
- cp -ar /root/junifer_data/v7/. $HOME/junifer_data/v7/
29
+ which make git-annex jq
30
+ ls -d "$HOME"/junifer_data/v7
45
31
  - name: Checkout repository
46
32
  uses: actions/checkout@v7
47
33
  with:
@@ -51,10 +37,11 @@ jobs:
51
37
  uses: actions/setup-python@v7
52
38
  with:
53
39
  python-version: "3.12"
40
+ - name: Set up uv
41
+ uses: astral-sh/setup-uv@v10.2.0
54
42
  - name: Install Python dependencies
55
43
  run: |
56
- python -m pip install --upgrade pip setuptools wheel
57
- python -m pip install -e ".[docs,neurokit2]"
44
+ uv pip install --system -e ".[docs,neurokit2]"
58
45
  - name: Configure Git for DataLad
59
46
  run: |
60
47
  git config --global user.email "junifer-runner@github.com"
@@ -12,27 +12,15 @@ on:
12
12
 
13
13
  jobs:
14
14
  build-docs:
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
+ runs-on: [self-hosted, linux, x64, data-v7]
19
16
  steps:
20
17
  - name: Check ANTs
21
18
  run: |
22
19
  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
20
+ - name: Check tooling
25
21
  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/v7
35
- cp -ar /root/junifer_data/v7/. $HOME/junifer_data/v7/
22
+ which make git-annex jq
23
+ ls -d "$HOME"/junifer_data/v7
36
24
  - name: Checkout repository
37
25
  uses: actions/checkout@v7
38
26
  with:
@@ -43,11 +31,12 @@ jobs:
43
31
  uses: actions/setup-python@v7
44
32
  with:
45
33
  python-version: "3.12"
34
+ - name: Set up uv
35
+ uses: astral-sh/setup-uv@v10.2.0
46
36
  - name: Install Python dependencies
47
37
  run: |
48
- python -m pip install --upgrade pip setuptools wheel
49
- python -m pip install -e ".[docs,neurokit2]"
50
- python -m pip install git+https://github.com/dls-controls/sphinx-multiversion@only-arg
38
+ uv pip install --system -e ".[docs,neurokit2]"
39
+ uv pip install --system git+https://github.com/dls-controls/sphinx-multiversion@only-arg
51
40
  - name: Configure Git for DataLad
52
41
  run: |
53
42
  git config --global user.email "junifer-runner@github.com"
@@ -63,7 +52,7 @@ jobs:
63
52
  # Use the args we normally pass to sphinx-build, but run sphinx-multiversion
64
53
  # https://github.com/actions/checkout/issues/1169#issuecomment-2291682583
65
54
  run: |
66
- git config --system --add safe.directory $(pwd)
55
+ git config --global --add safe.directory $(pwd)
67
56
  make -C docs/ html
68
57
  touch docs/_build/.nojekyll
69
58
  cp docs/redirect.html docs/_build/index.html
@@ -0,0 +1,29 @@
1
+ name: Lint
2
+
3
+ on:
4
+ - push
5
+ - pull_request
6
+
7
+ # Cancel superseded runs of the same branch / PR, except on main
8
+ concurrency:
9
+ group: lint-${{ github.event.pull_request.number || github.ref }}
10
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
11
+
12
+ jobs:
13
+ lint:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v7
17
+ - name: Install Python
18
+ uses: actions/setup-python@v7
19
+ with:
20
+ python-version: "3.x"
21
+ - name: Set up uv
22
+ uses: astral-sh/setup-uv@v10.2.0
23
+ - name: Install tox
24
+ run: |
25
+ uv tool install tox --with tox-uv
26
+ - name: Run ruff
27
+ run: uvx "ruff>=0.1.0" check --output-format=github .
28
+ - name: Run codespell
29
+ run: tox -e codespell
@@ -26,13 +26,11 @@ jobs:
26
26
  uses: actions/setup-python@v7
27
27
  with:
28
28
  python-version: "3.x"
29
- - name: Install build
30
- run: |
31
- python -m pip install --upgrade pip
32
- python -m pip install build
29
+ - name: Set up uv
30
+ uses: astral-sh/setup-uv@v10.2.0
33
31
  - name: Build package
34
32
  run:
35
- python -m build
33
+ uv build
36
34
  - name: Publish package to PyPI
37
35
  uses: pypa/gh-action-pypi-publish@release/v1
38
36
  - name: Make release on GitHub
@@ -0,0 +1,82 @@
1
+ # syntax=docker/dockerfile:1
2
+
3
+ FROM ubuntu:24.04
4
+
5
+ ENV DEBIAN_FRONTEND=noninteractive \
6
+ LANG=C.UTF-8 LC_ALL=C.UTF-8
7
+
8
+ LABEL org.opencontainers.image.source=https://github.com/juaml/junifer \
9
+ org.opencontainers.image.description="Junifer container image" \
10
+ org.opencontainers.image.licenses=AGPL-3.0-only \
11
+ BaseImage="ubuntu:24.04"
12
+
13
+ RUN apt-get update && \
14
+ apt-get install -y --no-install-recommends \
15
+ # Base tooling
16
+ ca-certificates curl git file make build-essential \
17
+ python3 python3-venv python3-dev python-is-python3 \
18
+ # Data
19
+ git-annex \
20
+ # ANTs runtime
21
+ bc \
22
+ # AFNI runtime (non-GUI subset of AFNI's Ubuntu 24 list)
23
+ tcsh gsl-bin libgsl27 libglu1-mesa libglw1-mesa libxm4 libjpeg62 \
24
+ libxmu6 libxpm4 libxi6 libxext6 libglib2.0-0t64 libgomp1 \
25
+ netpbm xvfb xfonts-base python3-numpy python3-matplotlib r-base \
26
+ # FSL runtime
27
+ dc libquadmath0 \
28
+ && rm -rf /var/lib/apt/lists/*
29
+
30
+ # --- Heavy, rarely-changing neuroimaging tools ---
31
+
32
+ # ANTs
33
+ COPY --from=antsx/ants:latest /opt/ants /opt/ants
34
+ ENV PATH="/opt/ants/bin:$PATH" \
35
+ LD_LIBRARY_PATH="/opt/ants/lib"
36
+
37
+ # AFNI — native Ubuntu 24.04 build
38
+ RUN mkdir -p /opt/afni \
39
+ && curl -fsSL https://afni.nimh.nih.gov/pub/dist/tgz/linux_ubuntu_24_64.tgz \
40
+ | tar -xz -C /opt/afni --strip-components=1
41
+ ENV PATH="/opt/afni:$PATH"
42
+
43
+ # FSL
44
+ RUN curl -fsSL https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/fslinstaller.py -o /tmp/fslinstaller.py \
45
+ && (python3 /tmp/fslinstaller.py -d /opt/fsl/ --skip_registration \
46
+ || { cat /root/fsl_installation_*.log; exit 1; }) \
47
+ && rm -rf /opt/fsl/pkgs /tmp/fslinstaller.py /root/fsl_installation_*.log \
48
+ && find /opt/fsl -name '__pycache__' -prune -exec rm -rf {} +
49
+ ENV FSLDIR=/opt/fsl \
50
+ FSLOUTPUTTYPE=NIFTI_GZ \
51
+ PATH="/opt/fsl/share/fsl/bin:$PATH"
52
+
53
+ # --- Python environment (the system Python is externally managed) ---
54
+ RUN python3 -m venv /opt/junifer \
55
+ && /opt/junifer/bin/pip install --no-cache-dir --upgrade pip setuptools wheel \
56
+ && /opt/junifer/bin/pip install --no-cache-dir datalad
57
+ ENV PATH="/opt/junifer/bin:$PATH"
58
+
59
+ # --- junifer-data, version and commit taken from junifer itself ---
60
+ COPY junifer/data/utils.py /tmp/junifer_data_utils.py
61
+ RUN set -eux; \
62
+ version="v$(sed -n 's/^JUNIFER_DATA_VERSION = "\(.*\)"/\1/p' /tmp/junifer_data_utils.py)"; \
63
+ hexsha="$(sed -n 's/^JUNIFER_DATA_HEXSHA = "\(.*\)"/\1/p' /tmp/junifer_data_utils.py)"; \
64
+ test "$version" != "v" && test -n "$hexsha"; \
65
+ git config --global user.name "junifer"; \
66
+ git config --global user.email "junifer@localhost"; \
67
+ datalad clone https://cerebra.fz-juelich.de/junifer/junifer-data.git "$HOME/junifer_data/${version}"; \
68
+ cd "$HOME/junifer_data/${version}"; \
69
+ git checkout -q "${version}"; \
70
+ test "$(git rev-parse HEAD)" = "$hexsha"; \
71
+ datalad get -r -J 4 .; \
72
+ test -z "$(git status --porcelain)"; \
73
+ git log -1 --format='junifer-data %D @ %H'; \
74
+ echo "${version}" > "$HOME/junifer-data-version"; \
75
+ rm /tmp/junifer_data_utils.py
76
+
77
+ # --- junifer from the build context (changes most often → last) ---
78
+ # The build context must include .git so the version matches the release tag
79
+ COPY . /tmp/junifer
80
+ RUN python -m pip install --no-cache-dir "/tmp/junifer[all]" \
81
+ && rm -rf /tmp/junifer \
82
+ && junifer --version
@@ -0,0 +1,134 @@
1
+ # syntax=docker/dockerfile:1
2
+
3
+ FROM ubuntu:24.04
4
+
5
+ ENV DEBIAN_FRONTEND=noninteractive \
6
+ LANG=C.UTF-8 LC_ALL=C.UTF-8
7
+
8
+ LABEL org.opencontainers.image.source=https://github.com/juaml/junifer \
9
+ org.opencontainers.image.description="Junifer CI container image" \
10
+ org.opencontainers.image.licenses=AGPL-3.0-only \
11
+ Author="Fede Raimondo" \
12
+ Email="f.raimondo@fz-juelich.de" \
13
+ GitHub="https://github.com/fraimondo" \
14
+ BaseImage="ubuntu:24.04"
15
+
16
+ RUN apt-get update && \
17
+ apt-get install -y --no-install-recommends \
18
+ # Base / runner tooling
19
+ ca-certificates curl wget git jq sudo unzip vim file make gnupg \
20
+ xz-utils bzip2 zstd \
21
+ python3 python3-venv python-is-python3 \
22
+ # Data
23
+ git-annex \
24
+ # ANTs runtime
25
+ bc \
26
+ # AFNI runtime (non-GUI subset of AFNI's Ubuntu 24 list)
27
+ tcsh gsl-bin libgsl27 libglu1-mesa libglw1-mesa libxm4 libjpeg62 \
28
+ libxmu6 libxpm4 libxi6 libxext6 libglib2.0-0t64 libgomp1 \
29
+ netpbm xvfb xfonts-base python3-numpy python3-matplotlib r-base \
30
+ # FSL runtime
31
+ dc libquadmath0 \
32
+ && rm -rf /var/lib/apt/lists/*
33
+
34
+ # DataLad (not packaged for Ubuntu 24.04) in its own venv
35
+ RUN python3 -m venv /opt/datalad \
36
+ && /opt/datalad/bin/pip install --no-cache-dir datalad \
37
+ && ln -s /opt/datalad/bin/datalad /usr/local/bin/datalad \
38
+ && datalad --version
39
+
40
+ # Ubuntu 24.04 ships a default 'ubuntu' user (uid 1000); give that uid to our user
41
+ RUN userdel -r ubuntu 2>/dev/null || true; \
42
+ useradd -m -u 1000 -s /bin/bash docker
43
+
44
+ # --- Heavy, rarely-changing neuroimaging tools ---
45
+
46
+ # ANTs
47
+ COPY --from=antsx/ants:latest /opt/ants /opt/ants
48
+ ENV PATH="/opt/ants/bin:$PATH" \
49
+ LD_LIBRARY_PATH="/opt/ants/lib"
50
+
51
+ # AFNI — native Ubuntu 24.04 build
52
+ RUN mkdir -p /opt/afni \
53
+ && curl -fsSL https://afni.nimh.nih.gov/pub/dist/tgz/linux_ubuntu_24_64.tgz \
54
+ | tar -xz -C /opt/afni --strip-components=1
55
+ ENV PATH="/opt/afni:$PATH"
56
+
57
+ # FSL
58
+ RUN curl -fsSL https://fsl.fmrib.ox.ac.uk/fsldownloads/fslconda/releases/fslinstaller.py -o /tmp/fslinstaller.py \
59
+ && (python3 /tmp/fslinstaller.py -d /opt/fsl/ --skip_registration \
60
+ || { cat /root/fsl_installation_*.log; exit 1; }) \
61
+ && rm -rf /opt/fsl/pkgs /tmp/fslinstaller.py /root/fsl_installation_*.log \
62
+ && find /opt/fsl -name '__pycache__' -prune -exec rm -rf {} +
63
+ ENV FSLDIR=/opt/fsl \
64
+ FSLOUTPUTTYPE=NIFTI_GZ \
65
+ PATH="/opt/fsl/share/fsl/bin:$PATH"
66
+
67
+ # --- Hosted tool cache, pre-populated (no downloads at job time) ---
68
+ ARG PYTHON_VERSIONS="3.10 3.11 3.12 3.13 3.14"
69
+ ARG UBUNTU_TAG=24.04
70
+ ENV AGENT_TOOLSDIRECTORY=/opt/hostedtoolcache
71
+ RUN set -eux; \
72
+ mkdir -p "$AGENT_TOOLSDIRECTORY"; \
73
+ curl -fsSL https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json -o /tmp/manifest.json; \
74
+ filter='[ .[] | select(.stable and (.version | startswith($v + "."))) | .files[] | select(.platform=="linux" and .platform_version==$os and .arch=="x64") ][0].download_url'; \
75
+ for v in $PYTHON_VERSIONS; do \
76
+ url=$(jq -r --arg v "$v" --arg os "$UBUNTU_TAG" "$filter" /tmp/manifest.json); \
77
+ [ "$url" != "null" ] || { echo "No $v build for Ubuntu $UBUNTU_TAG"; exit 1; }; \
78
+ tmp=$(mktemp -d); \
79
+ curl -fsSL "$url" | tar -xz -C "$tmp"; \
80
+ (cd "$tmp" && bash ./setup.sh); \
81
+ rm -rf "$tmp"; \
82
+ done; \
83
+ rm /tmp/manifest.json; \
84
+ find "$AGENT_TOOLSDIRECTORY" -name '__pycache__' -prune -exec rm -rf {} +; \
85
+ chown -R docker:docker "$AGENT_TOOLSDIRECTORY"; \
86
+ ls "$AGENT_TOOLSDIRECTORY/Python"
87
+
88
+ # --- GitHub Actions runner ---
89
+ ARG RUNNER_VERSION
90
+ LABEL RunnerVersion=${RUNNER_VERSION}
91
+ RUN mkdir -p /home/docker/actions-runner && cd /home/docker/actions-runner \
92
+ && curl -fsSL -o runner.tar.gz \
93
+ https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz \
94
+ && tar xzf runner.tar.gz && rm runner.tar.gz \
95
+ && ./bin/installdependencies.sh \
96
+ && rm -rf /var/lib/apt/lists/* \
97
+ && chown -R docker:docker /home/docker
98
+
99
+ COPY --chmod=755 scripts/start.sh /start.sh
100
+
101
+ USER docker
102
+ WORKDIR /home/docker
103
+
104
+ # --- Test data (changes most often → last), cloned as the runner user ---
105
+ ARG DATA_VERSION
106
+ RUN set -eux; \
107
+ git config --global user.name "junifer-ci"; \
108
+ git config --global user.email "junifer-ci@localhost"; \
109
+ datalad clone https://cerebra.fz-juelich.de/junifer/junifer-data.git "$HOME/junifer_data/${DATA_VERSION}"; \
110
+ cd "$HOME/junifer_data/${DATA_VERSION}"; \
111
+ git checkout -q "${DATA_VERSION}"; \
112
+ datalad get -r -J 4 .; \
113
+ test -z "$(git status --porcelain)"; \
114
+ git log -1 --format='junifer-data %D @ %H'; \
115
+ echo "${DATA_VERSION}" > "$HOME/junifer-data-version"
116
+
117
+ # --- nilearn datasets used by junifer.testing (no downloads at test time) ---
118
+ ARG NILEARN_VERSION=0.10.4
119
+ RUN <<'EOF'
120
+ set -eux
121
+ python3 -m venv /tmp/nilearn-venv
122
+ /tmp/nilearn-venv/bin/pip install --no-cache-dir -q "nilearn==${NILEARN_VERSION}" "numpy<2.4"
123
+ /tmp/nilearn-venv/bin/python - <<'PY'
124
+ from nilearn import datasets
125
+ datasets.fetch_oasis_vbm(n_subjects=10)
126
+ datasets.fetch_development_fmri(n_subjects=10, reduce_confounds=True, age_group="both")
127
+ datasets.fetch_spm_auditory()
128
+ datasets.fetch_adhd(n_subjects=10)
129
+ PY
130
+ rm -rf /tmp/nilearn-venv
131
+ du -sh "$HOME/nilearn_data"
132
+ EOF
133
+
134
+ ENTRYPOINT ["/start.sh"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: junifer
3
- Version: 0.0.8.dev211
3
+ Version: 0.0.8.dev249
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>
@@ -42,9 +42,9 @@ Requires-Dist: tqdm<4.68.0,>=4.66.1
42
42
  Requires-Dist: templateflow<25.0.0,>=23.0.0
43
43
  Requires-Dist: lapy<2.0.0,>=1.0.0
44
44
  Requires-Dist: lazy_loader==0.4
45
- Requires-Dist: importlib_metadata; python_version < "3.9"
45
+ Requires-Dist: importlib_metadata; python_version < "3.11"
46
46
  Requires-Dist: looseversion==1.3.0; python_version >= "3.12"
47
- Requires-Dist: junifer_data==1.3.0
47
+ Requires-Dist: junifer-data>=1.4.0
48
48
  Requires-Dist: structlog<26.0.0,>=25.0.0
49
49
  Requires-Dist: pydantic>=2.11.4
50
50
  Requires-Dist: aenum<3.2.0,>=3.1.0
@@ -69,7 +69,7 @@ Requires-Dist: sphinx<8.4.0,>=7.3.0; extra == "docs"
69
69
  Requires-Dist: sphinx-gallery<0.20.0,>=0.17.0; extra == "docs"
70
70
  Requires-Dist: furo<2025.10.0,>=2024.4.27; extra == "docs"
71
71
  Requires-Dist: numpydoc<=1.9.0,>=1.6.0; extra == "docs"
72
- Requires-Dist: julearn==0.3.3; extra == "docs"
72
+ Requires-Dist: julearn==0.3.5; extra == "docs"
73
73
  Requires-Dist: sphinx-copybutton<0.5.3,>=0.5.1; extra == "docs"
74
74
  Requires-Dist: towncrier<=25.8.0,>=24.7.0; extra == "docs"
75
75
  Requires-Dist: sphinxcontrib-mermaid<=1.0.0,>=0.8.1; extra == "docs"
@@ -1,5 +1,7 @@
1
1
  codecov:
2
- notify: {}
2
+ notify:
3
+ # Wait for the coverage of both test jobs (external and the rest)
4
+ after_n_builds: 2
3
5
  require_ci_to_pass: false
4
6
 
5
7
  comment: # this is a top-level key
@@ -7,6 +9,7 @@ comment: # this is a top-level key
7
9
  behavior: default
8
10
  require_changes: false # if true: only post the comment if coverage changes
9
11
  require_base: no # [yes :: must have a base report to post]
12
+ after_n_builds: 2 # wait for both test jobs before commenting
10
13
 
11
14
  coverage:
12
15
  status:
@@ -27,13 +30,3 @@ flag_management:
27
30
  - type: patch
28
31
  target: 95%
29
32
  threshold: 1%
30
- - name: docs
31
- paths:
32
- - docs/
33
- statuses:
34
- - type: project
35
- target: 100%
36
- threshold: 1%
37
- - type: patch
38
- target: 95%
39
- threshold: 1%
@@ -1 +1 @@
1
- Fix type issues and update model configs for :class:`.BaseDataGrabber`, :class:`.BasePreprocessor`, :class:`.BaseMarker` and :class:`.BaseStorage` by `Synchon Mandal`_
1
+ Fix type issues and update model configs for :class:`.BaseDataGrabber`, :class:`.BasePreprocessor`, :class:`.BaseMarker` and :class:`.BaseFeatureStorage` by `Synchon Mandal`_
@@ -0,0 +1 @@
1
+ Fix ``get_versions`` (used by ``junifer wtf``) missing packages without ``top_level.txt`` (e.g. ``looseversion``, ``typing_extensions``) on Python 3.10 by using ``importlib_metadata`` for Python < 3.11 by `Fede Raimondo`_
@@ -0,0 +1 @@
1
+ Fix :meth:`.PatternDataGrabber.get_elements` returning elements that miss some of the data types when several types use all the replacements by `Fede Raimondo`_
@@ -0,0 +1 @@
1
+ Sanitise the VOI names of built-in coordinates by replacing spaces with ``_`` and adding a ``-{i}`` suffix to duplicated names, which changes the feature names of e.g. ``Dosenbach`` and ``Seitzman2018`` by `Fede Raimondo`_
@@ -0,0 +1 @@
1
+ Drop the files fetched by :class:`.DataladDataGrabber` in a single call and without checking their availability on the remote, making cleanup much faster by `Fede Raimondo`_