scikit-base 0.4.6__py3-none-any.whl → 0.5.1__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.
- docs/source/conf.py +299 -299
- {scikit_base-0.4.6.dist-info → scikit_base-0.5.1.dist-info}/LICENSE +29 -29
- {scikit_base-0.4.6.dist-info → scikit_base-0.5.1.dist-info}/METADATA +160 -159
- scikit_base-0.5.1.dist-info/RECORD +58 -0
- {scikit_base-0.4.6.dist-info → scikit_base-0.5.1.dist-info}/WHEEL +1 -1
- scikit_base-0.5.1.dist-info/top_level.txt +5 -0
- {scikit_base-0.4.6.dist-info → scikit_base-0.5.1.dist-info}/zip-safe +1 -1
- skbase/__init__.py +14 -14
- skbase/_exceptions.py +31 -31
- skbase/_nopytest_tests.py +35 -35
- skbase/base/__init__.py +20 -20
- skbase/base/_base.py +1249 -1249
- skbase/base/_meta.py +883 -871
- skbase/base/_pretty_printing/__init__.py +11 -11
- skbase/base/_pretty_printing/_object_html_repr.py +392 -392
- skbase/base/_pretty_printing/_pprint.py +412 -412
- skbase/base/_tagmanager.py +217 -217
- skbase/lookup/__init__.py +31 -31
- skbase/lookup/_lookup.py +1009 -1009
- skbase/lookup/tests/__init__.py +2 -2
- skbase/lookup/tests/test_lookup.py +991 -991
- skbase/testing/__init__.py +12 -12
- skbase/testing/test_all_objects.py +852 -856
- skbase/testing/utils/__init__.py +5 -5
- skbase/testing/utils/_conditional_fixtures.py +209 -209
- skbase/testing/utils/_dependencies.py +15 -15
- skbase/testing/utils/deep_equals.py +15 -15
- skbase/testing/utils/inspect.py +30 -30
- skbase/testing/utils/tests/__init__.py +2 -2
- skbase/testing/utils/tests/test_check_dependencies.py +49 -49
- skbase/testing/utils/tests/test_deep_equals.py +66 -66
- skbase/tests/__init__.py +2 -2
- skbase/tests/conftest.py +273 -273
- skbase/tests/mock_package/__init__.py +5 -5
- skbase/tests/mock_package/test_mock_package.py +74 -74
- skbase/tests/test_base.py +1202 -1202
- skbase/tests/test_baseestimator.py +130 -130
- skbase/tests/test_exceptions.py +23 -23
- skbase/tests/test_meta.py +170 -131
- skbase/utils/__init__.py +21 -21
- skbase/utils/_check.py +53 -53
- skbase/utils/_iter.py +238 -238
- skbase/utils/_nested_iter.py +180 -180
- skbase/utils/_utils.py +91 -91
- skbase/utils/deep_equals.py +358 -358
- skbase/utils/dependencies/__init__.py +11 -11
- skbase/utils/dependencies/_dependencies.py +253 -253
- skbase/utils/tests/__init__.py +4 -4
- skbase/utils/tests/test_check.py +24 -24
- skbase/utils/tests/test_iter.py +127 -127
- skbase/utils/tests/test_nested_iter.py +84 -84
- skbase/utils/tests/test_utils.py +37 -37
- skbase/validate/__init__.py +22 -22
- skbase/validate/_named_objects.py +403 -403
- skbase/validate/_types.py +345 -345
- skbase/validate/tests/__init__.py +2 -2
- skbase/validate/tests/test_iterable_named_objects.py +200 -200
- skbase/validate/tests/test_type_validations.py +370 -370
- scikit_base-0.4.6.dist-info/RECORD +0 -58
- scikit_base-0.4.6.dist-info/top_level.txt +0 -2
@@ -1,49 +1,49 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
"""Tests for _check_soft_dependencies utility."""
|
3
|
-
import pytest
|
4
|
-
from packaging.requirements import InvalidRequirement
|
5
|
-
|
6
|
-
from skbase.testing.utils._dependencies import _check_soft_dependencies
|
7
|
-
|
8
|
-
|
9
|
-
def test_check_soft_deps():
|
10
|
-
"""Test package availability against pyproject of skbase."""
|
11
|
-
# test various admissible input types, positives
|
12
|
-
assert _check_soft_dependencies("pytest")
|
13
|
-
assert _check_soft_dependencies("pytest", "numpy")
|
14
|
-
assert _check_soft_dependencies("pytest", "numpy")
|
15
|
-
assert _check_soft_dependencies(["pytest", "numpy"])
|
16
|
-
assert _check_soft_dependencies(("pytest", "numpy"))
|
17
|
-
|
18
|
-
# test various admissible input types, negatives
|
19
|
-
assert not _check_soft_dependencies("humpty", severity="none")
|
20
|
-
assert not _check_soft_dependencies("numpy", "dumpty", severity="none")
|
21
|
-
assert not _check_soft_dependencies("humpty", "numpy", severity="none")
|
22
|
-
assert not _check_soft_dependencies(["humpty", "humpty"], severity="none")
|
23
|
-
assert not _check_soft_dependencies(("humpty", "dumpty"), severity="none")
|
24
|
-
|
25
|
-
# test error raise on error severity
|
26
|
-
with pytest.raises(ModuleNotFoundError):
|
27
|
-
assert _check_soft_dependencies("humpty", severity="error")
|
28
|
-
with pytest.raises(ModuleNotFoundError):
|
29
|
-
assert _check_soft_dependencies("numpy", "dumpty", severity="error")
|
30
|
-
|
31
|
-
# test warning on warning severity
|
32
|
-
with pytest.warns():
|
33
|
-
assert not _check_soft_dependencies("humpty", severity="warning")
|
34
|
-
with pytest.warns():
|
35
|
-
assert not _check_soft_dependencies("numpy", "dumpty", severity="warning")
|
36
|
-
|
37
|
-
# test valid PEP 440 specifier strings
|
38
|
-
assert _check_soft_dependencies("pytest>0.0.1")
|
39
|
-
assert _check_soft_dependencies("pytest>=0.0.1", "numpy!=0.1.0")
|
40
|
-
assert not _check_soft_dependencies(("pytest", "numpy<0.1.0"), severity="none")
|
41
|
-
assert _check_soft_dependencies(["pytest", "numpy>0.1.0"], severity="none")
|
42
|
-
|
43
|
-
# test error on invalid PEP 440 specifier string
|
44
|
-
with pytest.raises(InvalidRequirement):
|
45
|
-
assert _check_soft_dependencies("pytest!!!!>>>0.0.1")
|
46
|
-
with pytest.raises(InvalidRequirement):
|
47
|
-
assert _check_soft_dependencies(
|
48
|
-
("pytest", "!!numpy<~><>0.1.0"), severity="none"
|
49
|
-
)
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""Tests for _check_soft_dependencies utility."""
|
3
|
+
import pytest
|
4
|
+
from packaging.requirements import InvalidRequirement
|
5
|
+
|
6
|
+
from skbase.testing.utils._dependencies import _check_soft_dependencies
|
7
|
+
|
8
|
+
|
9
|
+
def test_check_soft_deps():
|
10
|
+
"""Test package availability against pyproject of skbase."""
|
11
|
+
# test various admissible input types, positives
|
12
|
+
assert _check_soft_dependencies("pytest")
|
13
|
+
assert _check_soft_dependencies("pytest", "numpy")
|
14
|
+
assert _check_soft_dependencies("pytest", "numpy")
|
15
|
+
assert _check_soft_dependencies(["pytest", "numpy"])
|
16
|
+
assert _check_soft_dependencies(("pytest", "numpy"))
|
17
|
+
|
18
|
+
# test various admissible input types, negatives
|
19
|
+
assert not _check_soft_dependencies("humpty", severity="none")
|
20
|
+
assert not _check_soft_dependencies("numpy", "dumpty", severity="none")
|
21
|
+
assert not _check_soft_dependencies("humpty", "numpy", severity="none")
|
22
|
+
assert not _check_soft_dependencies(["humpty", "humpty"], severity="none")
|
23
|
+
assert not _check_soft_dependencies(("humpty", "dumpty"), severity="none")
|
24
|
+
|
25
|
+
# test error raise on error severity
|
26
|
+
with pytest.raises(ModuleNotFoundError):
|
27
|
+
assert _check_soft_dependencies("humpty", severity="error")
|
28
|
+
with pytest.raises(ModuleNotFoundError):
|
29
|
+
assert _check_soft_dependencies("numpy", "dumpty", severity="error")
|
30
|
+
|
31
|
+
# test warning on warning severity
|
32
|
+
with pytest.warns():
|
33
|
+
assert not _check_soft_dependencies("humpty", severity="warning")
|
34
|
+
with pytest.warns():
|
35
|
+
assert not _check_soft_dependencies("numpy", "dumpty", severity="warning")
|
36
|
+
|
37
|
+
# test valid PEP 440 specifier strings
|
38
|
+
assert _check_soft_dependencies("pytest>0.0.1")
|
39
|
+
assert _check_soft_dependencies("pytest>=0.0.1", "numpy!=0.1.0")
|
40
|
+
assert not _check_soft_dependencies(("pytest", "numpy<0.1.0"), severity="none")
|
41
|
+
assert _check_soft_dependencies(["pytest", "numpy>0.1.0"], severity="none")
|
42
|
+
|
43
|
+
# test error on invalid PEP 440 specifier string
|
44
|
+
with pytest.raises(InvalidRequirement):
|
45
|
+
assert _check_soft_dependencies("pytest!!!!>>>0.0.1")
|
46
|
+
with pytest.raises(InvalidRequirement):
|
47
|
+
assert _check_soft_dependencies(
|
48
|
+
("pytest", "!!numpy<~><>0.1.0"), severity="none"
|
49
|
+
)
|
@@ -1,66 +1,66 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
"""Tests for deep_equals utility."""
|
3
|
-
from copy import deepcopy
|
4
|
-
|
5
|
-
import numpy as np
|
6
|
-
import pytest
|
7
|
-
|
8
|
-
from skbase.testing.utils._dependencies import _check_soft_dependencies
|
9
|
-
from skbase.utils.deep_equals import deep_equals
|
10
|
-
|
11
|
-
# examples used for comparison below
|
12
|
-
EXAMPLES = [
|
13
|
-
42,
|
14
|
-
[],
|
15
|
-
((((())))),
|
16
|
-
[([([([()])])])],
|
17
|
-
np.array([2, 3, 4]),
|
18
|
-
np.array([2, 4, 5]),
|
19
|
-
3.5,
|
20
|
-
4.2,
|
21
|
-
np.nan,
|
22
|
-
]
|
23
|
-
|
24
|
-
|
25
|
-
if _check_soft_dependencies("pandas", severity="none"):
|
26
|
-
import pandas as pd
|
27
|
-
|
28
|
-
EXAMPLES += [
|
29
|
-
pd.DataFrame({"a": [4, 2]}),
|
30
|
-
pd.DataFrame({"a": [4, 3]}),
|
31
|
-
(np.array([1, 2, 4]), [pd.DataFrame({"a": [4, 2]})]),
|
32
|
-
{"foo": [42], "bar": pd.Series([1, 2])},
|
33
|
-
{"bar": [42], "foo": pd.Series([1, 2])},
|
34
|
-
]
|
35
|
-
|
36
|
-
|
37
|
-
@pytest.mark.parametrize("fixture", EXAMPLES)
|
38
|
-
def test_deep_equals_positive(fixture):
|
39
|
-
"""Tests that deep_equals correctly identifies equal objects as equal."""
|
40
|
-
x = deepcopy(fixture)
|
41
|
-
y = deepcopy(fixture)
|
42
|
-
|
43
|
-
msg = (
|
44
|
-
f"deep_copy incorrectly returned False for two identical copies of "
|
45
|
-
f"the following object: {x}"
|
46
|
-
)
|
47
|
-
assert deep_equals(x, y), msg
|
48
|
-
|
49
|
-
|
50
|
-
n = len(EXAMPLES)
|
51
|
-
DIFFERENT_PAIRS = [
|
52
|
-
(EXAMPLES[i], EXAMPLES[j]) for i in range(n) for j in range(n) if i != j
|
53
|
-
]
|
54
|
-
|
55
|
-
|
56
|
-
@pytest.mark.parametrize("fixture1,fixture2", DIFFERENT_PAIRS)
|
57
|
-
def test_deep_equals_negative(fixture1, fixture2):
|
58
|
-
"""Tests that deep_equals correctly identifies unequal objects as unequal."""
|
59
|
-
x = deepcopy(fixture1)
|
60
|
-
y = deepcopy(fixture2)
|
61
|
-
|
62
|
-
msg = (
|
63
|
-
f"deep_copy incorrectly returned True when comparing "
|
64
|
-
f"the following, different objects: x={x}, y={y}"
|
65
|
-
)
|
66
|
-
assert not deep_equals(x, y), msg
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""Tests for deep_equals utility."""
|
3
|
+
from copy import deepcopy
|
4
|
+
|
5
|
+
import numpy as np
|
6
|
+
import pytest
|
7
|
+
|
8
|
+
from skbase.testing.utils._dependencies import _check_soft_dependencies
|
9
|
+
from skbase.utils.deep_equals import deep_equals
|
10
|
+
|
11
|
+
# examples used for comparison below
|
12
|
+
EXAMPLES = [
|
13
|
+
42,
|
14
|
+
[],
|
15
|
+
((((())))),
|
16
|
+
[([([([()])])])],
|
17
|
+
np.array([2, 3, 4]),
|
18
|
+
np.array([2, 4, 5]),
|
19
|
+
3.5,
|
20
|
+
4.2,
|
21
|
+
np.nan,
|
22
|
+
]
|
23
|
+
|
24
|
+
|
25
|
+
if _check_soft_dependencies("pandas", severity="none"):
|
26
|
+
import pandas as pd
|
27
|
+
|
28
|
+
EXAMPLES += [
|
29
|
+
pd.DataFrame({"a": [4, 2]}),
|
30
|
+
pd.DataFrame({"a": [4, 3]}),
|
31
|
+
(np.array([1, 2, 4]), [pd.DataFrame({"a": [4, 2]})]),
|
32
|
+
{"foo": [42], "bar": pd.Series([1, 2])},
|
33
|
+
{"bar": [42], "foo": pd.Series([1, 2])},
|
34
|
+
]
|
35
|
+
|
36
|
+
|
37
|
+
@pytest.mark.parametrize("fixture", EXAMPLES)
|
38
|
+
def test_deep_equals_positive(fixture):
|
39
|
+
"""Tests that deep_equals correctly identifies equal objects as equal."""
|
40
|
+
x = deepcopy(fixture)
|
41
|
+
y = deepcopy(fixture)
|
42
|
+
|
43
|
+
msg = (
|
44
|
+
f"deep_copy incorrectly returned False for two identical copies of "
|
45
|
+
f"the following object: {x}"
|
46
|
+
)
|
47
|
+
assert deep_equals(x, y), msg
|
48
|
+
|
49
|
+
|
50
|
+
n = len(EXAMPLES)
|
51
|
+
DIFFERENT_PAIRS = [
|
52
|
+
(EXAMPLES[i], EXAMPLES[j]) for i in range(n) for j in range(n) if i != j
|
53
|
+
]
|
54
|
+
|
55
|
+
|
56
|
+
@pytest.mark.parametrize("fixture1,fixture2", DIFFERENT_PAIRS)
|
57
|
+
def test_deep_equals_negative(fixture1, fixture2):
|
58
|
+
"""Tests that deep_equals correctly identifies unequal objects as unequal."""
|
59
|
+
x = deepcopy(fixture1)
|
60
|
+
y = deepcopy(fixture2)
|
61
|
+
|
62
|
+
msg = (
|
63
|
+
f"deep_copy incorrectly returned True when comparing "
|
64
|
+
f"the following, different objects: x={x}, y={y}"
|
65
|
+
)
|
66
|
+
assert not deep_equals(x, y), msg
|
skbase/tests/__init__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
"""Tests."""
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
"""Tests."""
|