junifer 0.0.6.dev266__py3-none-any.whl → 0.0.6.dev277__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/decorators.py +1 -1
- junifer/api/functions.py +1 -1
- junifer/cli/cli.py +8 -8
- junifer/cli/parser.py +1 -1
- junifer/data/_dispatch.py +1 -1
- junifer/data/masks/_masks.py +1 -1
- junifer/data/template_spaces.py +1 -1
- junifer/stats.py +1 -1
- junifer/storage/utils.py +2 -2
- junifer/testing/datagrabbers.py +1 -1
- junifer/typing/__init__.pyi +2 -0
- junifer/typing/_typing.py +8 -6
- junifer/utils/__init__.pyi +3 -0
- junifer/utils/_config.py +110 -0
- junifer/utils/helpers.py +1 -1
- junifer/utils/logging.py +1 -1
- junifer/utils/singleton.py +1 -1
- junifer/utils/tests/test_config.py +59 -0
- {junifer-0.0.6.dev266.dist-info → junifer-0.0.6.dev277.dist-info}/METADATA +1 -1
- {junifer-0.0.6.dev266.dist-info → junifer-0.0.6.dev277.dist-info}/RECORD +26 -24
- {junifer-0.0.6.dev266.dist-info → junifer-0.0.6.dev277.dist-info}/AUTHORS.rst +0 -0
- {junifer-0.0.6.dev266.dist-info → junifer-0.0.6.dev277.dist-info}/LICENSE.md +0 -0
- {junifer-0.0.6.dev266.dist-info → junifer-0.0.6.dev277.dist-info}/WHEEL +0 -0
- {junifer-0.0.6.dev266.dist-info → junifer-0.0.6.dev277.dist-info}/entry_points.txt +0 -0
- {junifer-0.0.6.dev266.dist-info → junifer-0.0.6.dev277.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.dev277'
|
16
|
+
__version_tuple__ = version_tuple = (0, 0, 6, 'dev277')
|
junifer/api/decorators.py
CHANGED
junifer/api/functions.py
CHANGED
@@ -24,7 +24,7 @@ from ..typing import DataGrabberLike, MarkerLike, PreprocessorLike, StorageLike
|
|
24
24
|
from ..utils import logger, raise_error, yaml
|
25
25
|
|
26
26
|
|
27
|
-
__all__ = ["
|
27
|
+
__all__ = ["collect", "list_elements", "queue", "reset", "run"]
|
28
28
|
|
29
29
|
|
30
30
|
def _get_datagrabber(datagrabber_config: dict) -> DataGrabberLike:
|
junifer/cli/cli.py
CHANGED
@@ -29,19 +29,19 @@ from .utils import (
|
|
29
29
|
|
30
30
|
|
31
31
|
__all__ = [
|
32
|
+
"afni_docker",
|
33
|
+
"ants_docker",
|
32
34
|
"cli",
|
33
|
-
"run",
|
34
35
|
"collect",
|
36
|
+
"freesurfer_docker",
|
37
|
+
"fsl_docker",
|
38
|
+
"list_elements",
|
35
39
|
"queue",
|
36
|
-
"wtf",
|
37
|
-
"selftest",
|
38
40
|
"reset",
|
39
|
-
"
|
41
|
+
"run",
|
42
|
+
"selftest",
|
40
43
|
"setup",
|
41
|
-
"
|
42
|
-
"fsl_docker",
|
43
|
-
"ants_docker",
|
44
|
-
"freesurfer_docker",
|
44
|
+
"wtf",
|
45
45
|
]
|
46
46
|
|
47
47
|
|
junifer/cli/parser.py
CHANGED
junifer/data/_dispatch.py
CHANGED
junifer/data/masks/_masks.py
CHANGED
junifer/data/template_spaces.py
CHANGED
junifer/stats.py
CHANGED
@@ -13,7 +13,7 @@ from scipy.stats.mstats import winsorize
|
|
13
13
|
from .utils import logger, raise_error
|
14
14
|
|
15
15
|
|
16
|
-
__all__ = ["
|
16
|
+
__all__ = ["count", "get_aggfunc_by_name", "select", "winsorized_mean"]
|
17
17
|
|
18
18
|
|
19
19
|
def get_aggfunc_by_name(
|
junifer/storage/utils.py
CHANGED
@@ -15,11 +15,11 @@ from ..utils.logging import logger, raise_error
|
|
15
15
|
|
16
16
|
|
17
17
|
__all__ = [
|
18
|
+
"element_to_prefix",
|
18
19
|
"get_dependency_version",
|
20
|
+
"matrix_to_vector",
|
19
21
|
"process_meta",
|
20
|
-
"element_to_prefix",
|
21
22
|
"store_matrix_checks",
|
22
|
-
"matrix_to_vector",
|
23
23
|
]
|
24
24
|
|
25
25
|
|
junifer/testing/datagrabbers.py
CHANGED
junifer/typing/__init__.pyi
CHANGED
@@ -9,6 +9,7 @@ __all__ = [
|
|
9
9
|
"ExternalDependencies",
|
10
10
|
"MarkerInOutMappings",
|
11
11
|
"DataGrabberPatterns",
|
12
|
+
"ConfigVal",
|
12
13
|
]
|
13
14
|
|
14
15
|
from ._typing import (
|
@@ -22,4 +23,5 @@ from ._typing import (
|
|
22
23
|
ExternalDependencies,
|
23
24
|
MarkerInOutMappings,
|
24
25
|
DataGrabberPatterns,
|
26
|
+
ConfigVal,
|
25
27
|
)
|
junifer/typing/_typing.py
CHANGED
@@ -19,16 +19,17 @@ if TYPE_CHECKING:
|
|
19
19
|
|
20
20
|
|
21
21
|
__all__ = [
|
22
|
+
"ConditionalDependencies",
|
23
|
+
"ConfigVal",
|
22
24
|
"DataGrabberLike",
|
23
|
-
"
|
24
|
-
"MarkerLike",
|
25
|
-
"StorageLike",
|
26
|
-
"PipelineComponent",
|
25
|
+
"DataGrabberPatterns",
|
27
26
|
"Dependencies",
|
28
|
-
"ConditionalDependencies",
|
29
27
|
"ExternalDependencies",
|
30
28
|
"MarkerInOutMappings",
|
31
|
-
"
|
29
|
+
"MarkerLike",
|
30
|
+
"PipelineComponent",
|
31
|
+
"PreprocessorLike",
|
32
|
+
"StorageLike",
|
32
33
|
]
|
33
34
|
|
34
35
|
|
@@ -60,3 +61,4 @@ MarkerInOutMappings = MutableMapping[str, MutableMapping[str, str]]
|
|
60
61
|
DataGrabberPatterns = dict[
|
61
62
|
str, Union[dict[str, str], Sequence[dict[str, str]]]
|
62
63
|
]
|
64
|
+
ConfigVal = Union[bool, int, float]
|
junifer/utils/__init__.pyi
CHANGED
@@ -1,15 +1,18 @@
|
|
1
1
|
__all__ = [
|
2
2
|
"make_executable",
|
3
3
|
"configure_logging",
|
4
|
+
"config",
|
4
5
|
"logger",
|
5
6
|
"raise_error",
|
6
7
|
"warn_with_log",
|
7
8
|
"run_ext_cmd",
|
8
9
|
"deep_update",
|
9
10
|
"yaml",
|
11
|
+
"ConfigManager",
|
10
12
|
]
|
11
13
|
|
12
14
|
from .fs import make_executable
|
13
15
|
from .logging import configure_logging, logger, raise_error, warn_with_log
|
16
|
+
from ._config import config, ConfigManager
|
14
17
|
from .helpers import run_ext_cmd, deep_update
|
15
18
|
from ._yaml import yaml
|
junifer/utils/_config.py
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
"""Provide junifer global configuration."""
|
2
|
+
|
3
|
+
# Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
|
4
|
+
# Synchon Mandal <s.mandal@fz-juelich.de>
|
5
|
+
# License: AGPL
|
6
|
+
|
7
|
+
import os
|
8
|
+
from typing import Optional
|
9
|
+
|
10
|
+
from ..typing import ConfigVal
|
11
|
+
from .logging import logger
|
12
|
+
from .singleton import Singleton
|
13
|
+
|
14
|
+
|
15
|
+
__all__ = ["ConfigManager", "config"]
|
16
|
+
|
17
|
+
|
18
|
+
class ConfigManager(metaclass=Singleton):
|
19
|
+
"""Manage configuration parameters.
|
20
|
+
|
21
|
+
Attributes
|
22
|
+
----------
|
23
|
+
_config : dict
|
24
|
+
Configuration parameters.
|
25
|
+
|
26
|
+
"""
|
27
|
+
|
28
|
+
def __init__(self) -> None:
|
29
|
+
"""Initialize the class."""
|
30
|
+
self._config = {}
|
31
|
+
# Initial setup from process env
|
32
|
+
self._reload()
|
33
|
+
|
34
|
+
def _reload(self) -> None:
|
35
|
+
"""Reload env vars."""
|
36
|
+
for t_var in os.environ:
|
37
|
+
if t_var.startswith("JUNIFER_"):
|
38
|
+
# Set correct type
|
39
|
+
var_value = os.environ[t_var]
|
40
|
+
# bool
|
41
|
+
if var_value.lower() == "true":
|
42
|
+
var_value = True
|
43
|
+
elif var_value.lower() == "false":
|
44
|
+
var_value = False
|
45
|
+
# numeric
|
46
|
+
else:
|
47
|
+
try:
|
48
|
+
var_value = int(var_value)
|
49
|
+
except ValueError:
|
50
|
+
try:
|
51
|
+
var_value = float(var_value)
|
52
|
+
except ValueError:
|
53
|
+
pass
|
54
|
+
# Set value
|
55
|
+
var_name = (
|
56
|
+
t_var.replace("JUNIFER_", "").lower().replace("_", ".")
|
57
|
+
)
|
58
|
+
logger.debug(
|
59
|
+
f"Setting `{var_name}` from environment to "
|
60
|
+
f"`{var_value}` (type: {type(var_value)})"
|
61
|
+
)
|
62
|
+
self._config[var_name] = var_value
|
63
|
+
|
64
|
+
def get(self, key: str, default: Optional[ConfigVal] = None) -> ConfigVal:
|
65
|
+
"""Get configuration parameter.
|
66
|
+
|
67
|
+
Parameters
|
68
|
+
----------
|
69
|
+
key : str
|
70
|
+
The configuration key to get.
|
71
|
+
default : bool or int or float or None, optional
|
72
|
+
The default value to return if the key is not found (default None).
|
73
|
+
|
74
|
+
Returns
|
75
|
+
-------
|
76
|
+
bool or int or float
|
77
|
+
The configuration value.
|
78
|
+
|
79
|
+
"""
|
80
|
+
return self._config.get(key, default)
|
81
|
+
|
82
|
+
def set(self, key: str, val: ConfigVal) -> None:
|
83
|
+
"""Set configuration parameter.
|
84
|
+
|
85
|
+
Parameters
|
86
|
+
----------
|
87
|
+
key : str
|
88
|
+
The configuration key to set.
|
89
|
+
val : bool or int or float
|
90
|
+
The value to set ``key`` to.
|
91
|
+
|
92
|
+
"""
|
93
|
+
logger.debug(f"Setting `{key}` to `{val}` (type: {type(val)})")
|
94
|
+
self._config[key] = val
|
95
|
+
|
96
|
+
def delete(self, key: str) -> None:
|
97
|
+
"""Delete configuration parameter.
|
98
|
+
|
99
|
+
Parameters
|
100
|
+
----------
|
101
|
+
key : str
|
102
|
+
The configuration key to delete.
|
103
|
+
|
104
|
+
"""
|
105
|
+
logger.debug(f"Deleting `{key}` from config")
|
106
|
+
_ = self._config.pop(key)
|
107
|
+
|
108
|
+
|
109
|
+
# Initialize here to access from anywhere
|
110
|
+
config = ConfigManager()
|
junifer/utils/helpers.py
CHANGED
junifer/utils/logging.py
CHANGED
junifer/utils/singleton.py
CHANGED
@@ -0,0 +1,59 @@
|
|
1
|
+
"""Provide tests for ConfigManager."""
|
2
|
+
|
3
|
+
# Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
|
4
|
+
# Synchon Mandal <s.mandal@fz-juelich.de>
|
5
|
+
# License: AGPL
|
6
|
+
|
7
|
+
import os
|
8
|
+
|
9
|
+
import pytest
|
10
|
+
|
11
|
+
from junifer.typing import ConfigVal
|
12
|
+
from junifer.utils import config
|
13
|
+
from junifer.utils._config import ConfigManager
|
14
|
+
|
15
|
+
|
16
|
+
def test_config_manager_singleton() -> None:
|
17
|
+
"""Test that ConfigManager is a singleton."""
|
18
|
+
config_mgr_1 = ConfigManager()
|
19
|
+
config_mgr_2 = ConfigManager()
|
20
|
+
assert id(config_mgr_1) == id(config_mgr_2)
|
21
|
+
|
22
|
+
|
23
|
+
def test_config_manager() -> None:
|
24
|
+
"""Test config operations for ConfigManager."""
|
25
|
+
# Get non-existing with default
|
26
|
+
assert config.get(key="scooby") is None
|
27
|
+
# Set
|
28
|
+
config.set(key="scooby", val=True)
|
29
|
+
# Get existing
|
30
|
+
assert config.get("scooby")
|
31
|
+
# Delete
|
32
|
+
config.delete("scooby")
|
33
|
+
# Get non-existing with default
|
34
|
+
assert config.get(key="scooby") is None
|
35
|
+
|
36
|
+
|
37
|
+
@pytest.mark.parametrize(
|
38
|
+
"val, expected_val",
|
39
|
+
[("TRUE", True), ("FALSE", False), ("1", 1), ("0.0", 0.0)],
|
40
|
+
)
|
41
|
+
def test_config_manager_env_reload(val: str, expected_val: ConfigVal) -> None:
|
42
|
+
"""Test config parsing from env reload.
|
43
|
+
|
44
|
+
Parameters
|
45
|
+
----------
|
46
|
+
val : str
|
47
|
+
The parametrized values.
|
48
|
+
expected_val : bool or int or float
|
49
|
+
The parametrized expected value.
|
50
|
+
|
51
|
+
"""
|
52
|
+
# Set env var
|
53
|
+
os.environ["JUNIFER_TESTME"] = val
|
54
|
+
# Check
|
55
|
+
config._reload()
|
56
|
+
assert config.get("testme") == expected_val
|
57
|
+
# Cleanup
|
58
|
+
del os.environ["JUNIFER_TESTME"]
|
59
|
+
config.delete("testme")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: junifer
|
3
|
-
Version: 0.0.6.
|
3
|
+
Version: 0.0.6.dev277
|
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,13 +1,13 @@
|
|
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=oxdSo7e4dHuWGJ6fcFCd_o22QGOenmAuWxLqOvENYXw,428
|
4
4
|
junifer/conftest.py,sha256=PWYkkRDU8ly2lYwv7VBKMHje4et6HX7Yey3Md_I2KbA,613
|
5
5
|
junifer/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
|
-
junifer/stats.py,sha256=
|
6
|
+
junifer/stats.py,sha256=e9aaagMGtgpRfW3Wdpz9ocpnYld1IWylCDcjFUgX9Mk,6225
|
7
7
|
junifer/api/__init__.py,sha256=aAXW_KAEGQ8aAP5Eni2G1R4MWBF7UgjKOgM6akLuJco,252
|
8
8
|
junifer/api/__init__.pyi,sha256=UJu55ApMFd43N0xlQyNKrYpCdzqhAxA3Jjaj0ETwCXU,169
|
9
|
-
junifer/api/decorators.py,sha256=
|
10
|
-
junifer/api/functions.py,sha256=
|
9
|
+
junifer/api/decorators.py,sha256=xphy55NJHnMZnJ-aNA70UzHUJ3SIgh5Xc8ekcozvj3U,2854
|
10
|
+
junifer/api/functions.py,sha256=ebKz9WVdDcVWX32p2MHiYEEN-FEcsGcRWEN6u4pFnro,12826
|
11
11
|
junifer/api/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
12
|
junifer/api/queue_context/__init__.py,sha256=glr8x4aMm4EvVrHywDIlugdNlwD1RzqV2FTDNPqYQZ4,204
|
13
13
|
junifer/api/queue_context/__init__.pyi,sha256=LoDQFGZ9wCDmgx5a1_nhKo4zOSvqViXZ8V882DksF7U,246
|
@@ -43,8 +43,8 @@ junifer/api/res/fsl/std2imgcoord,sha256=-X5wRH6XMl0yqnTACJX6MFhO8DFOEWg42MHRxGvi
|
|
43
43
|
junifer/api/tests/test_functions.py,sha256=aBAZ2EveiBHbAM5w6j2QxMHBze-XiVD3Td1kAE946ps,17786
|
44
44
|
junifer/cli/__init__.py,sha256=DS3kZKHeVDxt6d1MLBerZ2fcAwrEBHee5JOBhOLajUI,197
|
45
45
|
junifer/cli/__init__.pyi,sha256=PiV4znUnzSeuSSJGz-RT8N21PiMqoSMwYcypi7nt2Js,40
|
46
|
-
junifer/cli/cli.py,sha256=
|
47
|
-
junifer/cli/parser.py,sha256=
|
46
|
+
junifer/cli/cli.py,sha256=kzSM-5nZWgQ4iaGbcjDkU2JgdYcUF-zsYskuq9_ewM0,13195
|
47
|
+
junifer/cli/parser.py,sha256=Ok_ADyoDfjlAxl9NP36dtzFHp9QTL87V_cRxCa44UKs,8336
|
48
48
|
junifer/cli/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
49
|
junifer/cli/utils.py,sha256=AbPQC0Kl-tHMNKiPxp_01gLAGD3IGoLbsq3rXyPMM-c,3116
|
50
50
|
junifer/cli/tests/test_cli.py,sha256=AYL4my12GmFRCbI3JV7-rju32heYxAqbXNwnV8PwqVY,10982
|
@@ -72,10 +72,10 @@ junifer/configs/juseless/datagrabbers/tests/test_ucla.py,sha256=l-1y_m6NJo7JExhy
|
|
72
72
|
junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py,sha256=b9hjc1mgO--PSRC3id2EzzfE2yWNsuZ2UI47a6sfGZU,1025
|
73
73
|
junifer/data/__init__.py,sha256=xJDI2QKtdjcNzpd1oVFM3guh1SFHM6jKstl7pFmzOuk,267
|
74
74
|
junifer/data/__init__.pyi,sha256=qYszjUYcbFi_2zO23MnbA2HhTW-Ad2oh1pqPQYd6yt0,542
|
75
|
-
junifer/data/_dispatch.py,sha256=
|
75
|
+
junifer/data/_dispatch.py,sha256=O524U1R4MtbGhGJsL0HSh9EqisapBFJWK7uupXrJuMg,6158
|
76
76
|
junifer/data/pipeline_data_registry_base.py,sha256=G8bE3WTj4D_rKC4ZKZe6E48Sd96CGea1PS3SxmTgGK4,2010
|
77
77
|
junifer/data/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
78
|
-
junifer/data/template_spaces.py,sha256=
|
78
|
+
junifer/data/template_spaces.py,sha256=AVNuXuCqY0w7dSrVOZURjCPFIkg0wzQsAV2ggtQFpJU,6504
|
79
79
|
junifer/data/utils.py,sha256=5r-0QGQCNZvDM1tVcl9xyrIdgAO85mww0plpM1RUaGA,3247
|
80
80
|
junifer/data/coordinates/__init__.py,sha256=ffM8rwcHLgHAWixJbKrATrbUKzX940V1UF6RAxZdUMg,186
|
81
81
|
junifer/data/coordinates/__init__.pyi,sha256=Z-Ti5XD3HigkZ8uYN6oYsLqw40-F1GvTVQ5QAy08Wng,88
|
@@ -106,7 +106,7 @@ junifer/data/masks/__init__.py,sha256=eEEhHglyVEx1LrqwXjq3cOmjf4sTsgBstRx5-k7zIQ
|
|
106
106
|
junifer/data/masks/__init__.pyi,sha256=lcgr8gmWDPibC4RxnWBXb8DDpIkO73Aax09u6VXiJJI,114
|
107
107
|
junifer/data/masks/_ants_mask_warper.py,sha256=yGjC-b6Ui-MpPG3FpRnI8pEAxjMUfSSuUGVIeazjN7I,5078
|
108
108
|
junifer/data/masks/_fsl_mask_warper.py,sha256=_7UkX3-wFXQs4KwxopO-QjMyB6aeq1GAkiGSGpG-OzM,2412
|
109
|
-
junifer/data/masks/_masks.py,sha256=
|
109
|
+
junifer/data/masks/_masks.py,sha256=96NKsSSosD6r03Jb2N1xQoyOc2Vl5miokcQdSeuM6SY,20729
|
110
110
|
junifer/data/masks/tests/test_masks.py,sha256=1Zm09ZSdUlR278DTCZeVuxuQntryefsnYYPP02MttVE,16120
|
111
111
|
junifer/data/masks/ukb/UKB_15K_GM_template.nii.gz,sha256=jcX1pDOrDsoph8cPMNFVKH5gZYio5G4rJNpOFXm9wJI,946636
|
112
112
|
junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean.nii.gz,sha256=j6EY8EtRnUuRxeKgD65Q6B0GPEPIALKDJEIje1TfnAU,88270
|
@@ -306,7 +306,7 @@ junifer/storage/hdf5.py,sha256=1nK4su0S1ND-cMMP0jhf66yf0I0JwHp1gicDjZhXw9s,38001
|
|
306
306
|
junifer/storage/pandas_base.py,sha256=v3iRuoXJzBChZYkjR4OHJp99NM0BPTpYkw1TAX52Nto,7529
|
307
307
|
junifer/storage/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
308
308
|
junifer/storage/sqlite.py,sha256=QzkKB1pD4qNjrMe0bB7ATHnPgNjteTrP3ULCE_XuwD0,21269
|
309
|
-
junifer/storage/utils.py,sha256=
|
309
|
+
junifer/storage/utils.py,sha256=3wpiHeyGJ74neICgKmSrlpSZcyl5Hm1y3_49-Sj9tWg,7390
|
310
310
|
junifer/storage/tests/test_hdf5.py,sha256=vHMludIWJJ-4_i1kMYqLfdCrHJkYe7Dd9ZXLTjt-MOQ,31481
|
311
311
|
junifer/storage/tests/test_pandas_base.py,sha256=y_TfUGpuXkj_39yVon3rMDxMeBrZXs58ZW6OSty5LNw,4058
|
312
312
|
junifer/storage/tests/test_sqlite.py,sha256=0TQIcqHPgk67ALsR-98CA73ulDPsR2t9wGXYaem983w,28312
|
@@ -314,7 +314,7 @@ junifer/storage/tests/test_storage_base.py,sha256=YzgfspuggzXejyPIoRCPST3ZzH9Pi7
|
|
314
314
|
junifer/storage/tests/test_utils.py,sha256=k2HxD9cC-NczasEWjPZUiIy6mpbelR8KIUXWtkp_uws,11862
|
315
315
|
junifer/testing/__init__.py,sha256=gqfrX2c7I31VYBmH9hCUERO-61NwubT1cvy1bKM0NqU,249
|
316
316
|
junifer/testing/__init__.pyi,sha256=OFqGc5GCjoD4hPVOYNWvnvvP_RVF-oO-UQR8n9HDVtM,133
|
317
|
-
junifer/testing/datagrabbers.py,sha256=
|
317
|
+
junifer/testing/datagrabbers.py,sha256=ui2VwArMjx4KUD2Cf8PRJOExvDHfPntuuuhEEwWwTZ4,6571
|
318
318
|
junifer/testing/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
319
319
|
junifer/testing/registry.py,sha256=MVO-xlzSH3pAv9ySTqO1R3sNqdnfD1Qh7oA775ZxlXs,688
|
320
320
|
junifer/testing/utils.py,sha256=TEIwdV7etWglXOFQX1O5ZR18GzfYZ0LcRqXuK-JPo8U,591
|
@@ -326,23 +326,25 @@ 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=0SBTyWv6jYV2x7UiZO2vJirFeJePTMyVq9lZcHZus44,536
|
330
|
+
junifer/typing/_typing.py,sha256=TQrKnVqECgLDP1EiI0z-5pkeT9zHPmoha1gG8a2tqs0,1560
|
331
331
|
junifer/utils/__init__.py,sha256=I3tYaePAD_ZEU-36-TJ_OYeqW_aMmi5MZ3jmqie6RfU,260
|
332
|
-
junifer/utils/__init__.pyi,sha256=
|
332
|
+
junifer/utils/__init__.pyi,sha256=CMb4rq1VcQ00IRuiBFfAWu07Vb-vA4qtVLAoY0ll-bA,422
|
333
|
+
junifer/utils/_config.py,sha256=cfxyv1bfklID2atQseu6y3J7mZrCXPwnGEfBSImG9CM,3054
|
333
334
|
junifer/utils/_yaml.py,sha256=jpTroTI2rajECj0RXGCXaOwLpad858WzI7Jg-eXJ_jU,336
|
334
335
|
junifer/utils/fs.py,sha256=M3CKBLh4gPS6s9giyopgb1hHMXzLb6k3cung2wHVBjs,492
|
335
|
-
junifer/utils/helpers.py,sha256=
|
336
|
-
junifer/utils/logging.py,sha256=
|
336
|
+
junifer/utils/helpers.py,sha256=QcfdHPhrYKTf6o5eSOIvDxqmIAxlp9SqmCEdR10jbIY,2033
|
337
|
+
junifer/utils/logging.py,sha256=DRWcKwez56Mfh5PyLQSaKgL0Cc_Om8qfO8zGHTHB5Vo,9769
|
337
338
|
junifer/utils/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
338
|
-
junifer/utils/singleton.py,sha256=
|
339
|
+
junifer/utils/singleton.py,sha256=iATJMdzsSVE9akTI4DDycubhAl98t0EdO17gwgOjAYA,1189
|
340
|
+
junifer/utils/tests/test_config.py,sha256=7ltIXuwb_W4Mv_1dxQWyiyM10XgUAfsWKV6D_iE-XU0,1540
|
339
341
|
junifer/utils/tests/test_fs.py,sha256=WQS7cKlKEZ742CIuiOYYpueeAhY9PqlastfDVpVVtvE,923
|
340
342
|
junifer/utils/tests/test_helpers.py,sha256=k5qqfxK8dFyuewTJyR1Qn6-nFaYNuVr0ysc18bfPjyU,929
|
341
343
|
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.
|
344
|
+
junifer-0.0.6.dev277.dist-info/AUTHORS.rst,sha256=rmULKpchpSol4ExWFdm-qu4fkpSZPYqIESVJBZtGb6E,163
|
345
|
+
junifer-0.0.6.dev277.dist-info/LICENSE.md,sha256=MqCnOBu8uXsEOzRZWh9EBVfVz-kE9NkXcLCrtGXo2yU,34354
|
346
|
+
junifer-0.0.6.dev277.dist-info/METADATA,sha256=_f6DUBkVFhbhg_l8PQXSibG-3q9WIM6EP9PBvayajuA,8429
|
347
|
+
junifer-0.0.6.dev277.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
348
|
+
junifer-0.0.6.dev277.dist-info/entry_points.txt,sha256=6O8ru0BP-SP7YMUZiizFNoaZ2HvJpadO2G7nKk4PwjI,48
|
349
|
+
junifer-0.0.6.dev277.dist-info/top_level.txt,sha256=4bAq1R2QFQ4b3hohjys2JBvxrl0GKk5LNFzYvz9VGcA,8
|
350
|
+
junifer-0.0.6.dev277.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|