junifer 0.0.4.dev782__py3-none-any.whl → 0.0.4.dev814__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.
- junifer/_version.py +2 -2
- junifer/api/res/ants/ResampleImage +0 -0
- junifer/api/res/ants/antsApplyTransforms +0 -0
- junifer/api/res/ants/antsApplyTransformsToPoints +0 -0
- junifer/api/res/ants/run_ants_docker.sh +0 -0
- junifer/api/res/fsl/img2imgcoord +0 -0
- junifer/api/res/run_venv.sh +0 -0
- junifer/configs/juseless/datagrabbers/aomic_id1000_vbm.py +6 -1
- junifer/configs/juseless/datagrabbers/camcan_vbm.py +6 -1
- junifer/configs/juseless/datagrabbers/ixi_vbm.py +6 -1
- junifer/configs/juseless/datagrabbers/ucla.py +42 -24
- junifer/configs/juseless/datagrabbers/ukb_vbm.py +6 -1
- junifer/datagrabber/aomic/id1000.py +98 -91
- junifer/datagrabber/aomic/piop1.py +97 -73
- junifer/datagrabber/aomic/piop2.py +97 -73
- junifer/datagrabber/base.py +6 -4
- junifer/datagrabber/datalad_base.py +0 -2
- junifer/datagrabber/dmcc13_benchmark.py +87 -50
- junifer/datagrabber/hcp1200/hcp1200.py +21 -19
- junifer/datagrabber/pattern.py +124 -25
- junifer/datagrabber/pattern_datalad.py +111 -13
- junifer/datagrabber/tests/test_base.py +0 -6
- junifer/datagrabber/tests/test_datagrabber_utils.py +204 -76
- junifer/datagrabber/tests/test_datalad_base.py +0 -6
- junifer/datagrabber/tests/test_multiple.py +43 -10
- junifer/datagrabber/tests/test_pattern.py +125 -178
- junifer/datagrabber/tests/test_pattern_datalad.py +44 -25
- junifer/datagrabber/utils.py +141 -21
- junifer/datareader/default.py +6 -7
- {junifer-0.0.4.dev782.dist-info → junifer-0.0.4.dev814.dist-info}/METADATA +1 -1
- {junifer-0.0.4.dev782.dist-info → junifer-0.0.4.dev814.dist-info}/RECORD +30 -30
- {junifer-0.0.4.dev782.dist-info → junifer-0.0.4.dev814.dist-info}/AUTHORS.rst +0 -0
- {junifer-0.0.4.dev782.dist-info → junifer-0.0.4.dev814.dist-info}/LICENSE.md +0 -0
- {junifer-0.0.4.dev782.dist-info → junifer-0.0.4.dev814.dist-info}/WHEEL +0 -0
- {junifer-0.0.4.dev782.dist-info → junifer-0.0.4.dev814.dist-info}/entry_points.txt +0 -0
- {junifer-0.0.4.dev782.dist-info → junifer-0.0.4.dev814.dist-info}/top_level.txt +0 -0
junifer/datagrabber/utils.py
CHANGED
@@ -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
|
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
|
51
|
-
|
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(
|
67
|
-
|
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
|
72
|
-
if all(x in
|
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(
|
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``
|
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
|
-
#
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
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
|
+
)
|
junifer/datareader/default.py
CHANGED
@@ -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,
|
56
|
+
def get_output_type(self, input_type: str) -> str:
|
57
57
|
"""Get output type.
|
58
58
|
|
59
59
|
Parameters
|
60
60
|
----------
|
61
|
-
|
62
|
-
The input to the reader.
|
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
|
-
|
68
|
-
The
|
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
|
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.
|
3
|
+
Version: 0.0.4.dev814
|
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=
|
2
|
+
junifer/_version.py,sha256=EyqFRoxnT-66sDsNvzVoTVLeESpR_C5kEImKt8y_MD8,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=
|
43
|
-
junifer/configs/juseless/datagrabbers/camcan_vbm.py,sha256=
|
44
|
-
junifer/configs/juseless/datagrabbers/ixi_vbm.py,sha256=
|
45
|
-
junifer/configs/juseless/datagrabbers/ucla.py,sha256=
|
46
|
-
junifer/configs/juseless/datagrabbers/ukb_vbm.py,sha256=
|
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=
|
87
|
-
junifer/datagrabber/datalad_base.py,sha256=
|
88
|
-
junifer/datagrabber/dmcc13_benchmark.py,sha256=
|
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=
|
91
|
-
junifer/datagrabber/pattern_datalad.py,sha256=
|
92
|
-
junifer/datagrabber/utils.py,sha256
|
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=
|
95
|
-
junifer/datagrabber/aomic/piop1.py,sha256=
|
96
|
-
junifer/datagrabber/aomic/piop2.py,sha256=
|
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=
|
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=
|
105
|
-
junifer/datagrabber/tests/test_datagrabber_utils.py,sha256=
|
106
|
-
junifer/datagrabber/tests/test_datalad_base.py,sha256=
|
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=
|
109
|
-
junifer/datagrabber/tests/test_pattern.py,sha256=
|
110
|
-
junifer/datagrabber/tests/test_pattern_datalad.py,sha256=
|
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=
|
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.
|
252
|
-
junifer-0.0.4.
|
253
|
-
junifer-0.0.4.
|
254
|
-
junifer-0.0.4.
|
255
|
-
junifer-0.0.4.
|
256
|
-
junifer-0.0.4.
|
257
|
-
junifer-0.0.4.
|
251
|
+
junifer-0.0.4.dev814.dist-info/AUTHORS.rst,sha256=rmULKpchpSol4ExWFdm-qu4fkpSZPYqIESVJBZtGb6E,163
|
252
|
+
junifer-0.0.4.dev814.dist-info/LICENSE.md,sha256=MqCnOBu8uXsEOzRZWh9EBVfVz-kE9NkXcLCrtGXo2yU,34354
|
253
|
+
junifer-0.0.4.dev814.dist-info/METADATA,sha256=mkbDgm5UJ8ihamdZE3fNkAvV6UxfW5tm-0o0Z9Jke_E,8235
|
254
|
+
junifer-0.0.4.dev814.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
255
|
+
junifer-0.0.4.dev814.dist-info/entry_points.txt,sha256=DxFvKq0pOqRunAK0FxwJcoDfV1-dZvsFDpD5HRqSDhw,48
|
256
|
+
junifer-0.0.4.dev814.dist-info/top_level.txt,sha256=4bAq1R2QFQ4b3hohjys2JBvxrl0GKk5LNFzYvz9VGcA,8
|
257
|
+
junifer-0.0.4.dev814.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|