junifer 0.0.4.dev781__py3-none-any.whl → 0.0.4.dev810__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 (30) hide show
  1. junifer/_version.py +2 -2
  2. junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +6 -1
  3. junifer/configs/juseless/datagrabbers/camcan_vbm.py +6 -1
  4. junifer/configs/juseless/datagrabbers/ixi_vbm.py +6 -1
  5. junifer/configs/juseless/datagrabbers/ucla.py +42 -24
  6. junifer/configs/juseless/datagrabbers/ukb_vbm.py +6 -1
  7. junifer/datagrabber/aomic/id1000.py +98 -91
  8. junifer/datagrabber/aomic/piop1.py +97 -73
  9. junifer/datagrabber/aomic/piop2.py +97 -73
  10. junifer/datagrabber/base.py +6 -4
  11. junifer/datagrabber/datalad_base.py +0 -2
  12. junifer/datagrabber/dmcc13_benchmark.py +87 -50
  13. junifer/datagrabber/hcp1200/hcp1200.py +21 -19
  14. junifer/datagrabber/pattern.py +124 -25
  15. junifer/datagrabber/pattern_datalad.py +111 -13
  16. junifer/datagrabber/tests/test_base.py +0 -6
  17. junifer/datagrabber/tests/test_datagrabber_utils.py +204 -76
  18. junifer/datagrabber/tests/test_datalad_base.py +0 -6
  19. junifer/datagrabber/tests/test_multiple.py +43 -10
  20. junifer/datagrabber/tests/test_pattern.py +125 -178
  21. junifer/datagrabber/tests/test_pattern_datalad.py +44 -25
  22. junifer/datagrabber/utils.py +141 -21
  23. junifer/datareader/default.py +6 -7
  24. {junifer-0.0.4.dev781.dist-info → junifer-0.0.4.dev810.dist-info}/METADATA +1 -1
  25. {junifer-0.0.4.dev781.dist-info → junifer-0.0.4.dev810.dist-info}/RECORD +30 -30
  26. {junifer-0.0.4.dev781.dist-info → junifer-0.0.4.dev810.dist-info}/AUTHORS.rst +0 -0
  27. {junifer-0.0.4.dev781.dist-info → junifer-0.0.4.dev810.dist-info}/LICENSE.md +0 -0
  28. {junifer-0.0.4.dev781.dist-info → junifer-0.0.4.dev810.dist-info}/WHEEL +0 -0
  29. {junifer-0.0.4.dev781.dist-info → junifer-0.0.4.dev810.dist-info}/entry_points.txt +0 -0
  30. {junifer-0.0.4.dev781.dist-info → junifer-0.0.4.dev810.dist-info}/top_level.txt +0 -0
@@ -6,7 +6,68 @@
6
6
 
7
7
  from typing import Dict, List
8
8
 
9
- from ..utils import raise_error
9
+ from ..utils import logger, raise_error
10
+
11
+
12
+ # Define schema for pattern-based datagrabber's patterns
13
+ PATTERNS_SCHEMA = {
14
+ "T1w": {
15
+ "mandatory": ["pattern", "space"],
16
+ "optional": ["mask_item"],
17
+ },
18
+ "T1w_mask": {
19
+ "mandatory": ["pattern", "space"],
20
+ "optional": [],
21
+ },
22
+ "T2w": {
23
+ "mandatory": ["pattern", "space"],
24
+ "optional": ["mask_item"],
25
+ },
26
+ "T2w_mask": {
27
+ "mandatory": ["pattern", "space"],
28
+ "optional": [],
29
+ },
30
+ "BOLD": {
31
+ "mandatory": ["pattern", "space"],
32
+ "optional": ["mask_item"],
33
+ },
34
+ "BOLD_confounds": {
35
+ "mandatory": ["pattern", "format"],
36
+ "optional": [],
37
+ },
38
+ "BOLD_mask": {
39
+ "mandatory": ["pattern", "space"],
40
+ "optional": [],
41
+ },
42
+ "Warp": {
43
+ "mandatory": ["pattern", "src", "dst"],
44
+ "optional": [],
45
+ },
46
+ "VBM_GM": {
47
+ "mandatory": ["pattern", "space"],
48
+ "optional": [],
49
+ },
50
+ "VBM_WM": {
51
+ "mandatory": ["pattern", "space"],
52
+ "optional": [],
53
+ },
54
+ "probseg_CSF": {
55
+ "mandatory": ["pattern", "space"],
56
+ "optional": [],
57
+ },
58
+ "probseg_GM": {
59
+ "mandatory": ["pattern", "space"],
60
+ "optional": [],
61
+ },
62
+ "probseg_WM": {
63
+ "mandatory": ["pattern", "space"],
64
+ "optional": [],
65
+ },
66
+ "DWI": {
67
+ "mandatory": ["pattern"],
68
+ "optional": [],
69
+ },
70
+ }
10
71
 
