junifer 0.0.7.dev332__py3-none-any.whl → 0.0.8__py3-none-any.whl

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 (293) hide show
  1. junifer/_version.py +9 -19
  2. junifer/api/__init__.pyi +17 -2
  3. junifer/api/functions.py +222 -39
  4. junifer/api/queue_context/__init__.pyi +11 -3
  5. junifer/api/queue_context/gnu_parallel_local_adapter.py +81 -120
  6. junifer/api/queue_context/htcondor_adapter.py +118 -181
  7. junifer/api/queue_context/queue_context_adapter.py +51 -7
  8. junifer/api/queue_context/tests/test_gnu_parallel_local_adapter.py +10 -35
  9. junifer/api/queue_context/tests/test_htcondor_adapter.py +13 -50
  10. junifer/api/res/fsl/run_fsl_docker.sh +4 -0
  11. junifer/api/tests/test_functions.py +863 -36
  12. junifer/cli/__init__.py +1 -7
  13. junifer/cli/cli.py +41 -22
  14. junifer/cli/parser.py +23 -147
  15. junifer/cli/tests/data/gmd_mean.yaml +6 -6
  16. junifer/cli/tests/data/gmd_mean_htcondor.yaml +6 -5
  17. junifer/cli/tests/data/partly_cloudy_agg_mean_tian.yml +1 -0
  18. junifer/cli/tests/test_cli.py +120 -4
  19. junifer/cli/tests/test_cli_utils.py +23 -6
  20. junifer/cli/utils.py +14 -9
  21. junifer/configs/__init__.py +5 -0
  22. junifer/configs/__init__.pyi +0 -0
  23. junifer/configs/juseless/datagrabbers/__init__.pyi +4 -2
  24. junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +18 -24
  25. junifer/configs/juseless/datagrabbers/camcan_vbm.py +20 -27
  26. junifer/configs/juseless/datagrabbers/ixi_vbm.py +44 -52
  27. junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py +0 -7
  28. junifer/configs/juseless/datagrabbers/tests/test_ucla.py +2 -19
  29. junifer/configs/juseless/datagrabbers/ucla.py +111 -104
  30. junifer/configs/juseless/datagrabbers/ukb_vbm.py +19 -25
  31. junifer/configs/py.typed +0 -0
  32. junifer/conftest.py +63 -24
  33. junifer/data/_dispatch.py +9 -19
  34. junifer/data/coordinates/_ants_coordinates_warper.py +4 -1
  35. junifer/data/coordinates/_coordinates.py +51 -6
  36. junifer/data/coordinates/_fsl_coordinates_warper.py +4 -1
  37. junifer/data/coordinates/tests/test_coordinates.py +15 -3
  38. junifer/data/coordinates/tests/test_coordinates_names.py +37 -0
  39. junifer/data/maps/_ants_maps_warper.py +18 -12
  40. junifer/data/maps/_fsl_maps_warper.py +7 -3
  41. junifer/data/maps/_maps.py +12 -8
  42. junifer/data/maps/tests/test_maps.py +13 -21
  43. junifer/data/masks/_ants_mask_warper.py +18 -12
  44. junifer/data/masks/_fsl_mask_warper.py +7 -3
  45. junifer/data/masks/_masks.py +15 -12
  46. junifer/data/masks/tests/test_masks.py +20 -17
  47. junifer/data/parcellations/_ants_parcellation_warper.py +18 -12
  48. junifer/data/parcellations/_fsl_parcellation_warper.py +7 -5
  49. junifer/data/parcellations/_parcellations.py +125 -91
  50. junifer/data/parcellations/tests/test_parcellations.py +122 -1
  51. junifer/data/template_spaces.py +117 -50
  52. junifer/data/tests/test_template_spaces.py +10 -7
  53. junifer/data/utils.py +10 -8
  54. junifer/datagrabber/__init__.pyi +38 -5
  55. junifer/datagrabber/aomic/__init__.pyi +8 -1
  56. junifer/datagrabber/aomic/_types.py +22 -0
  57. junifer/datagrabber/aomic/id1000.py +193 -183
  58. junifer/datagrabber/aomic/piop1.py +215 -259
  59. junifer/datagrabber/aomic/piop2.py +211 -244
  60. junifer/datagrabber/aomic/tests/test_id1000.py +70 -53
  61. junifer/datagrabber/aomic/tests/test_piop1.py +98 -102
  62. junifer/datagrabber/aomic/tests/test_piop2.py +88 -85
  63. junifer/datagrabber/base.py +253 -79
  64. junifer/datagrabber/datalad_base.py +127 -76
  65. junifer/datagrabber/dmcc13_benchmark.py +204 -289
  66. junifer/datagrabber/hcp1200/__init__.pyi +7 -2
  67. junifer/datagrabber/hcp1200/datalad_hcp1200.py +61 -40
  68. junifer/datagrabber/hcp1200/hcp1200.py +151 -164
  69. junifer/datagrabber/hcp1200/tests/test_hcp1200.py +116 -128
  70. junifer/datagrabber/multiple.py +183 -63
  71. junifer/datagrabber/pattern.py +358 -227
  72. junifer/datagrabber/pattern_datalad.py +84 -124
  73. junifer/datagrabber/pattern_validation_mixin.py +22 -50
  74. junifer/datagrabber/tests/test_base.py +17 -4
  75. junifer/datagrabber/tests/test_datalad_base.py +20 -27
  76. junifer/datagrabber/tests/test_dmcc13_benchmark.py +110 -122
  77. junifer/datagrabber/tests/test_multiple.py +293 -31
  78. junifer/datagrabber/tests/test_pattern.py +577 -18
  79. junifer/datagrabber/tests/test_pattern_datalad.py +177 -107
  80. junifer/datagrabber/tests/test_pattern_validation_mixin.py +9 -51
  81. junifer/datareader/default.py +8 -5
  82. junifer/datareader/tests/test_default_reader.py +1 -1
  83. junifer/external/BrainPrint/.codecov.yml +2 -0
  84. junifer/external/BrainPrint/.codespellignore +2 -0
  85. junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/bug-report.md +45 -0
  86. junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/documentation.md +12 -0
  87. junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/feature-request.md +24 -0
  88. junifer/external/BrainPrint/.github/ISSUE_TEMPLATE/questions-help-support.md +28 -0
  89. junifer/external/BrainPrint/.github/dependabot.yml +6 -0
  90. junifer/external/BrainPrint/.github/workflows/build.yml +53 -0
  91. junifer/external/BrainPrint/.github/workflows/code-style.yml +44 -0
  92. junifer/external/BrainPrint/.github/workflows/doc.yml +65 -0
  93. junifer/external/BrainPrint/.github/workflows/publish.yml +31 -0
  94. junifer/external/BrainPrint/.github/workflows/pytest.yml +54 -0
  95. junifer/external/BrainPrint/.gitignore +123 -0
  96. junifer/external/BrainPrint/LICENSE +21 -0
  97. junifer/external/BrainPrint/README.md +108 -0
  98. junifer/external/BrainPrint/brainprint/cli/__init__.py +11 -0
  99. junifer/external/BrainPrint/brainprint/cli/help_text.py +169 -0
  100. junifer/external/BrainPrint/brainprint/cli/parser.py +150 -0
  101. junifer/external/BrainPrint/brainprint/cli/utils.py +14 -0
  102. junifer/external/BrainPrint/brainprint/commands/__init__.py +0 -0
  103. junifer/external/BrainPrint/brainprint/commands/sys_info.py +18 -0
  104. junifer/external/BrainPrint/brainprint/utils/tests/__init__.py +0 -0
  105. junifer/external/BrainPrint/brainprint/utils/tests/test_config.py +33 -0
  106. junifer/external/BrainPrint/doc/Makefile +20 -0
  107. junifer/external/BrainPrint/doc/_static/.gitkeep +0 -0
  108. junifer/external/BrainPrint/doc/_templates/autosummary/class.rst +10 -0
  109. junifer/external/BrainPrint/doc/_templates/autosummary/function.rst +8 -0
  110. junifer/external/BrainPrint/doc/_templates/autosummary/module.rst +6 -0
  111. junifer/external/BrainPrint/doc/api/index.rst +11 -0
  112. junifer/external/BrainPrint/doc/conf.py +272 -0
  113. junifer/external/BrainPrint/doc/index.rst +140 -0
  114. junifer/external/BrainPrint/doc/links.inc +36 -0
  115. junifer/external/BrainPrint/doc/make.bat +35 -0
  116. junifer/external/BrainPrint/doc/references.bib +23 -0
  117. junifer/external/BrainPrint/pyproject.toml +170 -0
  118. junifer/external/BrainPrint/setup.py +3 -0
  119. junifer/external/__init__.py +5 -0
  120. junifer/external/__init__.pyi +0 -0
  121. junifer/external/nilearn/junifer_connectivity_measure.py +95 -39
  122. junifer/external/nilearn/junifer_nifti_spheres_masker.py +226 -67
  123. junifer/external/nilearn/tests/test_junifer_connectivity_measure.py +39 -27
  124. junifer/external/nilearn/tests/test_junifer_nifti_spheres_masker.py +231 -21
  125. junifer/external/py.typed +0 -0
  126. junifer/markers/__init__.pyi +6 -3
  127. junifer/markers/base.py +126 -76
  128. junifer/markers/brainprint.py +30 -39
  129. junifer/markers/complexity/__init__.py +20 -3
  130. junifer/markers/complexity/complexity_base.py +40 -41
  131. junifer/markers/complexity/hurst_exponent.py +22 -35
  132. junifer/markers/complexity/multiscale_entropy_auc.py +53 -41
  133. junifer/markers/complexity/perm_entropy.py +22 -36
  134. junifer/markers/complexity/range_entropy.py +22 -35
  135. junifer/markers/complexity/range_entropy_auc.py +27 -36
  136. junifer/markers/complexity/sample_entropy.py +22 -36
  137. junifer/markers/complexity/tests/test_complexity_registry.py +48 -0
  138. junifer/markers/complexity/tests/test_hurst_exponent.py +47 -36
  139. junifer/markers/complexity/tests/test_multiscale_entropy_auc.py +50 -36
  140. junifer/markers/complexity/tests/test_perm_entropy.py +48 -36
  141. junifer/markers/complexity/tests/test_range_entropy.py +47 -36
  142. junifer/markers/complexity/tests/test_range_entropy_auc.py +47 -36
  143. junifer/markers/complexity/tests/test_sample_entropy.py +48 -36
  144. junifer/markers/complexity/tests/test_weighted_perm_entropy.py +50 -36
  145. junifer/markers/complexity/weighted_perm_entropy.py +22 -36
  146. junifer/markers/ets_rss.py +35 -31
  147. junifer/markers/falff/__init__.pyi +7 -1
  148. junifer/markers/falff/_afni_falff.py +22 -9
  149. junifer/markers/falff/_junifer_falff.py +47 -31
  150. junifer/markers/falff/falff_base.py +80 -60
  151. junifer/markers/falff/falff_maps.py +17 -41
  152. junifer/markers/falff/falff_parcels.py +26 -51
  153. junifer/markers/falff/falff_spheres.py +34 -61
  154. junifer/markers/falff/tests/test_falff_maps.py +20 -23
  155. junifer/markers/falff/tests/test_falff_mask.py +99 -0
  156. junifer/markers/falff/tests/test_falff_parcels.py +14 -10
  157. junifer/markers/falff/tests/test_falff_spheres.py +14 -10
  158. junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py +32 -34
  159. junifer/markers/functional_connectivity/edge_functional_connectivity_maps.py +12 -25
  160. junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py +19 -34
  161. junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py +24 -44
  162. junifer/markers/functional_connectivity/functional_connectivity_base.py +50 -40
  163. junifer/markers/functional_connectivity/functional_connectivity_maps.py +12 -25
  164. junifer/markers/functional_connectivity/functional_connectivity_parcels.py +19 -34
  165. junifer/markers/functional_connectivity/functional_connectivity_spheres.py +24 -45
  166. junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +21 -22
  167. junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_maps.py +8 -7
  168. junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +8 -4
  169. junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +8 -4
  170. junifer/markers/functional_connectivity/tests/test_functional_connectivity_maps.py +8 -7
  171. junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +9 -5
  172. junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +8 -12
  173. junifer/markers/maps_aggregation.py +77 -55
  174. junifer/markers/parcel_aggregation.py +91 -70
  175. junifer/markers/reho/__init__.pyi +7 -1
  176. junifer/markers/reho/_afni_reho.py +23 -14
  177. junifer/markers/reho/_junifer_reho.py +112 -123
  178. junifer/markers/reho/reho_base.py +115 -37
  179. junifer/markers/reho/reho_maps.py +18 -32
  180. junifer/markers/reho/reho_parcels.py +26 -41
  181. junifer/markers/reho/reho_spheres.py +33 -54
  182. junifer/markers/reho/tests/test_junifer_reho.py +178 -0
  183. junifer/markers/reho/tests/test_reho_maps.py +27 -25
  184. junifer/markers/reho/tests/test_reho_parcels.py +28 -22
  185. junifer/markers/reho/tests/test_reho_spheres.py +16 -12
  186. junifer/markers/sphere_aggregation.py +88 -72
  187. junifer/markers/temporal_snr/temporal_snr_base.py +32 -30
  188. junifer/markers/temporal_snr/temporal_snr_maps.py +9 -18
  189. junifer/markers/temporal_snr/temporal_snr_parcels.py +19 -27
  190. junifer/markers/temporal_snr/temporal_snr_spheres.py +27 -41
  191. junifer/markers/temporal_snr/tests/test_temporal_snr_base.py +2 -2
  192. junifer/markers/temporal_snr/tests/test_temporal_snr_maps.py +17 -22
  193. junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +11 -3
  194. junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +9 -9
  195. junifer/markers/tests/test_brainprint.py +10 -9
  196. junifer/markers/tests/test_ets_rss.py +7 -3
  197. junifer/markers/tests/test_lost_regions.py +279 -0
  198. junifer/markers/tests/test_maps_aggregation.py +67 -114
  199. junifer/markers/tests/test_marker_utils.py +40 -1
  200. junifer/markers/tests/test_markers_base.py +275 -6
  201. junifer/markers/tests/test_parcel_aggregation.py +91 -53
  202. junifer/markers/tests/test_sphere_aggregation.py +53 -47
  203. junifer/markers/utils.py +267 -5
  204. junifer/onthefly/__init__.py +2 -3
  205. junifer/onthefly/__init__.pyi +4 -0
  206. junifer/onthefly/_brainprint.py +3 -5
  207. junifer/onthefly/py.typed +0 -0
  208. junifer/onthefly/read_transform.py +11 -9
  209. junifer/onthefly/tests/test_read_transform.py +7 -7
  210. junifer/pipeline/__init__.pyi +4 -2
  211. junifer/pipeline/marker_collection.py +14 -10
  212. junifer/pipeline/pipeline_component_registry.py +25 -6
  213. junifer/pipeline/pipeline_step_mixin.py +5 -12
  214. junifer/pipeline/tests/test_data_object_dumper.py +10 -10
  215. junifer/pipeline/tests/test_marker_collection.py +145 -168
  216. junifer/pipeline/tests/test_pipeline_component_registry.py +52 -8
  217. junifer/pipeline/tests/test_pipeline_step_mixin.py +12 -26
  218. junifer/pipeline/tests/test_update_meta_mixin.py +4 -5
  219. junifer/pipeline/tests/test_workdir_manager.py +39 -0
  220. junifer/pipeline/update_meta_mixin.py +13 -10
  221. junifer/pipeline/utils.py +22 -17
  222. junifer/pipeline/workdir_manager.py +41 -32
  223. junifer/preprocess/__init__.pyi +9 -4
  224. junifer/preprocess/_temporal_filter.py +34 -33
  225. junifer/preprocess/_temporal_slicer.py +17 -30
  226. junifer/preprocess/base.py +99 -55
  227. junifer/preprocess/confounds/__init__.pyi +10 -2
  228. junifer/preprocess/confounds/fmriprep_confound_remover.py +87 -109
  229. junifer/preprocess/confounds/tests/test_fmriprep_confound_remover.py +64 -45
  230. junifer/preprocess/smoothing/__init__.pyi +2 -2
  231. junifer/preprocess/smoothing/_afni_smoothing.py +8 -7
  232. junifer/preprocess/smoothing/_fsl_smoothing.py +6 -4
  233. junifer/preprocess/smoothing/_nilearn_smoothing.py +7 -5
  234. junifer/preprocess/smoothing/smoothing.py +59 -40
  235. junifer/preprocess/smoothing/tests/test_smoothing.py +28 -8
  236. junifer/preprocess/tests/test_preprocess_base.py +17 -9
  237. junifer/preprocess/tests/test_temporal_filter.py +37 -16
  238. junifer/preprocess/tests/test_temporal_slicer.py +12 -12
  239. junifer/preprocess/warping/__init__.pyi +2 -2
  240. junifer/preprocess/warping/_ants_warper.py +56 -40
  241. junifer/preprocess/warping/_fsl_warper.py +49 -36
  242. junifer/preprocess/warping/_utils.py +106 -0
  243. junifer/preprocess/warping/space_warper.py +99 -98
  244. junifer/preprocess/warping/tests/test_space_warper.py +46 -41
  245. junifer/preprocess/warping/tests/test_warping_utils.py +163 -0
  246. junifer/stats.py +46 -34
  247. junifer/storage/__init__.pyi +8 -4
  248. junifer/storage/base.py +129 -64
  249. junifer/storage/hdf5.py +307 -199
  250. junifer/storage/pandas_base.py +46 -24
  251. junifer/storage/sqlite.py +99 -62
  252. junifer/storage/tests/data/collected_h5io_fork.hdf5 +0 -0
  253. junifer/storage/tests/test_hdf5.py +147 -12
  254. junifer/storage/tests/test_repeated_storage.py +293 -0
  255. junifer/storage/tests/test_sqlite.py +9 -20
  256. junifer/storage/tests/test_storage_base.py +18 -21
  257. junifer/storage/tests/test_utils.py +83 -22
  258. junifer/storage/utils.py +58 -38
  259. junifer/testing/__init__.pyi +2 -2
  260. junifer/testing/datagrabbers.py +480 -44
  261. junifer/testing/registry.py +12 -0
  262. junifer/testing/tests/test_adhdtesting_datagrabber.py +24 -0
  263. junifer/testing/tests/test_oasisvmbtesting_datagrabber.py +5 -0
  264. junifer/testing/tests/test_partlycloudytesting_datagrabber.py +52 -0
  265. junifer/testing/tests/test_spmauditory_datagrabber.py +16 -0
  266. junifer/testing/tests/test_testing_registry.py +31 -0
  267. junifer/testing/tests/test_testing_utils.py +35 -0
  268. junifer/testing/tests/test_uclacnpvbmtesting_datagrabber.py +81 -0
  269. junifer/testing/utils.py +33 -1
  270. junifer/tests/test_stats.py +1 -5
  271. junifer/typing/__init__.pyi +2 -0
  272. junifer/typing/_typing.py +34 -19
  273. junifer/typing/py.typed +0 -0
  274. junifer/utils/__init__.pyi +10 -1
  275. junifer/utils/_config.py +1 -2
  276. junifer/utils/helpers.py +68 -2
  277. junifer/utils/logging.py +31 -7
  278. junifer/utils/tests/test_helpers.py +36 -1
  279. {junifer-0.0.7.dev332.dist-info → junifer-0.0.8.dist-info}/METADATA +43 -35
  280. junifer-0.0.8.dist-info/RECORD +402 -0
  281. {junifer-0.0.7.dev332.dist-info → junifer-0.0.8.dist-info}/WHEEL +1 -1
  282. junifer/cli/tests/test_parser.py +0 -280
  283. junifer/external/h5io/h5io/__init__.py +0 -15
  284. junifer/external/h5io/h5io/_h5io.py +0 -767
  285. junifer/external/h5io/h5io/_version.py +0 -1
  286. junifer/external/h5io/h5io/chunked_array.py +0 -94
  287. junifer/external/h5io/h5io/chunked_list.py +0 -65
  288. junifer/markers/complexity/__init__.pyi +0 -17
  289. junifer-0.0.7.dev332.dist-info/RECORD +0 -353
  290. {junifer-0.0.7.dev332.dist-info → junifer-0.0.8.dist-info}/entry_points.txt +0 -0
  291. {junifer-0.0.7.dev332.dist-info → junifer-0.0.8.dist-info}/licenses/AUTHORS.rst +0 -0
  292. {junifer-0.0.7.dev332.dist-info → junifer-0.0.8.dist-info}/licenses/LICENSE.md +0 -0
  293. {junifer-0.0.7.dev332.dist-info → junifer-0.0.8.dist-info}/top_level.txt +0 -0
