junifer 0.0.6.dev201__py3-none-any.whl → 0.0.6.dev213__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/conftest.py +25 -0
- junifer/data/coordinates/_coordinates.py +2 -3
- junifer/data/masks/_masks.py +2 -3
- junifer/data/parcellations/_parcellations.py +2 -3
- junifer/data/pipeline_data_registry_base.py +2 -1
- junifer/datagrabber/datalad_base.py +4 -4
- junifer/datagrabber/hcp1200/tests/test_hcp1200.py +6 -1
- junifer/markers/falff/_afni_falff.py +2 -3
- junifer/markers/falff/_junifer_falff.py +2 -3
- junifer/markers/reho/_afni_reho.py +2 -3
- junifer/markers/reho/_junifer_reho.py +2 -3
- junifer/pipeline/pipeline_component_registry.py +2 -3
- junifer/pipeline/workdir_manager.py +2 -3
- junifer/{pipeline → utils}/singleton.py +19 -14
- {junifer-0.0.6.dev201.dist-info → junifer-0.0.6.dev213.dist-info}/METADATA +1 -1
- {junifer-0.0.6.dev201.dist-info → junifer-0.0.6.dev213.dist-info}/RECORD +22 -21
- {junifer-0.0.6.dev201.dist-info → junifer-0.0.6.dev213.dist-info}/AUTHORS.rst +0 -0
- {junifer-0.0.6.dev201.dist-info → junifer-0.0.6.dev213.dist-info}/LICENSE.md +0 -0
- {junifer-0.0.6.dev201.dist-info → junifer-0.0.6.dev213.dist-info}/WHEEL +0 -0
- {junifer-0.0.6.dev201.dist-info → junifer-0.0.6.dev213.dist-info}/entry_points.txt +0 -0
- {junifer-0.0.6.dev201.dist-info → junifer-0.0.6.dev213.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.dev213'
|
16
|
+
__version_tuple__ = version_tuple = (0, 0, 6, 'dev213')
|
junifer/conftest.py
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
"""Provide conftest for pytest."""
|
2
|
+
|
3
|
+
# Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
|
4
|
+
# License: AGPL
|
5
|
+
|
6
|
+
import pytest
|
7
|
+
|
8
|
+
from junifer.utils.singleton import Singleton
|
9
|
+
|
10
|
+
|
11
|
+
@pytest.fixture(autouse=True)
|
12
|
+
def reset_singletons() -> None:
|
13
|
+
"""Reset all singletons."""
|
14
|
+
to_clean = ["WorkDirManager"]
|
15
|
+
to_remove = [
|
16
|
+
v for k, v in Singleton.instances.items() if k.__name__ in to_clean
|
17
|
+
]
|
18
|
+
Singleton.instances = {
|
19
|
+
k: v
|
20
|
+
for k, v in Singleton.instances.items()
|
21
|
+
if k.__name__ not in to_clean
|
22
|
+
}
|
23
|
+
# Force deleting the singletons
|
24
|
+
for elem in to_remove:
|
25
|
+
del elem
|
@@ -11,8 +11,8 @@ import numpy as np
|
|
11
11
|
import pandas as pd
|
12
12
|
from numpy.typing import ArrayLike
|
13
13
|
|
14
|
-
from ...pipeline.singleton import singleton
|
15
14
|
from ...utils import logger, raise_error
|
15
|
+
from ...utils.singleton import Singleton
|
16
16
|
from ..pipeline_data_registry_base import BasePipelineDataRegistry
|
17
17
|
from ._ants_coordinates_warper import ANTsCoordinatesWarper
|
18
18
|
from ._fsl_coordinates_warper import FSLCoordinatesWarper
|
@@ -21,8 +21,7 @@ from ._fsl_coordinates_warper import FSLCoordinatesWarper
|
|
21
21
|
__all__ = ["CoordinatesRegistry"]
|
22
22
|
|
23
23
|
|
24
|
-
|
25
|
-
class CoordinatesRegistry(BasePipelineDataRegistry):
|
24
|
+
class CoordinatesRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
26
25
|
"""Class for coordinates data registry.
|
27
26
|
|
28
27
|
This class is a singleton and is used for managing available coordinates
|
junifer/data/masks/_masks.py
CHANGED
@@ -25,8 +25,8 @@ from nilearn.masking import (
|
|
25
25
|
intersect_masks,
|
26
26
|
)
|
27
27
|
|
28
|
-
from ...pipeline.singleton import singleton
|
29
28
|
from ...utils import logger, raise_error
|
29
|
+
from ...utils.singleton import Singleton
|
30
30
|
from ..pipeline_data_registry_base import BasePipelineDataRegistry
|
31
31
|
from ..template_spaces import get_template
|
32
32
|
from ..utils import closest_resolution
|
@@ -126,8 +126,7 @@ def compute_brain_mask(
|
|
126
126
|
return new_img_like(target_img, mask) # type: ignore
|
127
127
|
|
128
128
|
|
129
|
-
|
130
|
-
class MaskRegistry(BasePipelineDataRegistry):
|
129
|
+
class MaskRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
131
130
|
"""Class for mask data registry.
|
132
131
|
|
133
132
|
This class is a singleton and is used for managing available mask
|
@@ -20,8 +20,8 @@ import numpy as np
|
|
20
20
|
import pandas as pd
|
21
21
|
from nilearn import datasets, image
|
22
22
|
|
23
|
-
from ...pipeline.singleton import singleton
|
24
23
|
from ...utils import logger, raise_error, warn_with_log
|
24
|
+
from ...utils.singleton import Singleton
|
25
25
|
from ..pipeline_data_registry_base import BasePipelineDataRegistry
|
26
26
|
from ..utils import closest_resolution
|
27
27
|
from ._ants_parcellation_warper import ANTsParcellationWarper
|
@@ -38,8 +38,7 @@ __all__ = [
|
|
38
38
|
]
|
39
39
|
|
40
40
|
|
41
|
-
|
42
|
-
class ParcellationRegistry(BasePipelineDataRegistry):
|
41
|
+
class ParcellationRegistry(BasePipelineDataRegistry, metaclass=Singleton):
|
43
42
|
"""Class for parcellation data registry.
|
44
43
|
|
45
44
|
This class is a singleton and is used for managing available parcellation
|
@@ -7,12 +7,13 @@ from abc import ABC, abstractmethod
|
|
7
7
|
from typing import Any, List, Mapping
|
8
8
|
|
9
9
|
from ..utils import raise_error
|
10
|
+
from ..utils.singleton import ABCSingleton
|
10
11
|
|
11
12
|
|
12
13
|
__all__ = ["BasePipelineDataRegistry"]
|
13
14
|
|
14
15
|
|
15
|
-
class BasePipelineDataRegistry(ABC):
|
16
|
+
class BasePipelineDataRegistry(ABC, metaclass=ABCSingleton):
|
16
17
|
"""Abstract base class for pipeline data registry.
|
17
18
|
|
18
19
|
For every interface that is required, one needs to provide a concrete
|
@@ -7,7 +7,6 @@
|
|
7
7
|
|
8
8
|
import atexit
|
9
9
|
import os
|
10
|
-
import shutil
|
11
10
|
import tempfile
|
12
11
|
from pathlib import Path
|
13
12
|
from typing import Dict, Optional, Tuple, Union
|
@@ -17,6 +16,7 @@ import datalad.api as dl
|
|
17
16
|
from datalad.support.exceptions import IncompleteResultsError
|
18
17
|
from datalad.support.gitrepo import GitRepo
|
19
18
|
|
19
|
+
from ..pipeline import WorkDirManager
|
20
20
|
from ..utils import logger, raise_error, warn_with_log
|
21
21
|
from .base import BaseDataGrabber
|
22
22
|
|
@@ -78,7 +78,8 @@ class DataladDataGrabber(BaseDataGrabber):
|
|
78
78
|
if datadir is None:
|
79
79
|
logger.info("`datadir` is None, creating a temporary directory")
|
80
80
|
# Create temporary directory
|
81
|
-
tmpdir =
|
81
|
+
tmpdir = WorkDirManager().get_tempdir(prefix="datalad")
|
82
|
+
self._tmpdir = tmpdir
|
82
83
|
datadir = tmpdir / "datadir"
|
83
84
|
datadir.mkdir(parents=True, exist_ok=False)
|
84
85
|
logger.info(f"`datadir` set to {datadir}")
|
@@ -104,7 +105,6 @@ class DataladDataGrabber(BaseDataGrabber):
|
|
104
105
|
"Datalad locks set to "
|
105
106
|
f"{datalad.cfg.get('datalad.locations.locks')}"
|
106
107
|
)
|
107
|
-
self._tmpdir = tmpdir
|
108
108
|
atexit.register(self._rmtmpdir)
|
109
109
|
# TODO: uri can be converted to a positional argument
|
110
110
|
if uri is None:
|
@@ -129,7 +129,7 @@ class DataladDataGrabber(BaseDataGrabber):
|
|
129
129
|
"""Remove temporary directory if it exists."""
|
130
130
|
if self._tmpdir.exists():
|
131
131
|
logger.debug("Removing temporary directory")
|
132
|
-
|
132
|
+
WorkDirManager().delete_tempdir(self._tmpdir)
|
133
133
|
|
134
134
|
@property
|
135
135
|
def datadir(self) -> Path:
|
@@ -3,6 +3,9 @@
|
|
3
3
|
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
4
4
|
# License: AGPL
|
5
5
|
|
6
|
+
import shutil
|
7
|
+
import tempfile
|
8
|
+
from pathlib import Path
|
6
9
|
from typing import Iterable, Optional
|
7
10
|
|
8
11
|
import pytest
|
@@ -17,7 +20,8 @@ URI = "https://gin.g-node.org/juaml/datalad-example-hcp1200"
|
|
17
20
|
@pytest.fixture(scope="module")
|
18
21
|
def hcpdg() -> Iterable[DataladHCP1200]:
|
19
22
|
"""Return a HCP1200 DataGrabber."""
|
20
|
-
|
23
|
+
tmpdir = Path(tempfile.gettempdir())
|
24
|
+
dg = DataladHCP1200(datadir=tmpdir / "datadir")
|
21
25
|
# Set URI to Gin
|
22
26
|
dg.uri = URI
|
23
27
|
# Set correct root directory
|
@@ -26,6 +30,7 @@ def hcpdg() -> Iterable[DataladHCP1200]:
|
|
26
30
|
for t_elem in dg.get_elements():
|
27
31
|
dg[t_elem]
|
28
32
|
yield dg
|
33
|
+
shutil.rmtree(tmpdir / "datadir", ignore_errors=True)
|
29
34
|
|
30
35
|
|
31
36
|
@pytest.mark.parametrize(
|
@@ -18,8 +18,8 @@ from typing import (
|
|
18
18
|
import nibabel as nib
|
19
19
|
|
20
20
|
from ...pipeline import WorkDirManager
|
21
|
-
from ...pipeline.singleton import singleton
|
22
21
|
from ...utils import logger, run_ext_cmd
|
22
|
+
from ...utils.singleton import Singleton
|
23
23
|
|
24
24
|
|
25
25
|
if TYPE_CHECKING:
|
@@ -29,8 +29,7 @@ if TYPE_CHECKING:
|
|
29
29
|
__all__ = ["AFNIALFF"]
|
30
30
|
|
31
31
|
|
32
|
-
|
33
|
-
class AFNIALFF:
|
32
|
+
class AFNIALFF(metaclass=Singleton):
|
34
33
|
"""Class for computing ALFF using AFNI.
|
35
34
|
|
36
35
|
This class uses AFNI's 3dRSFC to compute ALFF. It's designed as a singleton
|
@@ -19,8 +19,8 @@ import scipy as sp
|
|
19
19
|
from nilearn import image as nimg
|
20
20
|
|
21
21
|
from ...pipeline import WorkDirManager
|
22
|
-
from ...pipeline.singleton import singleton
|
23
22
|
from ...utils import logger
|
23
|
+
from ...utils.singleton import Singleton
|
24
24
|
|
25
25
|
|
26
26
|
if TYPE_CHECKING:
|
@@ -30,8 +30,7 @@ if TYPE_CHECKING:
|
|
30
30
|
__all__ = ["JuniferALFF"]
|
31
31
|
|
32
32
|
|
33
|
-
|
34
|
-
class JuniferALFF:
|
33
|
+
class JuniferALFF(metaclass=Singleton):
|
35
34
|
"""Class for computing ALFF using junifer.
|
36
35
|
|
37
36
|
It's designed as a singleton with caching for efficient computation.
|
@@ -18,8 +18,8 @@ from typing import (
|
|
18
18
|
import nibabel as nib
|
19
19
|
|
20
20
|
from ...pipeline import WorkDirManager
|
21
|
-
from ...pipeline.singleton import singleton
|
22
21
|
from ...utils import logger, run_ext_cmd
|
22
|
+
from ...utils.singleton import Singleton
|
23
23
|
|
24
24
|
|
25
25
|
if TYPE_CHECKING:
|
@@ -29,8 +29,7 @@ if TYPE_CHECKING:
|
|
29
29
|
__all__ = ["AFNIReHo"]
|
30
30
|
|
31
31
|
|
32
|
-
|
33
|
-
class AFNIReHo:
|
32
|
+
class AFNIReHo(metaclass=Singleton):
|
34
33
|
"""Class for computing ReHo using AFNI.
|
35
34
|
|
36
35
|
This class uses AFNI's 3dReHo to compute ReHo. It's designed as a singleton
|
@@ -20,8 +20,8 @@ from nilearn import image as nimg
|
|
20
20
|
from nilearn import masking as nmask
|
21
21
|
|
22
22
|
from ...pipeline import WorkDirManager
|
23
|
-
from ...pipeline.singleton import singleton
|
24
23
|
from ...utils import logger, raise_error
|
24
|
+
from ...utils.singleton import Singleton
|
25
25
|
|
26
26
|
|
27
27
|
if TYPE_CHECKING:
|
@@ -31,8 +31,7 @@ if TYPE_CHECKING:
|
|
31
31
|
__all__ = ["JuniferReHo"]
|
32
32
|
|
33
33
|
|
34
|
-
|
35
|
-
class JuniferReHo:
|
34
|
+
class JuniferReHo(metaclass=Singleton):
|
36
35
|
"""Class for computing ReHo using junifer.
|
37
36
|
|
38
37
|
It's designed as a singleton with caching for efficient computation.
|
@@ -9,7 +9,7 @@ import importlib
|
|
9
9
|
from typing import TYPE_CHECKING, Dict, List, Mapping, Optional, Union
|
10
10
|
|
11
11
|
from ..utils import logger, raise_error
|
12
|
-
from .singleton import
|
12
|
+
from ..utils.singleton import Singleton
|
13
13
|
|
14
14
|
|
15
15
|
if TYPE_CHECKING:
|
@@ -21,8 +21,7 @@ if TYPE_CHECKING:
|
|
21
21
|
__all__ = ["PipelineComponentRegistry"]
|
22
22
|
|
23
23
|
|
24
|
-
|
25
|
-
class PipelineComponentRegistry:
|
24
|
+
class PipelineComponentRegistry(metaclass=Singleton):
|
26
25
|
"""Class for pipeline component registry.
|
27
26
|
|
28
27
|
This class is a singleton and is used for managing pipeline components.
|
@@ -10,14 +10,13 @@ from pathlib import Path
|
|
10
10
|
from typing import Optional, Union
|
11
11
|
|
12
12
|
from ..utils import logger
|
13
|
-
from .singleton import
|
13
|
+
from ..utils.singleton import Singleton
|
14
14
|
|
15
15
|
|
16
16
|
__all__ = ["WorkDirManager"]
|
17
17
|
|
18
18
|
|
19
|
-
|
20
|
-
class WorkDirManager:
|
19
|
+
class WorkDirManager(metaclass=Singleton):
|
21
20
|
"""Class for working directory manager.
|
22
21
|
|
23
22
|
This class is a singleton and is used for managing temporary and working
|
@@ -1,15 +1,17 @@
|
|
1
1
|
"""Provide a singleton class to be used by pipeline components."""
|
2
2
|
|
3
3
|
# Authors: Synchon Mandal <s.mandal@fz-juelich.de>
|
4
|
+
# Federico Raimondo <f.raimondo@fz-juelich.de>
|
4
5
|
# License: AGPL
|
5
6
|
|
6
|
-
from
|
7
|
+
from abc import ABCMeta
|
8
|
+
from typing import Any, ClassVar, Dict, Type
|
7
9
|
|
8
10
|
|
9
|
-
__all__ = ["
|
11
|
+
__all__ = ["Singleton", "ABCSingleton"]
|
10
12
|
|
11
13
|
|
12
|
-
|
14
|
+
class Singleton(type):
|
13
15
|
"""Make a class singleton.
|
14
16
|
|
15
17
|
Parameters
|
@@ -17,15 +19,11 @@ def singleton(cls: Type) -> Type:
|
|
17
19
|
cls : class
|
18
20
|
The class to designate as singleton.
|
19
21
|
|
20
|
-
Returns
|
21
|
-
-------
|
22
|
-
class
|
23
|
-
The only instance of the class.
|
24
|
-
|
25
22
|
"""
|
26
|
-
instances: Dict = {}
|
27
23
|
|
28
|
-
|
24
|
+
instances: ClassVar[Dict] = {}
|
25
|
+
|
26
|
+
def __call__(cls, *args: Any, **kwargs: Any) -> Type:
|
29
27
|
"""Get the only instance for a class.
|
30
28
|
|
31
29
|
Parameters
|
@@ -41,8 +39,15 @@ def singleton(cls: Type) -> Type:
|
|
41
39
|
The only instance of the class.
|
42
40
|
|
43
41
|
"""
|
44
|
-
if cls not in instances:
|
45
|
-
instances[cls] =
|
46
|
-
|
42
|
+
if cls not in cls.instances:
|
43
|
+
cls.instances[cls] = super(Singleton, cls).__call__( # noqa: UP008
|
44
|
+
*args, **kwargs
|
45
|
+
)
|
46
|
+
|
47
|
+
return cls.instances[cls]
|
48
|
+
|
49
|
+
|
50
|
+
class ABCSingleton(ABCMeta, Singleton):
|
51
|
+
"""Make an abstract class a singleton."""
|
47
52
|
|
48
|
-
|
53
|
+
pass
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.6.
|
3
|
+
Version: 0.0.6.dev213
|
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,6 +1,7 @@
|
|
1
1
|
junifer/__init__.py,sha256=2McgH1yNue6Z1V26-uN_mfMjbTcx4CLhym-DMBl5xA4,266
|
2
2
|
junifer/__init__.pyi,sha256=uPLuY27S7AY4kFzJX0ncCpzHnWJdztveMJpY3Di-wwQ,482
|
3
|
-
junifer/_version.py,sha256=
|
3
|
+
junifer/_version.py,sha256=nRJALFK9-lDXqnO0OwqlFkus-jiFoEB-CLCKIbrjuRU,428
|
4
|
+
junifer/conftest.py,sha256=PWYkkRDU8ly2lYwv7VBKMHje4et6HX7Yey3Md_I2KbA,613
|
4
5
|
junifer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
6
|
junifer/stats.py,sha256=BjQb2lfTGDP9l4UuQYmJFcJJNRfbJDGlNvC06SJaDDE,6237
|
6
7
|
junifer/api/__init__.py,sha256=aAXW_KAEGQ8aAP5Eni2G1R4MWBF7UgjKOgM6akLuJco,252
|
@@ -72,14 +73,14 @@ junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py,sha256=b9hjc1mgO--PS
|
|
72
73
|
junifer/data/__init__.py,sha256=xJDI2QKtdjcNzpd1oVFM3guh1SFHM6jKstl7pFmzOuk,267
|
73
74
|
junifer/data/__init__.pyi,sha256=qYszjUYcbFi_2zO23MnbA2HhTW-Ad2oh1pqPQYd6yt0,542
|
74
75
|
junifer/data/_dispatch.py,sha256=_hmlIXuuuLJBbY5VH6lohJzhbMB7KEhFkVFwRDEdR_E,6189
|
75
|
-
junifer/data/pipeline_data_registry_base.py,sha256=
|
76
|
+
junifer/data/pipeline_data_registry_base.py,sha256=8UyrkXHVr7JdeVfD2xgIRQlrlH3lR2RLHUfnqbw0EyI,1989
|
76
77
|
junifer/data/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
77
78
|
junifer/data/template_spaces.py,sha256=9uZuFztBGNZk3mhUI2h0oQMajjx6Wv31Fx11pGlDI20,6510
|
78
79
|
junifer/data/utils.py,sha256=R-AMuerRiJLU4aMK9_WWXFJn2yOuXtZ-YKrdHvFjZf4,1454
|
79
80
|
junifer/data/coordinates/__init__.py,sha256=ffM8rwcHLgHAWixJbKrATrbUKzX940V1UF6RAxZdUMg,186
|
80
81
|
junifer/data/coordinates/__init__.pyi,sha256=Z-Ti5XD3HigkZ8uYN6oYsLqw40-F1GvTVQ5QAy08Wng,88
|
81
82
|
junifer/data/coordinates/_ants_coordinates_warper.py,sha256=Q08zC0MBQPwj94V8G6ZGdRoYA7V3ACNCDlcFlLXc0j8,2809
|
82
|
-
junifer/data/coordinates/_coordinates.py,sha256=
|
83
|
+
junifer/data/coordinates/_coordinates.py,sha256=0zem18y7vT9d_lBAUwF6EqxoUG29qD_nblI0RDx8oH4,11960
|
83
84
|
junifer/data/coordinates/_fsl_coordinates_warper.py,sha256=9R0JiyYWXogMr1i6DLepXkjb1aeTZ3CUoxvAPuxNGls,2568
|
84
85
|
junifer/data/coordinates/VOIs/meta/AutobiographicalMemory_VOIs.txt,sha256=9af38naeL18Tlt_gy_ep6vyTAxOB336JYjbo5FvP8PQ,686
|
85
86
|
junifer/data/coordinates/VOIs/meta/CogAC_VOIs.txt,sha256=Sr5_E712OLdeQRyUcDNM0wLBvZIyO6gc9Q7KkyJHX1A,398
|
@@ -105,7 +106,7 @@ junifer/data/masks/__init__.py,sha256=eEEhHglyVEx1LrqwXjq3cOmjf4sTsgBstRx5-k7zIQ
|
|
105
106
|
junifer/data/masks/__init__.pyi,sha256=lcgr8gmWDPibC4RxnWBXb8DDpIkO73Aax09u6VXiJJI,114
|
106
107
|
junifer/data/masks/_ants_mask_warper.py,sha256=6bBqFO9HNoYG5eYw4IVNZEv2sL58Koz-YXCdpM7U6NQ,4937
|
107
108
|
junifer/data/masks/_fsl_mask_warper.py,sha256=mxxJy4WYbbMHEZSpNaBL1RDT4H0RmhA4u8fp7oOW_k4,2567
|
108
|
-
junifer/data/masks/_masks.py,sha256=
|
109
|
+
junifer/data/masks/_masks.py,sha256=2RMG9UL2GU11GgLaEoKPvrWVLtOVVf5etrTbEUefJm8,20960
|
109
110
|
junifer/data/masks/tests/test_masks.py,sha256=RDYe8Z46M_hHdZn3hOvdqQXqiMlxJ6454gD3d1ee3zM,16132
|
110
111
|
junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz,sha256=jcX1pDOrDsoph8cPMNFVKH5gZYio5G4rJNpOFXm9wJI,946636
|
111
112
|
junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz,sha256=j6EY8EtRnUuRxeKgD65Q6B0GPEPIALKDJEIje1TfnAU,88270
|
@@ -115,14 +116,14 @@ junifer/data/parcellations/__init__.py,sha256=6-Ysil3NyZ69V6rWx4RO15_d-iDKizfbHu
|
|
115
116
|
junifer/data/parcellations/__init__.pyi,sha256=lhBHTbMDizzqUqVHrx2eyfPFodrTBgMFeTgxfESSkQ8,140
|
116
117
|
junifer/data/parcellations/_ants_parcellation_warper.py,sha256=1oOY_O0Ft0NOkGjk4Cx8lyChy7QYJRZbOtdQfDpo4jI,5399
|
117
118
|
junifer/data/parcellations/_fsl_parcellation_warper.py,sha256=PwGXT1fEchjIIyQJVr53Ksssf6hHJTtJwgJj8t65LTA,2839
|
118
|
-
junifer/data/parcellations/_parcellations.py,sha256=
|
119
|
+
junifer/data/parcellations/_parcellations.py,sha256=qgAZ1A17PMHEzKtZoEvdfL0VScMy1RIaOJ_C03x-Za0,65780
|
119
120
|
junifer/data/parcellations/tests/test_parcellations.py,sha256=43h7lR7nEvo9vTK-AeUDMk0XdGTqyzQI8isYl8dWw6s,38339
|
120
121
|
junifer/data/tests/test_data_utils.py,sha256=_DaiC8K79gs9HFHxr-udNeE2YTM6JA0-1i-K2cqK9qA,1087
|
121
122
|
junifer/data/tests/test_template_spaces.py,sha256=PJulN7xHpAcSOTY-UzTG_WPywZEBSlAZGiNG4gzk1_8,3144
|
122
123
|
junifer/datagrabber/__init__.py,sha256=EHIK-lbjuvkt0V8ypFvLSt85OAAXSkaxBmVlCbNNz8M,323
|
123
124
|
junifer/datagrabber/__init__.pyi,sha256=zOQE4TaCKXBTHnNqgmECtsszWIOHYiQ1CUEeXXFU9F4,832
|
124
125
|
junifer/datagrabber/base.py,sha256=fFPIt6p3SdZ6vzReGQxK2qJnQzh8HTwBe87A2WYArVI,6538
|
125
|
-
junifer/datagrabber/datalad_base.py,sha256=
|
126
|
+
junifer/datagrabber/datalad_base.py,sha256=NnWHXBfyobxoOms4ZojCMJC6ZalFOKQMH2AWVkLC2GU,11108
|
126
127
|
junifer/datagrabber/dmcc13_benchmark.py,sha256=se9F6QVw9WX22MNld33OQv_BtdW-yPvXXu6kYykxLNw,12225
|
127
128
|
junifer/datagrabber/multiple.py,sha256=IjBcFN-KegIad9bwopsfAQ9b_WRRUHmCbKRX2gmus0Q,6487
|
128
129
|
junifer/datagrabber/pattern.py,sha256=iSubnHOJjYck1Zhk_JAYRZjRPKYmfoO81tG1zowd3B4,17039
|
@@ -143,7 +144,7 @@ junifer/datagrabber/hcp1200/__init__.pyi,sha256=2ttZanYSzCsB195_xfXUyztPsVIF02AR
|
|
143
144
|
junifer/datagrabber/hcp1200/datalad_hcp1200.py,sha256=hngQYLv4b8tC9Ep2X5A5R_L2sFM3ZJ8dmWTr_OlRLAA,2463
|
144
145
|
junifer/datagrabber/hcp1200/hcp1200.py,sha256=AfVPd44CdyMcrUTOfps2PSpTQrXde68QeZaLGkXUTn4,6116
|
145
146
|
junifer/datagrabber/hcp1200/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
146
|
-
junifer/datagrabber/hcp1200/tests/test_hcp1200.py,sha256=
|
147
|
+
junifer/datagrabber/hcp1200/tests/test_hcp1200.py,sha256=17LK9fRAKmRQipo8UAgLOx9rA8G-91cTR_V_uAfKffk,10945
|
147
148
|
junifer/datagrabber/tests/test_base.py,sha256=fZdVhNhvfht9lpTHrAUf5E6mAfNNUP7OTQ5KLaBQ1gI,3506
|
148
149
|
junifer/datagrabber/tests/test_datalad_base.py,sha256=71erxpAECuy8iLtkmq_SRqfP4sKQf4uEb3O8CThBHT0,16285
|
149
150
|
junifer/datagrabber/tests/test_dmcc13_benchmark.py,sha256=DcqkDXXBoabHFVbxekGR2NZyGeugGlxpOwXIwy38Ofg,9109
|
@@ -207,8 +208,8 @@ junifer/markers/complexity/tests/test_sample_entropy.py,sha256=rfbiguVq7CUwYIvYB
|
|
207
208
|
junifer/markers/complexity/tests/test_weighted_perm_entropy.py,sha256=yDWKEaUbxrnrG6J2NlktLfwSBre5OuXd63kEof7t8PM,2373
|
208
209
|
junifer/markers/falff/__init__.py,sha256=qxdx_3FsVrn7h3gtbocK0ZmvqZwPQZGKuVkPm31ejNM,217
|
209
210
|
junifer/markers/falff/__init__.pyi,sha256=X-q2zBjUX0imQ37yN2Cg5gKfDvq8sh_9y2hRH4g5ufY,120
|
210
|
-
junifer/markers/falff/_afni_falff.py,sha256=
|
211
|
-
junifer/markers/falff/_junifer_falff.py,sha256=
|
211
|
+
junifer/markers/falff/_afni_falff.py,sha256=6kHNWU9k-U6_wlCnysDK90svCqcRggVGOD4SjHnoI9I,4528
|
212
|
+
junifer/markers/falff/_junifer_falff.py,sha256=UPu3myI6cNoDU1FB0t4Y71KOubPG1xBntdgZysOHiro,4424
|
212
213
|
junifer/markers/falff/falff_base.py,sha256=1VjEZMd7BpXDc2subm0VzZNxFp6uxMb9QjBmMC6tDVg,4903
|
213
214
|
junifer/markers/falff/falff_parcels.py,sha256=RuACr7qjxJ6fDo8KrbO2fUwpLtzLQXPr9WX4n--XUb0,6029
|
214
215
|
junifer/markers/falff/falff_spheres.py,sha256=ZjcPLg29LBfsCLD8iZk0pW0nItH5uLmsn4nlLoUNB78,6668
|
@@ -232,8 +233,8 @@ junifer/markers/functional_connectivity/tests/test_functional_connectivity_parce
|
|
232
233
|
junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py,sha256=OU2FWAH0Gb4gEOF0m1PAoo5xLKVPetNkwV-ssQTZ1Yw,4157
|
233
234
|
junifer/markers/reho/__init__.py,sha256=WZf4A0XaRThjl8SlFOhvTLUfhTHp5koLxZgowsgTSAE,211
|
234
235
|
junifer/markers/reho/__init__.pyi,sha256=_aFb-Ry_EP2OMU6xRL4GlfuDpSl_egHllL-fz7vXjcE,118
|
235
|
-
junifer/markers/reho/_afni_reho.py,sha256=
|
236
|
-
junifer/markers/reho/_junifer_reho.py,sha256=
|
236
|
+
junifer/markers/reho/_afni_reho.py,sha256=eMHTaj2-zEHVgkz96Xx30Wn5sAGhXO-JmgItQAI9eNo,6476
|
237
|
+
junifer/markers/reho/_junifer_reho.py,sha256=GFaKoEPUiLk9YRLXTfWplEhQmYipXWkPQj-7YvMXKO0,9314
|
237
238
|
junifer/markers/reho/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
238
239
|
junifer/markers/reho/reho_base.py,sha256=Tdnl5SJ66p461UJ-UilEGKrMdEPwGMemN_QIQgmc8o8,4065
|
239
240
|
junifer/markers/reho/reho_parcels.py,sha256=tfGasSaAI-ioxVBTD2L_4gJQthoAq5Fp9e5iRS3mXhI,6404
|
@@ -262,13 +263,12 @@ junifer/onthefly/tests/test_read_transform.py,sha256=D2C3IpXQHdsJSF07v8rEwGntLGX
|
|
262
263
|
junifer/pipeline/__init__.py,sha256=rxKQGRwc6_sts1KhVIcVVpuXeiFABf11mQQ2h5jgA3U,194
|
263
264
|
junifer/pipeline/__init__.pyi,sha256=hhcvNcABhtLaUQiZdTjo5sMWC3rtDkwVshL0sxD5JAE,399
|
264
265
|
junifer/pipeline/marker_collection.py,sha256=1xcJqeOZ_IerB7PAMN1itWBv8UR6lUW9xXRoIu4qLXU,5557
|
265
|
-
junifer/pipeline/pipeline_component_registry.py,sha256=
|
266
|
+
junifer/pipeline/pipeline_component_registry.py,sha256=XE4lSSd6STp2VBhsaG21-tfe8kRt97N-1zwE26fF7Yc,9501
|
266
267
|
junifer/pipeline/pipeline_step_mixin.py,sha256=wakimkG8GC0PWkFHMHIfgzM2yak41xLrzbVRH0oe8D4,7613
|
267
268
|
junifer/pipeline/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
268
|
-
junifer/pipeline/singleton.py,sha256=c5U8Xn10MQqaXjlLzxLbw3AmSYW6aTw_iSL0rDkbuMU,1011
|
269
269
|
junifer/pipeline/update_meta_mixin.py,sha256=A_gYCPqdPlM0Xpum9TjJowb41O7ntxQg6y4YOgYeyy4,1564
|
270
270
|
junifer/pipeline/utils.py,sha256=CAp0P7rZST7bsJ9lSlkvZgIJebHW2cIm8VXTuu1A6tE,10291
|
271
|
-
junifer/pipeline/workdir_manager.py,sha256=
|
271
|
+
junifer/pipeline/workdir_manager.py,sha256=zLzNZBCqqZeF10eS5nUMdg_EoORJhxGqmAS1fbnPexI,8067
|
272
272
|
junifer/pipeline/tests/test_marker_collection.py,sha256=edBHfmwMTXG_q0ZagApbAbkFNoegi3hVEQiNcBtZOKc,6959
|
273
273
|
junifer/pipeline/tests/test_pipeline_component_registry.py,sha256=ww_akEhtvE1_fsWbX5Yd5w_G2Ki6w_5MInfihwwRYFk,5800
|
274
274
|
junifer/pipeline/tests/test_pipeline_step_mixin.py,sha256=_ykZzyNzREXy-r_yv1gY_jquLZzVBl8qwYrVORCKY_k,7807
|
@@ -332,13 +332,14 @@ junifer/utils/fs.py,sha256=M3CKBLh4gPS6s9giyopgb1hHMXzLb6k3cung2wHVBjs,492
|
|
332
332
|
junifer/utils/helpers.py,sha256=_IqnaPaOcFy1yrEyNmmg7XqQWb1wHOtxfOBnlaRYbiI,2063
|
333
333
|
junifer/utils/logging.py,sha256=ardaiJkDfZMYvak5UIL5Etxg5Ii7inmVQSBdFLdgtb8,9781
|
334
334
|
junifer/utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
335
|
+
junifer/utils/singleton.py,sha256=3mEZT4GJ7lMkH8H7ZPgy0DBe6CNTqg9CRVJFDAy3h60,1201
|
335
336
|
junifer/utils/tests/test_fs.py,sha256=WQS7cKlKEZ742CIuiOYYpueeAhY9PqlastfDVpVVtvE,923
|
336
337
|
junifer/utils/tests/test_helpers.py,sha256=k5qqfxK8dFyuewTJyR1Qn6-nFaYNuVr0ysc18bfPjyU,929
|
337
338
|
junifer/utils/tests/test_logging.py,sha256=duO4ou365hxwa_kwihFtKPLaL6LC5XHiyhOijrrngbA,8009
|
338
|
-
junifer-0.0.6.
|
339
|
-
junifer-0.0.6.
|
340
|
-
junifer-0.0.6.
|
341
|
-
junifer-0.0.6.
|
342
|
-
junifer-0.0.6.
|
343
|
-
junifer-0.0.6.
|
344
|
-
junifer-0.0.6.
|
339
|
+
junifer-0.0.6.dev213.dist-info/AUTHORS.rst,sha256=rmULKpchpSol4ExWFdm-qu4fkpSZPYqIESVJBZtGb6E,163
|
340
|
+
junifer-0.0.6.dev213.dist-info/LICENSE.md,sha256=MqCnOBu8uXsEOzRZWh9EBVfVz-kE9NkXcLCrtGXo2yU,34354
|
341
|
+
junifer-0.0.6.dev213.dist-info/METADATA,sha256=jKOB-sd7U5Q6Fxxg2-hBKsX5R7LsBRbAT_1lg9jwiXM,8448
|
342
|
+
junifer-0.0.6.dev213.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
|
343
|
+
junifer-0.0.6.dev213.dist-info/entry_points.txt,sha256=6O8ru0BP-SP7YMUZiizFNoaZ2HvJpadO2G7nKk4PwjI,48
|
344
|
+
junifer-0.0.6.dev213.dist-info/top_level.txt,sha256=4bAq1R2QFQ4b3hohjys2JBvxrl0GKk5LNFzYvz9VGcA,8
|
345
|
+
junifer-0.0.6.dev213.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|