11
72
 
12
73
  def validate_types(types: List[str]) -> None:
@@ -30,7 +91,7 @@ def validate_types(types: List[str]) -> None:
30
91
 
31
92
 
32
93
  def validate_replacements(
33
- replacements: List[str], patterns: Dict[str, str]
94
+ replacements: List[str], patterns: Dict[str, Dict[str, str]]
34
95
  ) -> None:
35
96
  """Validate the replacements.
36
97
 
@@ -44,38 +105,41 @@ def validate_replacements(
44
105
  Raises
45
106
  ------
46
107
  TypeError
47
- If ``replacements`` is not a list or if the values are not string or
48
- if ``patterns`` is not a dictionary.
108
+ If ``replacements`` is not a list or if the values are not string.
49
109
  ValueError
50
- If a value in ``replacements`` is not in ``pattern`` or if no value in
51
- ``patterns`` contain all values in ``replacements``.
110
+ If a value in ``replacements`` is not part of a data type pattern or
111
+ if no data type patterns contain all values in ``replacements``.
52
112
 
53
113
  """
54
114
  if not isinstance(replacements, list):
55
115
  raise_error(msg="`replacements` must be a list.", klass=TypeError)
56
116
 
57
- if not isinstance(patterns, dict):
58
- raise_error(msg="`patterns` must be a dict.", klass=TypeError)
59
-
60
117
  if any(not isinstance(x, str) for x in replacements):
61
118
  raise_error(
62
119
  msg="`replacements` must be a list of strings.", klass=TypeError
63
120
  )
64
121
 
65
122
  for x in replacements:
66
- if all(x not in y for y in patterns.values()):
67
- raise_error(msg=f"Replacement {x} is not part of any pattern.")
123
+ if all(
124
+ x not in y
125
+ for y in [
126
+ data_type_val["pattern"] for data_type_val in patterns.values()
127
+ ]
128
+ ):
129
+ raise_error(msg=f"Replacement: {x} is not part of any pattern.")
68
130
 
69
131
  # Check that at least one pattern has all the replacements
70
132
  at_least_one = False
71
- for _, v in patterns.items():
72
- if all(x in v for x in replacements):
133
+ for data_type_val in patterns.values():
134
+ if all(x in data_type_val["pattern"] for x in replacements):
73
135
  at_least_one = True
74
136
  if at_least_one is False:
75
137
  raise_error(msg="At least one pattern must contain all replacements.")
76
138
 
77
139
 
78
- def validate_patterns(types: List[str], patterns: Dict[str, str]) -> None:
140
+ def validate_patterns(
141
+ types: List[str], patterns: Dict[str, Dict[str, str]]
142
+ ) -> None:
79
143
  """Validate the patterns.
80
144
 
81
145
  Parameters
@@ -87,12 +151,17 @@ def validate_patterns(types: List[str], patterns: Dict[str, str]) -> None:
87
151
 
88
152
  Raises
89
153
  ------
154
+ KeyError
155
+ If any mandatory key is missing for a data type.
156
+ RuntimeError
157
+ If an unknown key is found for a data type.
90
158
  TypeError
91
159
  If ``patterns`` is not a dictionary.
92
160
  ValueError
93
161
  If length of ``types`` and ``patterns`` are different or
94
162
  if ``patterns`` is missing entries from ``types`` or
95
- if ``patterns`` contain '*' as value.
163
+ if unknown data type is found in ``patterns`` or
164
+ if data type pattern key contains '*' as value.
96
165
 
97
166
  """