@@ -1,280 +0,0 @@
1
- """Provide tests for CLI parser."""
2
-
3
- # Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
4
- # Synchon Mandal <s.mandal@fz-juelich.de>
5
- # License: AGPL
6
-
7
- import sys
8
- from pathlib import Path
9
-
10
- import pytest
11
-
12
- from junifer.cli.parser import parse_yaml
13
-
14
-
15
- def test_parse_yaml_failure() -> None:
16
- """Test YAML parsing failure."""
17
- with pytest.raises(ValueError, match="does not exist"):
18
- parse_yaml("foo.yaml")
19
-
20
-
21
- def test_parse_yaml_empty_elements_failure(tmp_path: Path) -> None:
22
- """Test YAML parsing with empty elements failure.
23
-
24
- Parameters
25
- ----------
26
- tmp_path : pathlib.Path
27
- The path to the test directory.
28
-
29
- """
30
- # Write test file
31
- fname = tmp_path / "test_parse_yaml_empty_elements_failure.yaml"
32
- fname.write_text("elements:")
33
- # Check test file
34
- with pytest.raises(ValueError, match="elements key was defined"):
35
- parse_yaml(fname)
36
-
37
-
38
- def test_parse_yaml_success(tmp_path: Path) -> None:
39
- """Test YAML parsing success.
40
-
41
- Parameters
42
- ----------
43
- tmp_path : pathlib.Path
44
- The path to the test directory.
45
-
46
- """
47
- # Write test file
48
- fname = tmp_path / "test_parse_yaml_success.yaml"
49
- fname.write_text("foo: bar")
50
- # Check test file
51
- contents = parse_yaml(fname)
52
- assert "foo" in contents
53
- assert contents["foo"] == "bar"
54
-
55
-
56
- def test_parse_yaml_success_with_module_autoload(tmp_path: Path) -> None:
57
- """Test YAML parsing with single module autoload success.
58
-
59
- Parameters
60
- ----------
61
- tmp_path : pathlib.Path
62
- The path to the test directory.
63
-
64
- """
65
- # Write test file
66
- fname = tmp_path / "test_parse_yaml_with_single_module_autoload.yaml"
67
- fname.write_text("foo: bar\nwith: numpy")
68
- # Check test file
69
- contents = parse_yaml(fname)
70
- assert "foo" in contents
71
- assert contents["foo"] == "bar"
72
- assert "with" in contents
73
- assert contents["with"] == ["numpy"]
74
- assert "numpy" in sys.modules
75
- assert "junifer.configs.wrong_config" not in sys.modules
76
-
77
-
78
- def test_parse_yaml_failure_with_multi_module_autoload(tmp_path: Path) -> None:
79
- """Test YAML parsing with multi module autoload failure.
80
-
81
- Parameters
82
- ----------
83
- tmp_path : pathlib.Path
84
- The path to the test directory.
85
-
86
- """
87
- # Write test file
88
- fname = tmp_path / "test_parse_yaml_with_multi_module_autoload.yaml"
89
- fname.write_text(
90
- "foo: bar\nwith:\n - numpy\n - junifer.testing.wrong_config"
91
- )
92
- # Check test file
93
- with pytest.raises(ImportError, match="wrong_config"):
94
- parse_yaml(fname)
95
-
96
-
97
- def test_parse_yaml_with_wrong_path(tmp_path: Path) -> None:
98
- """Test YAML parsing with wrong paths in with.
99
-
100
- Parameters
101
- ----------
102
- tmp_path : pathlib.Path
103
- The path to the test directory.
104
-
105
- """
106
- t_tmp_path = tmp_path / "test_relative_with"
107
- # Write yaml that includes a relative path
108
- yaml_path = t_tmp_path / "yamls"
109
- yaml_path.mkdir(exist_ok=True, parents=True)
110
- yaml_fname = yaml_path / "test_parse_yaml_wrong_path.yaml"
111
-
112
- yaml_fname.write_text("foo: bar\nwith:\n - missingt.py\n - scipy\n")
113
-
114
- # Check test file
115
- with pytest.raises(ValueError, match="does not exist"):
116
- parse_yaml(yaml_fname)
117
-
118
-
119
- def test_parse_yaml_relative_path(tmp_path: Path) -> None:
120
- """Test YAML parsing with relative paths in with.
121
-
122
- Parameters
123
- ----------
124
- tmp_path : pathlib.Path
125
- The path to the test directory.
126
-
127
- """
128
- t_tmp_path = tmp_path / "test_relative_with"
129
-
130
- # Write .py to include
131
- py_path = t_tmp_path / "external"
132
- py_path.mkdir(exist_ok=True, parents=True)
133
- py_fname = py_path / "first.py"
134
- py_fname.write_text("import numpy as np\n")
135
-
136
- # Write yaml that includes a relative path
137
- yaml_path = t_tmp_path / "yamls"
138
- yaml_path.mkdir(exist_ok=True, parents=True)
139
- yaml_fname = yaml_path / "test_parse_yaml_relative_path.yaml"
140
-
141
- yaml_fname.write_text(
142
- "foo: bar\nwith:\n - ../external/first.py\n - scipy\n"
143
- )
144
-
145
- # Check test file
146
- parse_yaml(yaml_fname)
147
-
148
-
149
- def test_parse_yaml_absolute_path(tmp_path: Path) -> None:
150
- """Test YAML parsing with absolute paths in with.
151
-
152
- Parameters
153
- ----------
154
- tmp_path : pathlib.Path
155
- The path to the test directory.
156
-
157
- """
158
- t_tmp_path = tmp_path / "test_relative_with"
159
-
160
- # Write .py to include
161
- py_path = t_tmp_path / "external"
162
- py_path.mkdir(exist_ok=True, parents=True)
163
- py_fname = py_path / "first.py"
164
- py_fname.write_text("import numpy as np\n")
165
-
166
- # Write yaml that includes a relative path
167
- yaml_path = t_tmp_path / "yamls"
168
- yaml_path.mkdir(exist_ok=True, parents=True)
169
- yaml_fname = yaml_path / "test_parse_yaml_relative_path.yaml"
170
-
171
- yaml_fname.write_text(
172
- f"foo: bar\nwith:\n - {py_fname.absolute()}\n - scipy\n"
173
- )
174
-
175
- # Check test file
176
- parse_yaml(yaml_fname)
177
-
178
-
179
- def test_parse_yaml_multi_module_deps(tmp_path: Path) -> None:
180
- """Test YAML parsing with multi-module import with deps.
181
-
182
- Parameters
183
- ----------
184
- tmp_path : pathlib.Path
185
- The path to the test directory.
186
-
187
- """
188
- t_tmp_path = tmp_path / "test_with_multi_module"
189
-
190
- # Write .py to include
191
- py_path = t_tmp_path / "external"
192
- py_path.mkdir(exist_ok=True, parents=True)
193
- py_fname_1 = py_path / "first.py"
194
- py_fname_1.write_text(
195
- "import numpy as np\nfrom second import hej\n"
196
- "def junifer_module_deps(): return ['second.py']\n"
197
- )
198
- py_fname_2 = py_path / "second.py"
199
- py_fname_2.write_text("def hej(): print('hej')\n")
200
-
201
- # Write yaml
202
- yaml_path = t_tmp_path / "yamls"
203
- yaml_path.mkdir(exist_ok=True, parents=True)
204
- yaml_fname = yaml_path / "test_parse_yaml_multi_module.yaml"
205
-
206
- yaml_fname.write_text(
207
- "foo: bar\nwith:\n - ../external/first.py\n - scipy\n"
208
- )
209
-
210
- # Check test file
211
- parse_yaml(yaml_fname)
212
-
213
-
214
- def test_parse_storage_uri_relative(tmp_path: Path) -> None:
215
- """Test YAML parsing with storage and relative URI.
216
-
217
- Parameters
218
- ----------
219
- tmp_path : pathlib.Path
220
- The path to the test directory.
221
-
222
- """
223
- fname = tmp_path / "test_parse_yaml_with_storage_uri.yaml"
224
- fname.write_text("foo: bar\nwith: numpy\nstorage:\n uri: test.db\n")
225
-
226
- contents = parse_yaml(fname)
227
- assert "foo" in contents
228
- assert contents["foo"] == "bar"
229
- assert "storage" in contents
230
- assert "uri" in contents["storage"]
231
- assert contents["storage"]["uri"] == str(tmp_path / "test.db")
232
-
233
- fname = tmp_path / "test_parse_yaml_with_storage_uri.yaml"
234
- fname.write_text(
235
- "foo: bar\nwith: numpy\nstorage:\n uri: ../another/test.db\n"
236
- )
237
-
238
- contents = parse_yaml(fname)
239
- assert "foo" in contents
240
- assert contents["foo"] == "bar"
241
- assert "storage" in contents
242
- assert "uri" in contents["storage"]
243
- assert contents["storage"]["uri"] == str(
244
- (tmp_path / "../another/test.db").resolve()
245
- )
246
-
247
- fname = tmp_path / "test_parse_yaml_with_storage_uri.yaml"
248
- fname.write_text(
249
- "foo: bar\nwith: numpy\nstorage:\n uri: /absolute/test.db\n"
250
- )
251
-
252
- contents = parse_yaml(fname)
253
- assert "foo" in contents
254
- assert contents["foo"] == "bar"
255
- assert "storage" in contents
256
- assert "uri" in contents["storage"]
257
- assert contents["storage"]["uri"] == "/absolute/test.db"
258
-
259
- # Just to trick coverage
260
- fname = tmp_path / "test_parse_yaml_with_storage_uri.yaml"
261
- fname.write_text("foo: bar\nwith: numpy\nstorage:\n kind: SomeStorage\n")
262
-
263
- contents = parse_yaml(fname)
264
- assert "foo" in contents
265
- assert contents["foo"] == "bar"
266
- assert "storage" in contents
267
-
268
-
269
- def test_parse_yaml_queue_venv_relative(tmp_path: Path) -> None:
270
- """Test YAML parsing with relative venv queue.
271
-
272
- Parameters
273
- ----------
274
- tmp_path : pathlib.Path
275
- The path to the test directory.
276
-
277
- """
278
- fname = tmp_path / "test_parse_yaml_queue_venv_relative.yaml"
279
- fname.write_text("queue:\n env:\n kind: venv\n name: .venv\n")
280
- _ = parse_yaml(fname)
@@ -1,15 +0,0 @@
1
- """Python Objects Onto HDF5
2
- """
3
-
4
-
5
- from ._h5io import (
6
- has_hdf5, # noqa, analysis:ignore
7
- read_hdf5, # noqa, analysis:ignore
8
- write_hdf5, # noqa, analysis:ignore
9
- _TempDir, # noqa, analysis:ignore
10
- object_diff, # noqa, analysis:ignore
11
- list_file_contents, # noqa, analysis:ignore
12
- )
13
- from ._version import __version__
14
- from .chunked_array import ChunkedArray # noqa, analysis:ignore
15
- from .chunked_list import ChunkedList # noqa, analysis:ignore