junifer 0.0.6.dev258__py3-none-any.whl → 0.0.6.dev266__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/datagrabber/multiple.py +6 -2
- junifer/datagrabber/pattern.py +58 -52
- junifer/datagrabber/pattern_validation_mixin.py +3 -3
- junifer/datagrabber/tests/test_datalad_base.py +2 -2
- junifer/datagrabber/tests/test_multiple.py +48 -2
- junifer/datagrabber/tests/test_pattern_datalad.py +1 -1
- junifer/typing/__init__.pyi +2 -0
- junifer/typing/_typing.py +4 -0
- {junifer-0.0.6.dev258.dist-info → junifer-0.0.6.dev266.dist-info}/METADATA +38 -38
- {junifer-0.0.6.dev258.dist-info → junifer-0.0.6.dev266.dist-info}/RECORD +16 -16
- {junifer-0.0.6.dev258.dist-info → junifer-0.0.6.dev266.dist-info}/WHEEL +1 -1
- {junifer-0.0.6.dev258.dist-info → junifer-0.0.6.dev266.dist-info}/AUTHORS.rst +0 -0
- {junifer-0.0.6.dev258.dist-info → junifer-0.0.6.dev266.dist-info}/LICENSE.md +0 -0
- {junifer-0.0.6.dev258.dist-info → junifer-0.0.6.dev266.dist-info}/entry_points.txt +0 -0
- {junifer-0.0.6.dev258.dist-info → junifer-0.0.6.dev266.dist-info}/top_level.txt +0 -0
junifer/_version.py
CHANGED
@@ -12,5 +12,5 @@ __version__: str
|
|
12
12
|
__version_tuple__: VERSION_TUPLE
|
13
13
|
version_tuple: VERSION_TUPLE
|
14
14
|
|
15
|
-
__version__ = version = '0.0.6.
|
16
|
-
__version_tuple__ = version_tuple = (0, 0, 6, '
|
15
|
+
__version__ = version = '0.0.6.dev266'
|
16
|
+
__version_tuple__ = version_tuple = (0, 0, 6, 'dev266')
|
junifer/datagrabber/multiple.py
CHANGED
@@ -111,8 +111,12 @@ class MultipleDataGrabber(BaseDataGrabber):
|
|
111
111
|
|
112
112
|
# Update all the metas again
|
113
113
|
for kind in out:
|
114
|
-
|
115
|
-
|
114
|
+
to_update = out[kind]
|
115
|
+
if not isinstance(to_update, list):
|
116
|
+
to_update = [to_update]
|
117
|
+
for t_kind in to_update:
|
118
|
+
self.update_meta(t_kind, "datagrabber")
|
119
|
+
t_kind["meta"]["datagrabber"]["datagrabbers"] = metas
|
116
120
|
return out
|
117
121
|
|
118
122
|
def __enter__(self) -> "MultipleDataGrabber":
|
junifer/datagrabber/pattern.py
CHANGED
@@ -13,6 +13,7 @@ from typing import Optional, Union
|
|
13
13
|
import numpy as np
|
14
14
|
|
15
15
|
from ..api.decorators import register_datagrabber
|
16
|
+
from ..typing import DataGrabberPatterns
|
16
17
|
from ..utils import logger, raise_error
|
17
18
|
from .base import BaseDataGrabber
|
18
19
|
from .pattern_validation_mixin import PatternValidationMixin
|
@@ -171,7 +172,7 @@ class PatternDataGrabber(BaseDataGrabber, PatternValidationMixin):
|
|
171
172
|
def __init__(
|
172
173
|
self,
|
173
174
|
types: list[str],
|
174
|
-
patterns:
|
175
|
+
patterns: DataGrabberPatterns,
|
175
176
|
replacements: Union[list[str], str],
|
176
177
|
datadir: Union[str, Path],
|
177
178
|
confounds_format: Optional[str] = None,
|
@@ -478,58 +479,63 @@ class PatternDataGrabber(BaseDataGrabber, PatternValidationMixin):
|
|
478
479
|
t_type = self.types[t_idx]
|
479
480
|
types_element = set()
|
480
481
|
|
481
|
-
#
|
482
|
-
|
483
|
-
# Conditional
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
for
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
#
|
517
|
-
if
|
518
|
-
elements
|
482
|
+
# Data type dictionary
|
483
|
+
patterns = self.patterns[t_type]
|
484
|
+
# Conditional for list dtype vals like Warp
|
485
|
+
if not isinstance(patterns, list):
|
486
|
+
patterns = [patterns]
|
487
|
+
for t_pattern in patterns:
|
488
|
+
# Conditional fetch of base pattern for getting elements
|
489
|
+
pattern = None
|
490
|
+
# Try for data type pattern
|
491
|
+
pattern = t_pattern.get("pattern")
|
492
|
+
# Try for nested data type pattern
|
493
|
+
if pattern is None and self.partial_pattern_ok:
|
494
|
+
for v in t_pattern.values():
|
495
|
+
if isinstance(v, dict) and "pattern" in v:
|
496
|
+
pattern = v["pattern"]
|
497
|
+
break
|
498
|
+
|
499
|
+
# Replace the pattern
|
500
|
+
(
|
501
|
+
re_pattern,
|
502
|
+
glob_pattern,
|
503
|
+
t_replacements,
|
504
|
+
) = self._replace_patterns_regex(pattern)
|
505
|
+
for fname in self.datadir.glob(glob_pattern):
|
506
|
+
suffix = fname.relative_to(self.datadir).as_posix()
|
507
|
+
m = re.match(re_pattern, suffix)
|
508
|
+
if m is not None:
|
509
|
+
# Find the groups of replacements present in the
|
510
|
+
# pattern. If one replacement is not present, set it
|
511
|
+
# to None. We will take care of this in the
|
512
|
+
# intersection.
|
513
|
+
t_element = tuple([m.group(k) for k in t_replacements])
|
514
|
+
if len(self.replacements) == 1:
|
515
|
+
t_element = t_element[0]
|
516
|
+
types_element.add(t_element)
|
517
|
+
# TODO: does this make sense as elements is always None
|
518
|
+
if elements is None:
|
519
|
+
elements = types_element
|
519
520
|
else:
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
)
|
531
|
-
|
532
|
-
|
521
|
+
# Do the intersection by filtering out elements in which
|
522
|
+
# the replacements are not None
|
523
|
+
if t_replacements == self.replacements:
|
524
|
+
elements.intersection(types_element)
|
525
|
+
else:
|
526
|
+
t_repl_idx = [
|
527
|
+
i
|
528
|
+
for i, v in enumerate(self.replacements)
|
529
|
+
if v in t_replacements
|
530
|
+
]
|
531
|
+
new_elements = set()
|
532
|
+
for t_element in elements:
|
533
|
+
if (
|
534
|
+
tuple(np.array(t_element)[t_repl_idx])
|
535
|
+
in types_element
|
536
|
+
):
|
537
|
+
new_elements.add(t_element)
|
538
|
+
elements = new_elements
|
533
539
|
if elements is None:
|
534
540
|
elements = set()
|
535
541
|
return list(elements)
|
@@ -3,8 +3,8 @@
|
|
3
3
|
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
4
4
|
# License: AGPL
|
5
5
|
|
6
|
-
from typing import Union
|
7
6
|
|
7
|
+
from ..typing import DataGrabberPatterns
|
8
8
|
from ..utils import logger, raise_error, warn_with_log
|
9
9
|
|
10
10
|
|
@@ -96,7 +96,7 @@ class PatternValidationMixin:
|
|
96
96
|
def _validate_replacements(
|
97
97
|
self,
|
98
98
|
replacements: list[str],
|
99
|
-
patterns:
|
99
|
+
patterns: DataGrabberPatterns,
|
100
100
|
partial_pattern_ok: bool,
|
101
101
|
) -> None:
|
102
102
|
"""Validate the replacements.
|
@@ -263,7 +263,7 @@ class PatternValidationMixin:
|
|
263
263
|
self,
|
264
264
|
types: list[str],
|
265
265
|
replacements: list[str],
|
266
|
-
patterns:
|
266
|
+
patterns: DataGrabberPatterns,
|
267
267
|
partial_pattern_ok: bool = False,
|
268
268
|
) -> None:
|
269
269
|
"""Validate the patterns.
|
@@ -14,8 +14,8 @@ from junifer.datagrabber import DataladDataGrabber
|
|
14
14
|
_testing_dataset = {
|
15
15
|
"example_bids": {
|
16
16
|
"uri": "https://gin.g-node.org/juaml/datalad-example-bids",
|
17
|
-
"commit": "
|
18
|
-
"id": "
|
17
|
+
"commit": "3f288c8725207ae0c9b3616e093e78cda192b570",
|
18
|
+
"id": "582b9696-f13f-42e4-9587-b4e62aa2a8e7",
|
19
19
|
},
|
20
20
|
"example_bids_ses": {
|
21
21
|
"uri": "https://gin.g-node.org/juaml/datalad-example-bids-ses",
|
@@ -29,7 +29,7 @@ def test_MultipleDataGrabber() -> None:
|
|
29
29
|
dg1 = PatternDataladDataGrabber(
|
30
30
|
rootdir=rootdir,
|
31
31
|
uri=repo_uri,
|
32
|
-
types=["T1w"],
|
32
|
+
types=["T1w", "Warp"],
|
33
33
|
patterns={
|
34
34
|
"T1w": {
|
35
35
|
"pattern": (
|
@@ -44,6 +44,28 @@ def test_MultipleDataGrabber() -> None:
|
|
44
44
|
"space": "native",
|
45
45
|
},
|
46
46
|
},
|
47
|
+
"Warp": [
|
48
|
+
{
|
49
|
+
"pattern": (
|
50
|
+
"{subject}/{session}/anat/"
|
51
|
+
"{subject}_{session}_from-MNI152NLin2009cAsym_to-T1w_"
|
52
|
+
"xfm.h5"
|
53
|
+
),
|
54
|
+
"src": "MNI152NLin2009cAsym",
|
55
|
+
"dst": "native",
|
56
|
+
"warper": "ants",
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"pattern": (
|
60
|
+
"{subject}/{session}/anat/"
|
61
|
+
"{subject}_{session}_from-T1w_to-MNI152NLin2009cAsym_"
|
62
|
+
"xfm.h5"
|
63
|
+
),
|
64
|
+
"src": "native",
|
65
|
+
"dst": "MNI152NLin2009cAsym",
|
66
|
+
"warper": "ants",
|
67
|
+
},
|
68
|
+
],
|
47
69
|
},
|
48
70
|
replacements=replacements,
|
49
71
|
)
|
@@ -75,6 +97,7 @@ def test_MultipleDataGrabber() -> None:
|
|
75
97
|
|
76
98
|
types = dg.get_types()
|
77
99
|
assert "T1w" in types
|
100
|
+
assert "Warp" in types
|
78
101
|
assert "BOLD" in types
|
79
102
|
|
80
103
|
expected_subs = [
|
@@ -90,6 +113,7 @@ def test_MultipleDataGrabber() -> None:
|
|
90
113
|
elem = dg[("sub-01", "ses-01")]
|
91
114
|
# Check data types
|
92
115
|
assert "T1w" in elem
|
116
|
+
assert "Warp" in elem
|
93
117
|
assert "BOLD" in elem
|
94
118
|
# Check meta
|
95
119
|
assert "meta" in elem["BOLD"]
|
@@ -111,7 +135,7 @@ def test_MultipleDataGrabber_no_intersection() -> None:
|
|
111
135
|
dg1 = PatternDataladDataGrabber(
|
112
136
|
rootdir=rootdir,
|
113
137
|
uri=_testing_dataset["example_bids"]["uri"],
|
114
|
-
types=["T1w"],
|
138
|
+
types=["T1w", "Warp"],
|
115
139
|
patterns={
|
116
140
|
"T1w": {
|
117
141
|
"pattern": (
|
@@ -119,6 +143,28 @@ def test_MultipleDataGrabber_no_intersection() -> None:
|
|
119
143
|
),
|
120
144
|
"space": "native",
|
121
145
|
},
|
146
|
+
"Warp": [
|
147
|
+
{
|
148
|
+
"pattern": (
|
149
|
+
"{subject}/{session}/anat/"
|
150
|
+
"{subject}_{session}_from-MNI152NLin2009cAsym_to-T1w_"
|
151
|
+
"xfm.h5"
|
152
|
+
),
|
153
|
+
"src": "MNI152NLin2009cAsym",
|
154
|
+
"dst": "native",
|
155
|
+
"warper": "ants",
|
156
|
+
},
|
157
|
+
{
|
158
|
+
"pattern": (
|
159
|
+
"{subject}/{session}/anat/"
|
160
|
+
"{subject}_{session}_from-T1w_to-MNI152NLin2009cAsym_"
|
161
|
+
"xfm.h5"
|
162
|
+
),
|
163
|
+
"src": "native",
|
164
|
+
"dst": "MNI152NLin2009cAsym",
|
165
|
+
"warper": "ants",
|
166
|
+
},
|
167
|
+
],
|
122
168
|
},
|
123
169
|
replacements=replacements,
|
124
170
|
)
|
@@ -15,7 +15,7 @@ from junifer.datagrabber import PatternDataladDataGrabber
|
|
15
15
|
_testing_dataset = {
|
16
16
|
"example_bids": {
|
17
17
|
"uri": "https://gin.g-node.org/juaml/datalad-example-bids",
|
18
|
-
"commit": "
|
18
|
+
"commit": "3f288c8725207ae0c9b3616e093e78cda192b570",
|
19
19
|
"id": "8fddff30-6993-420a-9d1e-b5b028c59468",
|
20
20
|
},
|
21
21
|
"example_bids_ses": {
|
junifer/typing/__init__.pyi
CHANGED
@@ -8,6 +8,7 @@ __all__ = [
|
|
8
8
|
"ConditionalDependencies",
|
9
9
|
"ExternalDependencies",
|
10
10
|
"MarkerInOutMappings",
|
11
|
+
"DataGrabberPatterns",
|
11
12
|
]
|
12
13
|
|
13
14
|
from ._typing import (
|
@@ -20,4 +21,5 @@ from ._typing import (
|
|
20
21
|
ConditionalDependencies,
|
21
22
|
ExternalDependencies,
|
22
23
|
MarkerInOutMappings,
|
24
|
+
DataGrabberPatterns,
|
23
25
|
)
|
junifer/typing/_typing.py
CHANGED
@@ -28,6 +28,7 @@ __all__ = [
|
|
28
28
|
"ConditionalDependencies",
|
29
29
|
"ExternalDependencies",
|
30
30
|
"MarkerInOutMappings",
|
31
|
+
"DataGrabberPatterns",
|
31
32
|
]
|
32
33
|
|
33
34
|
|
@@ -56,3 +57,6 @@ ConditionalDependencies = Sequence[
|
|
56
57
|
]
|
57
58
|
ExternalDependencies = Sequence[MutableMapping[str, Union[str, Sequence[str]]]]
|
58
59
|
MarkerInOutMappings = MutableMapping[str, MutableMapping[str, str]]
|
60
|
+
DataGrabberPatterns = dict[
|
61
|
+
str, Union[dict[str, str], Sequence[dict[str, str]]]
|
62
|
+
]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.6.
|
3
|
+
Version: 0.0.6.dev266
|
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>
|
@@ -28,47 +28,47 @@ Requires-Python: >=3.9
|
|
28
28
|
Description-Content-Type: text/markdown
|
29
29
|
License-File: LICENSE.md
|
30
30
|
License-File: AUTHORS.rst
|
31
|
-
Requires-Dist: click
|
32
|
-
Requires-Dist: numpy
|
33
|
-
Requires-Dist: scipy
|
34
|
-
Requires-Dist: datalad
|
35
|
-
Requires-Dist: pandas
|
36
|
-
Requires-Dist: nibabel
|
37
|
-
Requires-Dist: nilearn
|
38
|
-
Requires-Dist: sqlalchemy
|
39
|
-
Requires-Dist: ruamel.yaml
|
40
|
-
Requires-Dist: h5py
|
41
|
-
Requires-Dist: httpx[http2]
|
42
|
-
Requires-Dist: tqdm
|
43
|
-
Requires-Dist: templateflow
|
44
|
-
Requires-Dist: lapy
|
45
|
-
Requires-Dist:
|
46
|
-
Requires-Dist:
|
47
|
-
Requires-Dist: looseversion
|
31
|
+
Requires-Dist: click<8.2,>=8.1.3
|
32
|
+
Requires-Dist: numpy<2.0.0,>=1.26.0
|
33
|
+
Requires-Dist: scipy<=1.15.0,>=1.10.0
|
34
|
+
Requires-Dist: datalad<1.2.0,>=1.0.0
|
35
|
+
Requires-Dist: pandas<2.3.0,>=2.0.0
|
36
|
+
Requires-Dist: nibabel<5.4.0,>=5.2.0
|
37
|
+
Requires-Dist: nilearn<=0.10.4,>=0.10.3
|
38
|
+
Requires-Dist: sqlalchemy<=2.1.0,>=2.0.25
|
39
|
+
Requires-Dist: ruamel.yaml<0.19,>=0.17
|
40
|
+
Requires-Dist: h5py>=3.10
|
41
|
+
Requires-Dist: httpx[http2]<0.28.0,>=0.26.0
|
42
|
+
Requires-Dist: tqdm<4.67.0,>=4.66.1
|
43
|
+
Requires-Dist: templateflow>=23.0.0
|
44
|
+
Requires-Dist: lapy<2.0.0,>=1.0.0
|
45
|
+
Requires-Dist: lazy_loader==0.4
|
46
|
+
Requires-Dist: importlib_metadata; python_version < "3.9"
|
47
|
+
Requires-Dist: looseversion==1.3.0; python_version >= "3.12"
|
48
48
|
Provides-Extra: all
|
49
|
-
Requires-Dist: bctpy
|
50
|
-
Requires-Dist: neurokit2
|
49
|
+
Requires-Dist: bctpy==0.6.0; extra == "all"
|
50
|
+
Requires-Dist: neurokit2>=0.1.7; extra == "all"
|
51
51
|
Provides-Extra: bct
|
52
|
-
Requires-Dist: bctpy
|
52
|
+
Requires-Dist: bctpy==0.6.0; extra == "bct"
|
53
|
+
Provides-Extra: onthefly
|
54
|
+
Requires-Dist: bctpy==0.6.0; extra == "onthefly"
|
55
|
+
Provides-Extra: neurokit2
|
56
|
+
Requires-Dist: neurokit2>=0.1.7; extra == "neurokit2"
|
53
57
|
Provides-Extra: dev
|
54
|
-
Requires-Dist: tox
|
55
|
-
Requires-Dist: pre-commit
|
58
|
+
Requires-Dist: tox; extra == "dev"
|
59
|
+
Requires-Dist: pre-commit; extra == "dev"
|
56
60
|
Provides-Extra: docs
|
57
|
-
Requires-Dist: seaborn
|
58
|
-
Requires-Dist: sphinx
|
59
|
-
Requires-Dist: sphinx-gallery
|
60
|
-
Requires-Dist: furo
|
61
|
-
Requires-Dist: numpydoc
|
62
|
-
Requires-Dist: julearn
|
63
|
-
Requires-Dist: sphinx-copybutton
|
64
|
-
Requires-Dist: towncrier
|
65
|
-
Requires-Dist: sphinxcontrib-mermaid
|
66
|
-
Requires-Dist: sphinxcontrib-towncrier
|
67
|
-
Requires-Dist: setuptools-scm
|
68
|
-
Provides-Extra: neurokit2
|
69
|
-
Requires-Dist: neurokit2 >=0.1.7 ; extra == 'neurokit2'
|
70
|
-
Provides-Extra: onthefly
|
71
|
-
Requires-Dist: bctpy ==0.6.0 ; extra == 'onthefly'
|
61
|
+
Requires-Dist: seaborn<0.14.0,>=0.13.0; extra == "docs"
|
62
|
+
Requires-Dist: sphinx<8.1.0,>=7.3.0; extra == "docs"
|
63
|
+
Requires-Dist: sphinx-gallery<0.18.0,>=0.17.0; extra == "docs"
|
64
|
+
Requires-Dist: furo<2024.9.0,>=2024.4.27; extra == "docs"
|
65
|
+
Requires-Dist: numpydoc<1.9.0,>=1.6.0; extra == "docs"
|
66
|
+
Requires-Dist: julearn==0.3.3; extra == "docs"
|
67
|
+
Requires-Dist: sphinx-copybutton<0.5.3,>=0.5.1; extra == "docs"
|
68
|
+
Requires-Dist: towncrier<24.7.0,>=23.10.0; extra == "docs"
|
69
|
+
Requires-Dist: sphinxcontrib-mermaid<0.10,>=0.8.1; extra == "docs"
|
70
|
+
Requires-Dist: sphinxcontrib-towncrier==0.4.0a0; extra == "docs"
|
71
|
+
Requires-Dist: setuptools-scm>=8; extra == "docs"
|
72
72
|
|
73
73
|

|
74
74
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
junifer/__init__.py,sha256=2McgH1yNue6Z1V26-uN_mfMjbTcx4CLhym-DMBl5xA4,266
|
2
2
|
junifer/__init__.pyi,sha256=SsTvgq2Dod6UqJN96GH1lCphH6hJQQurEJHGNhHjGUI,508
|
3
|
-
junifer/_version.py,sha256
|
3
|
+
junifer/_version.py,sha256=fiEZu3h8Evv4yCwsFll_Ls-APBLYdJ7Qnm3jUM3IXXI,428
|
4
4
|
junifer/conftest.py,sha256=PWYkkRDU8ly2lYwv7VBKMHje4et6HX7Yey3Md_I2KbA,613
|
5
5
|
junifer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
6
|
junifer/stats.py,sha256=pQCy9u4q3Wp0kMFmS0BVIfU8UCKsRqrNbyprhtlNUOg,6225
|
@@ -125,10 +125,10 @@ junifer/datagrabber/__init__.pyi,sha256=zOQE4TaCKXBTHnNqgmECtsszWIOHYiQ1CUEeXXFU
|
|
125
125
|
junifer/datagrabber/base.py,sha256=a3_fUZIN5Bqhq2f4ldpwk_eWeSVRDpDmx2QGIKzCtkg,6761
|
126
126
|
junifer/datagrabber/datalad_base.py,sha256=2g-e_pLG0Legx4BvisrnGWYi1NCTyOkCi09QxbKX18M,11415
|
127
127
|
junifer/datagrabber/dmcc13_benchmark.py,sha256=VMyiwvkr4qSvzBICSksPPKOI2w_WVo06H89Url-hrNs,12819
|
128
|
-
junifer/datagrabber/multiple.py,sha256=
|
129
|
-
junifer/datagrabber/pattern.py,sha256=
|
128
|
+
junifer/datagrabber/multiple.py,sha256=4tCOzojs3hoG7daHJJ7HUsx15atWR5nTmyP0S0__aig,6666
|
129
|
+
junifer/datagrabber/pattern.py,sha256=UwJQ0MObBIS6eHH9FfoM_sBYuNM9n5NAX7DA0HdtL1A,18709
|
130
130
|
junifer/datagrabber/pattern_datalad.py,sha256=QPWXIToYHDU4mvm9lz_hy8BjdqqoCXiGiJKCcATrT-w,4568
|
131
|
-
junifer/datagrabber/pattern_validation_mixin.py,sha256=
|
131
|
+
junifer/datagrabber/pattern_validation_mixin.py,sha256=MlcQIDyPHtqPcq1eHkwvrp-m5MhZaxTG1l2j3JM6FOc,19236
|
132
132
|
junifer/datagrabber/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
133
133
|
junifer/datagrabber/aomic/__init__.py,sha256=ATxzXq9NBPmWowTMuL77zqrmIbbnk0Wd1iXtXCP3XDg,266
|
134
134
|
junifer/datagrabber/aomic/__init__.pyi,sha256=Rp6C075fZDdKY8VIq508_g4NhVj8bWzR6zb9yln761Q,189
|
@@ -146,11 +146,11 @@ junifer/datagrabber/hcp1200/hcp1200.py,sha256=L_JTY0RYQ_Wst2La5EaGVDbya7IfSkTVkK
|
|
146
146
|
junifer/datagrabber/hcp1200/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
147
147
|
junifer/datagrabber/hcp1200/tests/test_hcp1200.py,sha256=HeXlD6wjvDq0EyqlB_nPqfXSIhAzALYAYjSCAjNOGGg,10972
|
148
148
|
junifer/datagrabber/tests/test_base.py,sha256=fZdVhNhvfht9lpTHrAUf5E6mAfNNUP7OTQ5KLaBQ1gI,3506
|
149
|
-
junifer/datagrabber/tests/test_datalad_base.py,sha256=
|
149
|
+
junifer/datagrabber/tests/test_datalad_base.py,sha256=5QSgsloHROVjp0g1UxXlk-Zmk-vHsLHGn05DJmmNkTI,16261
|
150
150
|
junifer/datagrabber/tests/test_dmcc13_benchmark.py,sha256=QSdYAAwAj1DoE1oLhoraIc4lAgUgIaJyrtcOs_witzM,9914
|
151
|
-
junifer/datagrabber/tests/test_multiple.py,sha256=
|
151
|
+
junifer/datagrabber/tests/test_multiple.py,sha256=tZBQhlEiSE1PeQ5E3TtuVgsHENquna9t39p54AJ-O5w,9963
|
152
152
|
junifer/datagrabber/tests/test_pattern.py,sha256=H55jYRPfT3rMsoIQOAnWJgw3nGrkU7m2xFa3-ed6NQE,9527
|
153
|
-
junifer/datagrabber/tests/test_pattern_datalad.py,sha256=
|
153
|
+
junifer/datagrabber/tests/test_pattern_datalad.py,sha256=HJ3dQ3XSlMZ3UT1w2b2xpdPqvfmNxRWmla9zhRejWYI,6483
|
154
154
|
junifer/datagrabber/tests/test_pattern_validation_mixin.py,sha256=KU3xha3Mo7IX_5Tp4RL5awvEzZrX43OmrRFjeqMYVgk,7498
|
155
155
|
junifer/datareader/__init__.py,sha256=CDWjL4PQthskxWX5d0ASro6YIfTT1Tb7ZmyDllWWZso,318
|
156
156
|
junifer/datareader/__init__.pyi,sha256=VOqhh-C3-eqapHVR7-F9Ulc_6iyHTb35XLoGb2DCRaA,72
|
@@ -326,8 +326,8 @@ junifer/testing/tests/test_testing_registry.py,sha256=MK4a_q4MHieCvYhnhuPm_dH76l
|
|
326
326
|
junifer/tests/test_main.py,sha256=GMff7jlisGM9_FsiUwWDte43j-KQJGFRYZpwRRqTkd8,373
|
327
327
|
junifer/tests/test_stats.py,sha256=NljoGFu2JOPADbi9W0WeUHwpf8nZSdOkcCgCv-Z1fY4,4149
|
328
328
|
junifer/typing/__init__.py,sha256=e0UbuxozXUIxz8h8pLokMOxZV629Q1lnA7vvgm95WF0,215
|
329
|
-
junifer/typing/__init__.pyi,sha256=
|
330
|
-
junifer/typing/_typing.py,sha256=
|
329
|
+
junifer/typing/__init__.pyi,sha256=WbwaRGYrmDCnHtHDvxDshnEu_jh1fUjAd5VMOnpa1u4,504
|
330
|
+
junifer/typing/_typing.py,sha256=cgQQq7CAFPeZTxko-22mWF2cp_S82JVNLTwMg0vsMAw,1507
|
331
331
|
junifer/utils/__init__.py,sha256=I3tYaePAD_ZEU-36-TJ_OYeqW_aMmi5MZ3jmqie6RfU,260
|
332
332
|
junifer/utils/__init__.pyi,sha256=fOijdjcdG5mBo6EdMB8gRZtzuS_zgfxRLBm1bBOQYK4,344
|
333
333
|
junifer/utils/_yaml.py,sha256=jpTroTI2rajECj0RXGCXaOwLpad858WzI7Jg-eXJ_jU,336
|
@@ -339,10 +339,10 @@ junifer/utils/singleton.py,sha256=pp2jOGXmTdZSf4XDL-5S79YKY1Iag1inyWBjVC0Ic9U,11
|
|
339
339
|
junifer/utils/tests/test_fs.py,sha256=WQS7cKlKEZ742CIuiOYYpueeAhY9PqlastfDVpVVtvE,923
|
340
340
|
junifer/utils/tests/test_helpers.py,sha256=k5qqfxK8dFyuewTJyR1Qn6-nFaYNuVr0ysc18bfPjyU,929
|
341
341
|
junifer/utils/tests/test_logging.py,sha256=duO4ou365hxwa_kwihFtKPLaL6LC5XHiyhOijrrngbA,8009
|
342
|
-
junifer-0.0.6.
|
343
|
-
junifer-0.0.6.
|
344
|
-
junifer-0.0.6.
|
345
|
-
junifer-0.0.6.
|
346
|
-
junifer-0.0.6.
|
347
|
-
junifer-0.0.6.
|
348
|
-
junifer-0.0.6.
|
342
|
+
junifer-0.0.6.dev266.dist-info/AUTHORS.rst,sha256=rmULKpchpSol4ExWFdm-qu4fkpSZPYqIESVJBZtGb6E,163
|
343
|
+
junifer-0.0.6.dev266.dist-info/LICENSE.md,sha256=MqCnOBu8uXsEOzRZWh9EBVfVz-kE9NkXcLCrtGXo2yU,34354
|
344
|
+
junifer-0.0.6.dev266.dist-info/METADATA,sha256=9Lw969usLGZMdSIMvJElhhirszkEB21kSjZ8LNdfVNw,8429
|
345
|
+
junifer-0.0.6.dev266.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
346
|
+
junifer-0.0.6.dev266.dist-info/entry_points.txt,sha256=6O8ru0BP-SP7YMUZiizFNoaZ2HvJpadO2G7nKk4PwjI,48
|
347
|
+
junifer-0.0.6.dev266.dist-info/top_level.txt,sha256=4bAq1R2QFQ4b3hohjys2JBvxrl0GKk5LNFzYvz9VGcA,8
|
348
|
+
junifer-0.0.6.dev266.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|