98
167
  # Validate the types
@@ -110,9 +179,60 @@ def validate_patterns(types: List[str], patterns: Dict[str, str]) -> None:
110
179
  raise_error(
111
180
  msg="`patterns` must contain all `types`", klass=ValueError
112
181
  )
113
- # Wildcard check in patterns
114
- if any("}*" in pattern for pattern in patterns.values()):
115
- raise_error(
116
- msg="`patterns` must not contain `*` following a replacement",
117
- klass=ValueError,
118
- )
182
+ # Check against schema
183
+ for data_type_key, data_type_val in patterns.items():
184
+ # Check if valid data type is provided
185
+ if data_type_key not in PATTERNS_SCHEMA:
186
+ raise_error(
187
+ f"Unknown data type: {data_type_key}, "
188
+ f"should be one of: {list(PATTERNS_SCHEMA.keys())}"
189
+ )
190
+ # Check mandatory keys for data type
191
+ for mandatory_key in PATTERNS_SCHEMA[data_type_key]["mandatory"]:
192
+ if mandatory_key not in data_type_val:
193
+ raise_error(
194
+ msg=(
195
+ f"Mandatory key: `{mandatory_key}` missing for "
196
+ f"{data_type_key}"
197
+ ),
198
+ klass=KeyError,
199
+ )
200
+ else:
201
+ logger.debug(
202
+ f"Mandatory key: `{mandatory_key}` found for "
203
+ f"{data_type_key}"
204
+ )
205
+ # Check optional keys for data type
206
+ for optional_key in PATTERNS_SCHEMA[data_type_key]["optional"]:
207
+ if optional_key not in data_type_val:
208
+ logger.debug(
209
+ f"Optional key: `{optional_key}` missing for "
210
+ f"{data_type_key}"
211
+ )
212
+ else:
213
+ logger.debug(
214
+ f"Optional key: `{optional_key}` found for "
215
+ f"{data_type_key}"
216
+ )
217
+ # Check stray key for data type
218
+ for key in data_type_val.keys():
219
+ if key not in (
220
+ PATTERNS_SCHEMA[data_type_key]["mandatory"]
221
+ + PATTERNS_SCHEMA[data_type_key]["optional"]
222
+ ):
223
+ raise_error(
224
+ msg=(
225
+ f"Key: {key} not accepted for {data_type_key} "
226
+ "pattern, remove it to proceed"
227
+ ),
228
+ klass=RuntimeError,
229
+ )
230
+ # Wildcard check in patterns
231
+ if "}*" in data_type_val["pattern"]:
232
+ raise_error(
233
+ msg=(
234
+ f"`{data_type_key}.pattern` must not contain `*` "
235
+ "following a replacement"
236
+ ),
237
+ klass=ValueError,
238
+ )
@@ -53,23 +53,22 @@ class DefaultDataReader(PipelineStepMixin, UpdateMetaMixin):
53
53
  # Nothing to validate, any input is fine
54
54
  return input
55
55
 
56
- def get_output_type(self, input: List[str]) -> List[str]:
56
+ def get_output_type(self, input_type: str) -> str:
57
57
  """Get output type.
58
58
 
59
59
  Parameters
60
60
  ----------
61
- input : list of str
62
- The input to the reader. The list must contain the
63
- available Junifer Data dictionary keys.
61
+ input_type : str
62
+ The data type input to the reader.
64
63
 
65
64
  Returns
66
65
  -------
67
- list of str
68
- The updated list of output types, as reading possibilities.
66
+ str
67
+ The data type output by the reader.
69
68
 
70
69
  """
71
70
  # It will output the same type of data as the input
72
- return input
71
+ return input_type
73
72
 
