scikit-base 0.6.2__tar.gz → 0.7.0__tar.gz
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.
- {scikit-base-0.6.2/scikit_base.egg-info → scikit-base-0.7.0}/PKG-INFO +2 -2
- {scikit-base-0.6.2 → scikit-base-0.7.0}/README.md +1 -1
- {scikit-base-0.6.2 → scikit-base-0.7.0}/pyproject.toml +1 -1
- {scikit-base-0.6.2 → scikit-base-0.7.0/scikit_base.egg-info}/PKG-INFO +2 -2
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/__init__.py +1 -1
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/base/_base.py +6 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/tests/test_base.py +69 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/deep_equals/_deep_equals.py +1 -1
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/tests/test_deep_equals.py +2 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/LICENSE +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/docs/source/conf.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/scikit_base.egg-info/SOURCES.txt +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/scikit_base.egg-info/dependency_links.txt +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/scikit_base.egg-info/requires.txt +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/scikit_base.egg-info/top_level.txt +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/scikit_base.egg-info/zip-safe +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/setup.cfg +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/_exceptions.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/_nopytest_tests.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/base/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/base/_meta.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/base/_pretty_printing/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/base/_pretty_printing/_object_html_repr.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/base/_pretty_printing/_pprint.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/base/_tagmanager.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/lookup/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/lookup/_lookup.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/lookup/tests/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/lookup/tests/test_lookup.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/testing/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/testing/test_all_objects.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/testing/utils/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/testing/utils/_conditional_fixtures.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/testing/utils/inspect.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/tests/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/tests/conftest.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/tests/mock_package/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/tests/mock_package/test_mock_package.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/tests/test_baseestimator.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/tests/test_exceptions.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/tests/test_meta.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/_check.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/_iter.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/_nested_iter.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/_utils.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/deep_equals/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/deep_equals/_common.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/dependencies/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/dependencies/_dependencies.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/dependencies/tests/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/dependencies/tests/test_check_dependencies.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/tests/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/tests/test_check.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/tests/test_iter.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/tests/test_nested_iter.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/tests/test_utils.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/validate/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/validate/_named_objects.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/validate/_types.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/validate/tests/__init__.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/validate/tests/test_iterable_named_objects.py +0 -0
- {scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/validate/tests/test_type_validations.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: scikit-base
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.7.0
|
4
4
|
Summary: Base classes for sklearn-like parametric objects
|
5
5
|
Author-email: sktime developers <sktime.toolbox@gmail.com>
|
6
6
|
Maintainer: Franz Király
|
@@ -114,7 +114,7 @@ Requires-Dist: scikit-learn>=0.24.0; extra == "test"
|
|
114
114
|
`skbase` provides base classes for creating scikit-learn-like parametric objects,
|
115
115
|
along with tools to make it easier to build your own packages that follow these design patterns.
|
116
116
|
|
117
|
-
:rocket: Version 0.6.
|
117
|
+
:rocket: Version 0.6.2 is now available. Check out our
|
118
118
|
[release notes](https://skbase.readthedocs.io/en/latest/changelog.html).
|
119
119
|
|
120
120
|
| Overview | |
|
@@ -7,7 +7,7 @@
|
|
7
7
|
`skbase` provides base classes for creating scikit-learn-like parametric objects,
|
8
8
|
along with tools to make it easier to build your own packages that follow these design patterns.
|
9
9
|
|
10
|
-
:rocket: Version 0.6.
|
10
|
+
:rocket: Version 0.6.2 is now available. Check out our
|
11
11
|
[release notes](https://skbase.readthedocs.io/en/latest/changelog.html).
|
12
12
|
|
13
13
|
| Overview | |
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: scikit-base
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.7.0
|
4
4
|
Summary: Base classes for sklearn-like parametric objects
|
5
5
|
Author-email: sktime developers <sktime.toolbox@gmail.com>
|
6
6
|
Maintainer: Franz Király
|
@@ -114,7 +114,7 @@ Requires-Dist: scikit-learn>=0.24.0; extra == "test"
|
|
114
114
|
`skbase` provides base classes for creating scikit-learn-like parametric objects,
|
115
115
|
along with tools to make it easier to build your own packages that follow these design patterns.
|
116
116
|
|
117
|
-
:rocket: Version 0.6.
|
117
|
+
:rocket: Version 0.6.2 is now available. Check out our
|
118
118
|
[release notes](https://skbase.readthedocs.io/en/latest/changelog.html).
|
119
119
|
|
120
120
|
| Overview | |
|
@@ -77,6 +77,7 @@ class BaseObject(_FlagManager):
|
|
77
77
|
"display": "diagram",
|
78
78
|
"print_changed_only": True,
|
79
79
|
"check_clone": False, # whether to execute validity checks in clone
|
80
|
+
"clone_config": True, # clone config values (True) or use defaults (False)
|
80
81
|
}
|
81
82
|
|
82
83
|
def __init__(self):
|
@@ -127,6 +128,7 @@ class BaseObject(_FlagManager):
|
|
127
128
|
"""
|
128
129
|
# retrieve parameters to copy them later
|
129
130
|
params = self.get_params(deep=False)
|
131
|
+
config = self.get_config()
|
130
132
|
|
131
133
|
# delete all object attributes in self
|
132
134
|
attrs = [attr for attr in dir(self) if "__" not in attr]
|
@@ -137,6 +139,7 @@ class BaseObject(_FlagManager):
|
|
137
139
|
|
138
140
|
# run init with a copy of parameters self had at the start
|
139
141
|
self.__init__(**params)
|
142
|
+
self.set_config(**config)
|
140
143
|
|
141
144
|
return self
|
142
145
|
|
@@ -157,6 +160,9 @@ class BaseObject(_FlagManager):
|
|
157
160
|
self_params = self.get_params(deep=False)
|
158
161
|
self_clone = self._clone(self)
|
159
162
|
|
163
|
+
if self.get_config()["clone_config"]:
|
164
|
+
self_clone.set_config(**self.get_config())
|
165
|
+
|
160
166
|
# if checking the clone is turned off, return now
|
161
167
|
if not self.get_config()["check_clone"]:
|
162
168
|
return self_clone
|
@@ -931,6 +931,41 @@ def test_clone_raises_error_for_nonconforming_objects(
|
|
931
931
|
# obj_that_modifies.clone()
|
932
932
|
|
933
933
|
|
934
|
+
@pytest.mark.parametrize("clone_config", [True, False])
|
935
|
+
def test_config_after_clone_tags(clone_config):
|
936
|
+
"""Test clone also clones config works as expected."""
|
937
|
+
|
938
|
+
class TestClass(BaseObject):
|
939
|
+
_tags = {"some_tag": True, "another_tag": 37}
|
940
|
+
_config = {"check_clone": 0}
|
941
|
+
|
942
|
+
test_obj = TestClass()
|
943
|
+
test_obj.set_config(**{"check_clone": 42, "foo": "bar"})
|
944
|
+
|
945
|
+
if not clone_config:
|
946
|
+
# if clone_config config is set to False:
|
947
|
+
# config key check_clone should be default, 0
|
948
|
+
# the new config key foo should not be present
|
949
|
+
test_obj.set_config(**{"clone_config": False})
|
950
|
+
expected = 0
|
951
|
+
else:
|
952
|
+
# if clone_config config is set to True:
|
953
|
+
# config key check_clone should be 42, as set above
|
954
|
+
# the new config key foo should be present, as it has non default
|
955
|
+
expected = 42
|
956
|
+
|
957
|
+
test_obj_clone = test_obj.clone()
|
958
|
+
|
959
|
+
assert "check_clone" in test_obj_clone.get_config().keys()
|
960
|
+
assert test_obj_clone.get_config()["check_clone"] == expected
|
961
|
+
|
962
|
+
if clone_config:
|
963
|
+
assert "foo" in test_obj_clone.get_config().keys()
|
964
|
+
assert test_obj_clone.get_config()["foo"] == "bar"
|
965
|
+
else:
|
966
|
+
assert "foo" not in test_obj_clone.get_config().keys()
|
967
|
+
|
968
|
+
|
934
969
|
@pytest.mark.skipif(
|
935
970
|
not _check_soft_dependencies("sklearn", severity="none"),
|
936
971
|
reason="skip test if sklearn is not available",
|
@@ -1297,3 +1332,37 @@ def test_eq_dunder():
|
|
1297
1332
|
assert composite == composite_2
|
1298
1333
|
assert composite != composite_3
|
1299
1334
|
assert composite_2 != composite_3
|
1335
|
+
|
1336
|
+
|
1337
|
+
def test_get_set_config():
|
1338
|
+
"""Tests get_config and set_config methods."""
|
1339
|
+
|
1340
|
+
class _TestConfig(BaseObject):
|
1341
|
+
_config = {"foo_config": 42, "bar": "a"}
|
1342
|
+
|
1343
|
+
clsvar = 210
|
1344
|
+
|
1345
|
+
def __init__(self, a, b=42):
|
1346
|
+
self.a = a
|
1347
|
+
self.b = b
|
1348
|
+
self.c = 84
|
1349
|
+
|
1350
|
+
test_obj = _TestConfig(7)
|
1351
|
+
|
1352
|
+
expected_config_orig = BaseObject._config.copy()
|
1353
|
+
expected_config_orig.update({"foo_config": 42, "bar": "a"})
|
1354
|
+
|
1355
|
+
# Test get_config
|
1356
|
+
assert test_obj.get_config() == expected_config_orig
|
1357
|
+
|
1358
|
+
expected_config = BaseObject._config.copy()
|
1359
|
+
expected_config.update({"foo_config": 37, "bar": "a"})
|
1360
|
+
|
1361
|
+
# Test set_config
|
1362
|
+
test_obj.set_config(foo_config=37)
|
1363
|
+
|
1364
|
+
assert test_obj.get_config() == expected_config
|
1365
|
+
|
1366
|
+
# test that reset does not reset config
|
1367
|
+
test_obj.reset()
|
1368
|
+
assert test_obj.get_config() == expected_config
|
@@ -488,7 +488,7 @@ def deep_equals_custom(x, y, return_msg=False, plugins=None):
|
|
488
488
|
import numpy as np
|
489
489
|
|
490
490
|
# deal with the case where != returns a vector
|
491
|
-
if numpy_available and np.any(x != y) or any(_coerce_list(x != y)):
|
491
|
+
if numpy_available and np.any(x != y) or np.any(_coerce_list(x != y)):
|
492
492
|
return ret(False, f" !=, {x} != {y}")
|
493
493
|
|
494
494
|
return ret(True, "")
|
@@ -40,6 +40,8 @@ if _check_soft_dependencies("pandas", severity="none"):
|
|
40
40
|
(np.array([1, 2, 4]), [pd.DataFrame({"a": [4, 2]})]),
|
41
41
|
{"foo": [42], "bar": pd.Series([1, 2])},
|
42
42
|
{"bar": [42], "foo": pd.Series([1, 2])},
|
43
|
+
pd.Index([1, 2, 3]),
|
44
|
+
pd.Index([2, 3, 4]),
|
43
45
|
]
|
44
46
|
|
45
47
|
# nested DataFrame example
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/utils/dependencies/tests/test_check_dependencies.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{scikit-base-0.6.2 → scikit-base-0.7.0}/skbase/validate/tests/test_iterable_named_objects.py
RENAMED
File without changes
|
File without changes
|