74
73
  def _fit_transform(
75
74
  self,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.4.dev781
3
+ Version: 0.0.4.dev810
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>
@@ -1,5 +1,5 @@
1
1
  junifer/__init__.py,sha256=x1UR2jUcrUdm2HNl-3Qvyi4UUrU6ms5qm2qcmNY7zZk,391
2
- junifer/_version.py,sha256=DG1TQuA0pxGHQP7YoxTcX0i7VCt9fBbd9PHx3LLTXh0,428
2
+ junifer/_version.py,sha256=wpjRI9-VO7PV-1Clwfc-ELqAdZFl5dG37458e4_wpfA,428
3
3
  junifer/stats.py,sha256=sU5IZ2qFZWbzgSutQS_z42miIVItpSGmQYBn6KkD5fA,6162
4
4
  junifer/api/__init__.py,sha256=YILu9M7SC0Ri4CVd90fELH2OnK_gvCYAXCoqBNCFE8E,257
5
5
  junifer/api/cli.py,sha256=auw38tIH7ipTnaADM7on0or7zauY-BFII8nd-eRUEJs,13664
@@ -39,11 +39,11 @@ junifer/api/tests/data/partly_cloudy_agg_mean_tian.yml,sha256=nS8K_R1hEuV71Vv-i9
39
39
  junifer/configs/__init__.py,sha256=r6BU6vW7FVapSD81j24QeQiZe1oKspsJJRRPjXnCk00,120
40
40
  junifer/configs/juseless/__init__.py,sha256=Ws98DvlLEMHfwW6BjmvHQmqTlFRDps9r4pLAfNjfEiM,149
41
41
  junifer/configs/juseless/datagrabbers/__init__.py,sha256=tqCLmelWqB1xfElvknnaJ5oVRPp9XVXtZLzIpxYIghg,452
42
- junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py,sha256=A4N8tpG66vWmqdWEBAh8Y8MHWsa_afcr3WTMNVhVIEA,1350
43
- junifer/configs/juseless/datagrabbers/camcan_vbm.py,sha256=GGbWDTvf0aHxFi_iS6jmlttTiD3k5gN5FYPIxemEnG4,1398
44
- junifer/configs/juseless/datagrabbers/ixi_vbm.py,sha256=UpOLpKFkfL_LeaYasUvpvpQSiX_RlZE99Nbfdexz8zk,2184
45
- junifer/configs/juseless/datagrabbers/ucla.py,sha256=Aea1ixDqh8X4BefgAQg2lT-ELEnxmsM8BnSGeMml0Ag,4302
46
- junifer/configs/juseless/datagrabbers/ukb_vbm.py,sha256=YWPL-VV84wyWApnakwsiNo6o2-mPtdAAWbU8hwEgBT0,1382
42
+ junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py,sha256=HNyfxjU_D7hkwnaeSW1r_PllOlc3phBq2LP25zZGziE,1474
43
+ junifer/configs/juseless/datagrabbers/camcan_vbm.py,sha256=PtzjrfL2b6nxXLQ4TU8cKftHnD4g7nk4bf2ib6WLqGg,1505
44
+ junifer/configs/juseless/datagrabbers/ixi_vbm.py,sha256=OE2D311Sfey0DrfoKqWB_hFIBApzP3-r1M9sliKZPC4,2309
45
+ junifer/configs/juseless/datagrabbers/ucla.py,sha256=44T9JMJ4usowRib9V6EqdTRQy_2xkAWZpEmmoFWF4Mg,4915
46
+ junifer/configs/juseless/datagrabbers/ukb_vbm.py,sha256=lb9pLXFnlMOeQUX-BBFD9dKECdaU2bEIHA-iD9KkOAQ,1489
47
47
  junifer/configs/juseless/datagrabbers/tests/test_aomic_id1000_vbm.py,sha256=Y_npFmmj0MN0TYv8jaxVMgFHLMQLZ8vXl8lWQKvOYbc,1001
48
48
  junifer/configs/juseless/datagrabbers/tests/test_camcan_vbm.py,sha256=o0dzptS97pxrWaY7I1m0dpJtsnAwmIXNqdU9ABTWCqI,975
49
49
  junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py,sha256=8jxpNZelXwpJGvA5LOfpso2X8yt1chvERAYmv76hS_g,1252
@@ -83,33 +83,33 @@ junifer/data/tests/test_masks.py,sha256=cZmj6UZmuyqXI-8zMqAkuim6DWYecjaMCPo00cr_
83
83
  junifer/data/tests/test_parcellations.py,sha256=ZEU1VHIK0AyxpclcJhG_0rQU0phaBU_dHP7Erfi3mN8,38222
84
84
  junifer/data/tests/test_template_spaces.py,sha256=PJulN7xHpAcSOTY-UzTG_WPywZEBSlAZGiNG4gzk1_8,3144
85
85
  junifer/datagrabber/__init__.py,sha256=pZHJIY8nAlbVngsyRScE6a6GKbytiwjJB7SdJNqIbl4,680
86
- junifer/datagrabber/base.py,sha256=clErdDX5jz8LTjwPTQPCv3jfELCJ2vObg7ks8imAx8Y,6224
87
- junifer/datagrabber/datalad_base.py,sha256=dDaBiIePPP6-G4ycgBMxTcXxs4vkg-yDS3OBURK4VGs,10731
88
- junifer/datagrabber/dmcc13_benchmark.py,sha256=C1ZzeQV7NsdIL5HCkjcZjE6uvecqt6ZY244OfvKD-Zo,11521
86
+ junifer/datagrabber/base.py,sha256=KgMSKfkwd4yLW4PhoJDoWMgcDkGmDoIs6jkgKyOJd9A,6303
87
+ junifer/datagrabber/datalad_base.py,sha256=SsGUJdefdDgAJARBG5kHcbLK2CvvnoEto0TpGZUgnWE,10659
88
+ junifer/datagrabber/dmcc13_benchmark.py,sha256=ybgjJbl_4MD70FzhWUr_LvUZyjEft2_FYvLXI2kW64I,12896
89
89
  junifer/datagrabber/multiple.py,sha256=eXQIsvSNvD8GuEITjMaMoi1GwoeyWXXbQMRi-f2qgc4,4923
90
- junifer/datagrabber/pattern.py,sha256=uGobDTrRhq-XPNIz0z3eIeIzmNOYFajEXwa7OWqno5g,10720
91
- junifer/datagrabber/pattern_datalad.py,sha256=SyXhM0XQEF45poNaWyVAG054BSCYyqJ-JUwbRo05nyk,1653
92
- junifer/datagrabber/utils.py,sha256=-i5Pw7w72RO4SRapWYglIC0Lve8e8Mo3Gmu0z6A_PbY,3516
90
+ junifer/datagrabber/pattern.py,sha256=5XQe0k3iiTID5fbUsShjFKaqkueuPU34ZpzOi1JzFEw,12700
91
+ junifer/datagrabber/pattern_datalad.py,sha256=y9ptDZEhSj41pf05WNySrj8j4kbi5uIXveFXv4dkKpk,4092
92
+ junifer/datagrabber/utils.py,sha256=aiaWMBAGsZ5VPgOXeUHralLnAoI3fs0inyHbv8K2Km8,7157
93
93
  junifer/datagrabber/aomic/__init__.py,sha256=R7yrRVBWsBW25CH0fw-KHpFwb_EC-MlPKDzssGfj5A0,281
94
- junifer/datagrabber/aomic/id1000.py,sha256=Cfp55jGzillWJ_SSeSKF33Cacl5FvVEb80B2Ieooy3I,5698
95
- junifer/datagrabber/aomic/piop1.py,sha256=wSqQUyHAoSf-1BPDQmBrowoRviFZznkox-iBWJ3NxOo,7718
96
- junifer/datagrabber/aomic/piop2.py,sha256=SIegiR2ybC8Uok0KDhRauSwhVi21z5cyOJiI698-k90,7337
94
+ junifer/datagrabber/aomic/id1000.py,sha256=qO2WRq8CcK-cwohigqRewKHjAB75QZIhlqwK1hXWAs0,6125
95
+ junifer/datagrabber/aomic/piop1.py,sha256=kYdDbDqSj-pQ12JY7RfD0OtUEkQS1YNivnzAjOaGaF8,8544
96
+ junifer/datagrabber/aomic/piop2.py,sha256=ZHd3smD0pibBGbU170pDufLa1-TM7JlBVzWPjX1Uaq4,8163
97
97
  junifer/datagrabber/aomic/tests/test_id1000.py,sha256=eejuGiNQdX_s_8klGROd8OD8O5OprQywWN6O-JU3jD4,4824
98
98
  junifer/datagrabber/aomic/tests/test_piop1.py,sha256=Trp905MCT4jhnCg1leP0PzpEVc_icoKJZrI0TwVCwSE,5578
99
99
  junifer/datagrabber/aomic/tests/test_piop2.py,sha256=KAMU8eoQbKV3n9qRWbpZ24g-qN9uzZ55ZlofcSB9BIA,5377
100
100
  junifer/datagrabber/hcp1200/__init__.py,sha256=zy4Qq1_m3vECEhioG-UDteco2b5cni_8xuElICaRtt4,189
101
101
  junifer/datagrabber/hcp1200/datalad_hcp1200.py,sha256=p5Bbg09qoM46km9eFSlspwLwOe6LMJFSIZ9NC9E2lmc,2432
102
- junifer/datagrabber/hcp1200/hcp1200.py,sha256=6lNk3wjd6elVFeiQfmU140fsNoZwKFQjipbhlf1KXMk,6134
102
+ junifer/datagrabber/hcp1200/hcp1200.py,sha256=ohXHmrQHWjqRZSEXI6E5zla1d_t6LZTbv-cAj79w3PU,6091
103
103
  junifer/datagrabber/hcp1200/tests/test_hcp1200.py,sha256=KJ-Jq01l0a6TaboG898qjBdPTHG1E3PZtHCjJ7n-1X0,10765
104
- junifer/datagrabber/tests/test_base.py,sha256=TBv14m7JZCvF6OPKG2MesMI7MPm-BkCAzOHb1GmMrG8,3738
105
- junifer/datagrabber/tests/test_datagrabber_utils.py,sha256=08fdnXRehAhrWoNdMP_2Ecgam7a1uMbt1i0wIpderEg,2795
106
- junifer/datagrabber/tests/test_datalad_base.py,sha256=GORMEzpIIK1StqJLv7jE8dZeLjXMZTPL_d_KDafDATc,16496
104
+ junifer/datagrabber/tests/test_base.py,sha256=fZdVhNhvfht9lpTHrAUf5E6mAfNNUP7OTQ5KLaBQ1gI,3506
105
+ junifer/datagrabber/tests/test_datagrabber_utils.py,sha256=SR2Zc9DJaCtuULhqCz10JCK7zc4VGnAcKT2pxloM1ys,6311
106
+ junifer/datagrabber/tests/test_datalad_base.py,sha256=SYxUB9_4YPMfrb7iJM-aJCWbGa3EJfYz31wAUCNa03s,16285
107
107
  junifer/datagrabber/tests/test_dmcc13_benchmark.py,sha256=24T2ioumTTWC2xMrt7hbuasOY_KfFrJ61ztDxa23TFU,8123
108
- junifer/datagrabber/tests/test_multiple.py,sha256=Buu-ajH6AC8jVZz7RdEXm8kBIHwvFZvoSPH1DETxoFA,4955
109
- junifer/datagrabber/tests/test_pattern.py,sha256=coHa3ugiVs34Lhy4Md-_sAWBX878LHIbqGniQpsYxCE,9823
110
- junifer/datagrabber/tests/test_pattern_datalad.py,sha256=QoeM6F1T-W0XAU_PDh0T2gU4Cqrnu-q7vZ8_O9gT5sU,6077
108
+ junifer/datagrabber/tests/test_multiple.py,sha256=Mx3xfDrQiWG2W5MW24P5L2XiSeALpJ2-jFlzWkKtu9w,5659
109
+ junifer/datagrabber/tests/test_pattern.py,sha256=Zmwg79f-qs6AEPVoFpooOquK7rm1hsmgkzuo11BG5PE,8019
110
+ junifer/datagrabber/tests/test_pattern_datalad.py,sha256=hxw_aXBwHjUo-aUrHescBA2dn1bSJxh-0oV8495iIEA,6483
111
111
  junifer/datareader/__init__.py,sha256=WWoiIz6y0EdExWO3WCGiERNw3Y3WUsXyHaWnHilP2kE,263
112
- junifer/datareader/default.py,sha256=9KjCbtrWgQQzoe4Z-uwD5B-flXI2f6yGFK5n9tXXaDk,4953
112
+ junifer/datareader/default.py,sha256=BFtk_HJueia7EfhaIpgebe-RWHSKaLEO5btpHA--wo0,4848
113
113
  junifer/datareader/tests/test_default_reader.py,sha256=9dPZSkba1YQjFsA0XwdUbx5sq8DVIEZoy_WfMAcvRus,5220
114
114
  junifer/external/__init__.py,sha256=58gL7gNN_PI1GyN6r9CO035TzvJdi8S-zFg5reDt4Xc,116
115
115
  junifer/external/h5io/h5io/__init__.py,sha256=LG7ru_Rt3EOE2H4PGYfBhC12Iax3yeTquZkd8TICiKk,469
@@ -248,10 +248,10 @@ junifer/utils/logging.py,sha256=furcU3XIUpUvnpe4PEwzWWIWgmH4j2ZA4MQdvSGWjj0,9216
248
248
  junifer/utils/tests/test_fs.py,sha256=WQS7cKlKEZ742CIuiOYYpueeAhY9PqlastfDVpVVtvE,923
249
249
  junifer/utils/tests/test_helpers.py,sha256=k5qqfxK8dFyuewTJyR1Qn6-nFaYNuVr0ysc18bfPjyU,929
250
250
  junifer/utils/tests/test_logging.py,sha256=l8oo-AiBV7H6_IzlsNcj__cLeZBUvgIGoaMszD9VaJg,7754
251
- junifer-0.0.4.dev781.dist-info/AUTHORS.rst,sha256=rmULKpchpSol4ExWFdm-qu4fkpSZPYqIESVJBZtGb6E,163
252
- junifer-0.0.4.dev781.dist-info/LICENSE.md,sha256=MqCnOBu8uXsEOzRZWh9EBVfVz-kE9NkXcLCrtGXo2yU,34354
253
- junifer-0.0.4.dev781.dist-info/METADATA,sha256=5YfE1jEOLMBw69X5dZwvZYOzv5V8i7PTJVZJ3dht7oQ,8235
254
- junifer-0.0.4.dev781.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
255
- junifer-0.0.4.dev781.dist-info/entry_points.txt,sha256=DxFvKq0pOqRunAK0FxwJcoDfV1-dZvsFDpD5HRqSDhw,48
256
- junifer-0.0.4.dev781.dist-info/top_level.txt,sha256=4bAq1R2QFQ4b3hohjys2JBvxrl0GKk5LNFzYvz9VGcA,8
257
- junifer-0.0.4.dev781.dist-info/RECORD,,
251
+ junifer-0.0.4.dev810.dist-info/AUTHORS.rst,sha256=rmULKpchpSol4ExWFdm-qu4fkpSZPYqIESVJBZtGb6E,163
252
+ junifer-0.0.4.dev810.dist-info/LICENSE.md,sha256=MqCnOBu8uXsEOzRZWh9EBVfVz-kE9NkXcLCrtGXo2yU,34354
253
+ junifer-0.0.4.dev810.dist-info/METADATA,sha256=njCeW4AU5kfCwCxw8Soc3CYj3RqDpMHua3pvOrjTNBs,8235
254
+ junifer-0.0.4.dev810.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
255
+ junifer-0.0.4.dev810.dist-info/entry_points.txt,sha256=DxFvKq0pOqRunAK0FxwJcoDfV1-dZvsFDpD5HRqSDhw,48
256
+ junifer-0.0.4.dev810.dist-info/top_level.txt,sha256=4bAq1R2QFQ4b3hohjys2JBvxrl0GKk5LNFzYvz9VGcA,8
257
+ junifer-0.0.4.dev810.dist-info/RECORD,,