scikit-base 0.3.0__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 -0
- scikit_base-0.3.0.dist-info/LICENSE +29 -0
- scikit_base-0.3.0.dist-info/METADATA +157 -0
- scikit_base-0.3.0.dist-info/RECORD +37 -0
- scikit_base-0.3.0.dist-info/WHEEL +5 -0
- scikit_base-0.3.0.dist-info/top_level.txt +2 -0
- scikit_base-0.3.0.dist-info/zip-safe +1 -0
- skbase/__init__.py +14 -0
- skbase/_exceptions.py +31 -0
- skbase/base/__init__.py +19 -0
- skbase/base/_base.py +981 -0
- skbase/base/_meta.py +591 -0
- skbase/lookup/__init__.py +31 -0
- skbase/lookup/_lookup.py +1005 -0
- skbase/lookup/tests/__init__.py +2 -0
- skbase/lookup/tests/test_lookup.py +991 -0
- skbase/testing/__init__.py +12 -0
- skbase/testing/test_all_objects.py +796 -0
- skbase/testing/utils/__init__.py +5 -0
- skbase/testing/utils/_conditional_fixtures.py +202 -0
- skbase/testing/utils/_dependencies.py +254 -0
- skbase/testing/utils/deep_equals.py +337 -0
- skbase/testing/utils/inspect.py +30 -0
- skbase/testing/utils/tests/__init__.py +2 -0
- skbase/testing/utils/tests/test_check_dependencies.py +49 -0
- skbase/testing/utils/tests/test_deep_equals.py +63 -0
- skbase/tests/__init__.py +2 -0
- skbase/tests/conftest.py +178 -0
- skbase/tests/mock_package/__init__.py +5 -0
- skbase/tests/mock_package/test_mock_package.py +74 -0
- skbase/tests/test_base.py +1069 -0
- skbase/tests/test_baseestimator.py +126 -0
- skbase/tests/test_exceptions.py +23 -0
- skbase/utils/__init__.py +10 -0
- skbase/utils/_nested_iter.py +95 -0
- skbase/validate/__init__.py +8 -0
- skbase/validate/_types.py +106 -0
docs/source/conf.py
ADDED
@@ -0,0 +1,299 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# copyright: skbase developers, BSD-3-Clause License (see LICENSE file)
|
4
|
+
"""Configure skbase Sphinx documentation."""
|
5
|
+
|
6
|
+
# -- Path setup --------------------------------------------------------------
|
7
|
+
|
8
|
+
# If extensions (or modules to document with autodoc) are in another directory,
|
9
|
+
# add these directories to sys.path here. If the directory is relative to the
|
10
|
+
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
11
|
+
|
12
|
+
import datetime
|
13
|
+
import inspect
|
14
|
+
import os
|
15
|
+
import sys
|
16
|
+
|
17
|
+
import skbase
|
18
|
+
|
19
|
+
# -- Path setup --------------------------------------------------------------
|
20
|
+
|
21
|
+
# When we build the docs on readthedocs, we build the package and want to
|
22
|
+
# use the built files in order for sphinx to be able to properly read the
|
23
|
+
# Cython files. Hence, we do not add the source code path to the system path.
|
24
|
+
env_rtd = os.environ.get("READTHEDOCS")
|
25
|
+
# Check if on Read the docs
|
26
|
+
if not env_rtd == "True":
|
27
|
+
print("Not on ReadTheDocs")
|
28
|
+
sys.path.insert(0, os.path.abspath("../.."))
|
29
|
+
|
30
|
+
# -- Project information -----------------------------------------------------
|
31
|
+
|
32
|
+
current_year = datetime.datetime.now().year
|
33
|
+
project = "skbase"
|
34
|
+
copyright = f"{current_year} (BSD-3-Clause License)"
|
35
|
+
author = "skbase Developers"
|
36
|
+
|
37
|
+
|
38
|
+
# The full version, including alpha/beta/rc tags
|
39
|
+
release = skbase.__version__
|
40
|
+
|
41
|
+
# -- General configuration ---------------------------------------------------
|
42
|
+
|
43
|
+
# Add any Sphinx extension module names here, as strings. They can be
|
44
|
+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
45
|
+
# ones.
|
46
|
+
extensions = [
|
47
|
+
"sphinx.ext.autodoc",
|
48
|
+
"sphinx.ext.autosummary",
|
49
|
+
"numpydoc",
|
50
|
+
"sphinx.ext.intersphinx",
|
51
|
+
"sphinx.ext.linkcode", # link to GitHub source code via linkcode_resolve()
|
52
|
+
"nbsphinx", # integrates example notebooks
|
53
|
+
"sphinx_gallery.load_style",
|
54
|
+
"myst_parser",
|
55
|
+
"sphinx_panels",
|
56
|
+
"sphinx_issues",
|
57
|
+
"sphinx_design",
|
58
|
+
]
|
59
|
+
|
60
|
+
myst_enable_extensions = ["colon_fence"]
|
61
|
+
|
62
|
+
# -- Internationalization ------------------------------------------------
|
63
|
+
# specifying the natural language populates some key tags
|
64
|
+
language = "en"
|
65
|
+
|
66
|
+
# Use bootstrap CSS from theme.
|
67
|
+
panels_add_bootstrap_css = False
|
68
|
+
|
69
|
+
# Add any paths that contain templates here, relative to this directory.
|
70
|
+
templates_path = ["_templates"]
|
71
|
+
|
72
|
+
# The suffix(es) of source filenames.
|
73
|
+
# You can specify multiple suffix as a list of string:
|
74
|
+
source_suffix = {
|
75
|
+
".rst": "restructuredtext",
|
76
|
+
".md": "markdown",
|
77
|
+
}
|
78
|
+
|
79
|
+
# The main toctree document.
|
80
|
+
master_doc = "index"
|
81
|
+
|
82
|
+
# List of patterns, relative to source directory, that match files and
|
83
|
+
# directories to ignore when looking for source files.
|
84
|
+
# This pattern also affects html_static_path and html_extra_path.
|
85
|
+
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store", "**.ipynb_checkpoints"]
|
86
|
+
|
87
|
+
# add_module_names = False
|
88
|
+
|
89
|
+
# The name of the Pygments (syntax highlighting) style to use.
|
90
|
+
pygments_style = "sphinx"
|
91
|
+
|
92
|
+
# Members and inherited-members default to showing methods and attributes from
|
93
|
+
# a class or those inherited.
|
94
|
+
# Member-order orders the documentation in the order of how the members are
|
95
|
+
# defined in the source code.
|
96
|
+
autodoc_default_options = {
|
97
|
+
"members": True,
|
98
|
+
"inherited-members": True,
|
99
|
+
"member-order": "bysource",
|
100
|
+
}
|
101
|
+
|
102
|
+
# If true, '()' will be appended to :func: etc. cross-reference text.
|
103
|
+
add_function_parentheses = False
|
104
|
+
|
105
|
+
# Link to GitHub repo for github_issues extension
|
106
|
+
issues_github_path = "sktime/skbase"
|
107
|
+
|
108
|
+
|
109
|
+
def linkcode_resolve(domain, info):
|
110
|
+
"""Return URL to source code corresponding.
|
111
|
+
|
112
|
+
Parameters
|
113
|
+
----------
|
114
|
+
domain : str
|
115
|
+
info : dict
|
116
|
+
|
117
|
+
Returns
|
118
|
+
-------
|
119
|
+
url : str
|
120
|
+
"""
|
121
|
+
|
122
|
+
def find_source():
|
123
|
+
# try to find the file and line number, based on code from numpy:
|
124
|
+
# https://github.com/numpy/numpy/blob/main/doc/source/conf.py#L286
|
125
|
+
obj = sys.modules[info["module"]]
|
126
|
+
for part in info["fullname"].split("."):
|
127
|
+
obj = getattr(obj, part)
|
128
|
+
|
129
|
+
fn = inspect.getsourcefile(obj)
|
130
|
+
fn = os.path.relpath(fn, start=os.path.dirname(skbase.__file__))
|
131
|
+
source, lineno = inspect.getsourcelines(obj)
|
132
|
+
return fn, lineno, lineno + len(source) - 1
|
133
|
+
|
134
|
+
if domain != "py" or not info["module"]:
|
135
|
+
return None
|
136
|
+
try:
|
137
|
+
filename = "skbase/%s#L%d-L%d" % find_source()
|
138
|
+
except Exception:
|
139
|
+
filename = info["module"].replace(".", "/") + ".py"
|
140
|
+
return f"https://github.com/sktime/skbase/blob/{version_match}/{filename}"
|
141
|
+
|
142
|
+
|
143
|
+
# -- Options for HTML output -------------------------------------------------
|
144
|
+
|
145
|
+
# The theme to use for HTML and HTML Help pages. See the documentation for
|
146
|
+
# a list of builtin themes.
|
147
|
+
|
148
|
+
html_theme = "pydata_sphinx_theme"
|
149
|
+
|
150
|
+
# Define the json_url for our version switcher.
|
151
|
+
json_url = "https://skbase.readthedocs.io/en/latest/_static/switcher.json"
|
152
|
+
|
153
|
+
# This uses code from the py-data-sphinx theme's own conf.py
|
154
|
+
# Define the version we use for matching in the version switcher.
|
155
|
+
version_match = os.environ.get("READTHEDOCS_VERSION")
|
156
|
+
|
157
|
+
# If READTHEDOCS_VERSION doesn't exist, we're not on RTD
|
158
|
+
# If it is an integer, we're in a PR build and the version isn't correct.
|
159
|
+
if not version_match or version_match.isdigit():
|
160
|
+
# For local development, infer the version to match from the package.
|
161
|
+
if "dev" in release or "rc" in release:
|
162
|
+
version_match = "latest"
|
163
|
+
# We want to keep the relative reference if we are in dev mode
|
164
|
+
# but we want the whole url if we are effectively in a released version
|
165
|
+
json_url = "_static/switcher.json"
|
166
|
+
else:
|
167
|
+
version_match = "v" + release
|
168
|
+
|
169
|
+
html_theme_options = {
|
170
|
+
"logo": {
|
171
|
+
"text": "skbase",
|
172
|
+
"alt_text": "skbase",
|
173
|
+
},
|
174
|
+
"icon_links": [
|
175
|
+
{
|
176
|
+
"name": "GitHub",
|
177
|
+
"url": "https://github.com/sktime/skbase",
|
178
|
+
"icon": "fab fa-github",
|
179
|
+
},
|
180
|
+
{
|
181
|
+
"name": "Slack",
|
182
|
+
"url": "https://join.slack.com/t/sktime-group/shared_invite/zt-1cghagwee-sqLJ~eHWGYgzWbqUX937ig", # noqa: E501
|
183
|
+
"icon": "fab fa-slack",
|
184
|
+
},
|
185
|
+
{
|
186
|
+
"name": "PyPI",
|
187
|
+
"url": "https://pypi.org/project/skbase",
|
188
|
+
"icon": "fa-solid fa-box",
|
189
|
+
},
|
190
|
+
],
|
191
|
+
"icon_links_label": "Quick Links",
|
192
|
+
"show_nav_level": 1,
|
193
|
+
"show_prev_next": False,
|
194
|
+
"use_edit_page_button": False,
|
195
|
+
"navbar_start": ["navbar-logo", "version-switcher"],
|
196
|
+
"navbar_center": ["navbar-nav"],
|
197
|
+
"switcher": {
|
198
|
+
"json_url": json_url,
|
199
|
+
"version_match": version_match,
|
200
|
+
},
|
201
|
+
"header_links_before_dropdown": 6,
|
202
|
+
}
|
203
|
+
|
204
|
+
html_context = {
|
205
|
+
"github_user": "sktime",
|
206
|
+
"github_repo": "skbase",
|
207
|
+
"github_version": "main",
|
208
|
+
"doc_path": "docs/source/",
|
209
|
+
"default_mode": "light",
|
210
|
+
}
|
211
|
+
html_sidebars = {"**": ["sidebar-nav-bs.html", "sidebar-ethical-ads.html"]}
|
212
|
+
|
213
|
+
# Add any paths that contain custom static files (such as style sheets) here,
|
214
|
+
# relative to this directory. They are copied after the builtin static files,
|
215
|
+
# so a file named "default.css" will overwrite the builtin "default.css".
|
216
|
+
html_static_path = ["_static"]
|
217
|
+
|
218
|
+
# -- Options for HTMLHelp output ---------------------------------------------
|
219
|
+
# Output file base name for HTML help builder.
|
220
|
+
htmlhelp_basename = "skbasedoc"
|
221
|
+
|
222
|
+
|
223
|
+
# -- Options for LaTeX output ------------------------------------------------
|
224
|
+
# latex_elements = {
|
225
|
+
# The paper size ('letterpaper' or 'a4paper').
|
226
|
+
# 'papersize': 'letterpaper',
|
227
|
+
# The font size ('10pt', '11pt' or '12pt').
|
228
|
+
# 'pointsize': '10pt',
|
229
|
+
# Additional stuff for the LaTeX preamble.
|
230
|
+
# 'preamble': '',
|
231
|
+
# Latex figure (float) alignment
|
232
|
+
# 'figure_align': 'htbp',
|
233
|
+
# }
|
234
|
+
|
235
|
+
# Grouping the document tree into LaTeX files. List of tuples
|
236
|
+
# (source start file, target name, title,
|
237
|
+
# author, documentclass [howto, manual, or own class]).
|
238
|
+
latex_documents = [
|
239
|
+
(
|
240
|
+
master_doc,
|
241
|
+
"skbase.tex",
|
242
|
+
"skbase Documentation",
|
243
|
+
"skbase developers",
|
244
|
+
"manual",
|
245
|
+
),
|
246
|
+
]
|
247
|
+
|
248
|
+
# -- Extension configuration -------------------------------------------------
|
249
|
+
|
250
|
+
# -- Options for numpydoc extension ------------------------------------------
|
251
|
+
# see http://stackoverflow.com/q/12206334/562769
|
252
|
+
numpydoc_show_class_members = True
|
253
|
+
# this is needed for some reason...
|
254
|
+
# see https://github.com/numpy/numpydoc/issues/69
|
255
|
+
numpydoc_class_members_toctree = False
|
256
|
+
|
257
|
+
numpydoc_validation_checks = {"all", "GL01", "SA01", "EX01"}
|
258
|
+
|
259
|
+
# -- Options for sphinx-copybutton extension----------------------------------
|
260
|
+
copybutton_prompt_text = r">>> |\.\.\. |\$ |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: "
|
261
|
+
copybutton_prompt_is_regexp = True
|
262
|
+
|
263
|
+
# -- Options for nbsphinx extension ------------------------------------------
|
264
|
+
nbsphinx_execute = "never" # always # whether to run notebooks
|
265
|
+
nbsphinx_allow_errors = False # False
|
266
|
+
nbsphinx_timeout = 600 # seconds, set to -1 to disable timeout
|
267
|
+
|
268
|
+
# add Binder launch buttom at the top
|
269
|
+
current_file = "{{ env.doc2path( env.docname, base=None) }}"
|
270
|
+
|
271
|
+
# make sure Binder points to latest stable release, not main
|
272
|
+
binder_base = "https://mybinder.org/v2/gh//skbase/"
|
273
|
+
binder_url = binder_base + f"{version_match}?filepath={current_file}"
|
274
|
+
nbsphinx_prolog = f"""
|
275
|
+
.. |binder| image:: https://mybinder.org/badge_logo.svg
|
276
|
+
.. _Binder: {binder_url}
|
277
|
+
|
278
|
+
|Binder|_
|
279
|
+
"""
|
280
|
+
|
281
|
+
# add link to original notebook at the bottom
|
282
|
+
notebook_url = f"https://github.com/sktime/skbase/tree/{version_match}/{current_file}"
|
283
|
+
nbsphinx_epilog = f"""
|
284
|
+
----
|
285
|
+
|
286
|
+
Generated using nbsphinx_. The Jupyter notebook can be found here_.
|
287
|
+
|
288
|
+
.. _here: {notebook_url}
|
289
|
+
.. _nbsphinx: https://nbsphinx.readthedocs.io/
|
290
|
+
"""
|
291
|
+
|
292
|
+
# -- Options for intersphinx extension ---------------------------------------
|
293
|
+
|
294
|
+
# Example configuration for intersphinx: refer to the Python standard library.
|
295
|
+
intersphinx_mapping = {
|
296
|
+
"python": ("https://docs.python.org/{.major}".format(sys.version_info), None),
|
297
|
+
"scikit-learn": ("https://scikit-learn.org/stable/", None),
|
298
|
+
"sktime": ("https://www.sktime.org/en/stable/", None),
|
299
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
BSD 3-Clause License
|
2
|
+
|
3
|
+
Copyright (c) 2022, skbase Developers
|
4
|
+
All rights reserved.
|
5
|
+
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
8
|
+
|
9
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
10
|
+
list of conditions and the following disclaimer.
|
11
|
+
|
12
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
14
|
+
and/or other materials provided with the distribution.
|
15
|
+
|
16
|
+
3. Neither the name of the copyright holder nor the names of its
|
17
|
+
contributors may be used to endorse or promote products derived from
|
18
|
+
this software without specific prior written permission.
|
19
|
+
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
21
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
24
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
25
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
26
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
27
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
28
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
29
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
@@ -0,0 +1,157 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: scikit-base
|
3
|
+
Version: 0.3.0
|
4
|
+
Summary: Base classes for sklearn-like parametric objects
|
5
|
+
Author: Franz Király, Markus Löning, Ryan Kuhns
|
6
|
+
Maintainer-email: Franz Kiraly <f.kiraly@ucl.ac.uk>, Ryan Kuhns <rk.skbase@gmail.com>
|
7
|
+
License: BSD 3-Clause License
|
8
|
+
|
9
|
+
Copyright (c) 2022, skbase Developers
|
10
|
+
All rights reserved.
|
11
|
+
|
12
|
+
Redistribution and use in source and binary forms, with or without
|
13
|
+
modification, are permitted provided that the following conditions are met:
|
14
|
+
|
15
|
+
1. Redistributions of source code must retain the above copyright notice, this
|
16
|
+
list of conditions and the following disclaimer.
|
17
|
+
|
18
|
+
2. Redistributions in binary form must reproduce the above copyright notice,
|
19
|
+
this list of conditions and the following disclaimer in the documentation
|
20
|
+
and/or other materials provided with the distribution.
|
21
|
+
|
22
|
+
3. Neither the name of the copyright holder nor the names of its
|
23
|
+
contributors may be used to endorse or promote products derived from
|
24
|
+
this software without specific prior written permission.
|
25
|
+
|
26
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
27
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
28
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
29
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
30
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
31
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
32
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
33
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
34
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
35
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
36
|
+
|
37
|
+
Project-URL: homepage, https://github.com/sktime/skbase
|
38
|
+
Project-URL: repository, https://github.com/sktime/skbase
|
39
|
+
Project-URL: documentation, https://github.com/sktime/skbase
|
40
|
+
Project-URL: download, https://pypi.org/project/skbase/#files
|
41
|
+
Keywords: data-science,machine-learning,scikit-learn
|
42
|
+
Classifier: Intended Audience :: Science/Research
|
43
|
+
Classifier: Intended Audience :: Developers
|
44
|
+
Classifier: License :: OSI Approved :: BSD License
|
45
|
+
Classifier: Programming Language :: Python
|
46
|
+
Classifier: Topic :: Software Development
|
47
|
+
Classifier: Topic :: Scientific/Engineering
|
48
|
+
Classifier: Operating System :: Microsoft :: Windows
|
49
|
+
Classifier: Operating System :: POSIX
|
50
|
+
Classifier: Operating System :: Unix
|
51
|
+
Classifier: Operating System :: MacOS
|
52
|
+
Classifier: Programming Language :: Python :: 3.7
|
53
|
+
Classifier: Programming Language :: Python :: 3.8
|
54
|
+
Classifier: Programming Language :: Python :: 3.9
|
55
|
+
Classifier: Programming Language :: Python :: 3.10
|
56
|
+
Classifier: Programming Language :: Python :: 3.11
|
57
|
+
Requires-Python: <3.12,>=3.7
|
58
|
+
Description-Content-Type: text/markdown
|
59
|
+
License-File: LICENSE
|
60
|
+
Requires-Dist: scikit-learn (<1.3.0,>=0.24.0)
|
61
|
+
Requires-Dist: typing-extensions
|
62
|
+
Requires-Dist: pytest
|
63
|
+
Provides-Extra: all_extras
|
64
|
+
Requires-Dist: pandas ; extra == 'all_extras'
|
65
|
+
Provides-Extra: binder
|
66
|
+
Requires-Dist: jupyter ; extra == 'binder'
|
67
|
+
Provides-Extra: dev
|
68
|
+
Requires-Dist: pre-commit ; extra == 'dev'
|
69
|
+
Requires-Dist: pytest ; extra == 'dev'
|
70
|
+
Requires-Dist: pytest-cov ; extra == 'dev'
|
71
|
+
Provides-Extra: docs
|
72
|
+
Requires-Dist: jupyter ; extra == 'docs'
|
73
|
+
Requires-Dist: myst-parser ; extra == 'docs'
|
74
|
+
Requires-Dist: nbsphinx (>=0.8.6) ; extra == 'docs'
|
75
|
+
Requires-Dist: numpydoc ; extra == 'docs'
|
76
|
+
Requires-Dist: pydata-sphinx-theme ; extra == 'docs'
|
77
|
+
Requires-Dist: sphinx-copybutton ; extra == 'docs'
|
78
|
+
Requires-Dist: sphinx-issues ; extra == 'docs'
|
79
|
+
Requires-Dist: sphinx-gallery ; extra == 'docs'
|
80
|
+
Requires-Dist: sphinx-panels ; extra == 'docs'
|
81
|
+
Requires-Dist: sphinx-design ; extra == 'docs'
|
82
|
+
Requires-Dist: sphinx ; extra == 'docs'
|
83
|
+
Provides-Extra: linters
|
84
|
+
Requires-Dist: mypy ; extra == 'linters'
|
85
|
+
Requires-Dist: isort ; extra == 'linters'
|
86
|
+
Requires-Dist: flake8 ; extra == 'linters'
|
87
|
+
Requires-Dist: black ; extra == 'linters'
|
88
|
+
Requires-Dist: pydocstyle ; extra == 'linters'
|
89
|
+
Requires-Dist: nbqa ; extra == 'linters'
|
90
|
+
Requires-Dist: flake8-bugbear ; extra == 'linters'
|
91
|
+
Requires-Dist: flake8-builtins ; extra == 'linters'
|
92
|
+
Requires-Dist: flake8-quotes ; extra == 'linters'
|
93
|
+
Requires-Dist: flake8-comprehensions ; extra == 'linters'
|
94
|
+
Requires-Dist: pandas-vet ; extra == 'linters'
|
95
|
+
Requires-Dist: flake8-print ; extra == 'linters'
|
96
|
+
Requires-Dist: pep8-naming ; extra == 'linters'
|
97
|
+
Requires-Dist: doc8 ; extra == 'linters'
|
98
|
+
Provides-Extra: test
|
99
|
+
Requires-Dist: pytest ; extra == 'test'
|
100
|
+
Requires-Dist: coverage ; extra == 'test'
|
101
|
+
Requires-Dist: pytest-cov ; extra == 'test'
|
102
|
+
Requires-Dist: safety ; extra == 'test'
|
103
|
+
Requires-Dist: numpy ; extra == 'test'
|
104
|
+
Requires-Dist: scipy ; extra == 'test'
|
105
|
+
Requires-Dist: pandas ; extra == 'test'
|
106
|
+
|
107
|
+
|
108
|
+
# Welcome to skbase
|
109
|
+
|
110
|
+
> A base class for scikit-learn-like and sktime-like parametric objects
|
111
|
+
|
112
|
+
`skbase` provides base classes for creating scikit-learn-like parametric objects,
|
113
|
+
along with tools to make it easier to build your own packages that follow these
|
114
|
+
design patterns.
|
115
|
+
|
116
|
+
:rocket: Version 0.3.0 is now available. Checkout our
|
117
|
+
[release notes](https://skbase.readthedocs.io/en/latest/changelog.html).
|
118
|
+
|
119
|
+
| Overview | |
|
120
|
+
|---|---|
|
121
|
+
| **CI/CD** | [](https://github.com/sktime/skbase/actions/workflows/test.yml) [](https://codecov.io/gh/sktime/skbase) [](https://skbase.readthedocs.io/en/latest/?badge=latest) [](https://results.pre-commit.ci/latest/github/sktime/skbase/main) |
|
122
|
+
| **Code** | [](https://pypi.org/project/skbase/) [](https://www.python.org/) [](https://github.com/psf/black) [](https://github.com/PyCQA/bandit) |
|
123
|
+
| **Downloads**| [)](https://pepy.tech/project/skbase) [)](https://pepy.tech/project/skbase) [)](https://pepy.tech/project/skbase) |
|
124
|
+
|
125
|
+
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
126
|
+
[](#contributors)
|
127
|
+
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
128
|
+
|
129
|
+
## Documentation
|
130
|
+
|
131
|
+
To learn more about the package checkout our [documentation](https://skbase.readthedocs.io/en/latest/).
|
132
|
+
|
133
|
+
## :hourglass_flowing_sand: Install skbase
|
134
|
+
For trouble shooting or more information, see our
|
135
|
+
[detailed installation instructions](https://skbase.readthedocs.io/en/latest/user_documentation/installation.html).
|
136
|
+
|
137
|
+
- **Operating system**: macOS X · Linux · Windows 8.1 or higher
|
138
|
+
- **Python version**: Python 3.7, 3.8, 3.9, 3.10 and 3.11
|
139
|
+
- **Package managers**: [pip]
|
140
|
+
|
141
|
+
[pip]: https://pip.pypa.io/en/stable/
|
142
|
+
|
143
|
+
### pip
|
144
|
+
skbase releases are available as source packages and binary wheels via PyPI
|
145
|
+
and can be installed using pip. Checkout the full list of pre-compiled [wheels on PyPi](https://pypi.org/simple/skbase/).
|
146
|
+
|
147
|
+
To install the core package use:
|
148
|
+
|
149
|
+
```bash
|
150
|
+
pip install skbase
|
151
|
+
```
|
152
|
+
|
153
|
+
or, if you want to install with the maximum set of dependencies, use:
|
154
|
+
|
155
|
+
```bash
|
156
|
+
pip install skbase[all_extras]
|
157
|
+
```
|
@@ -0,0 +1,37 @@
|
|
1
|
+
docs/source/conf.py,sha256=6ZyTamT1QfYsGcWlpND9dD6WIfaFxeVcrnZ2sVgN-Y4,10150
|
2
|
+
skbase/__init__.py,sha256=TwBqxSKQKHHG1LOGvJ0UVU7uWIvYwCX1_VBG_qrY6WA,468
|
3
|
+
skbase/_exceptions.py,sha256=-4XlbdV2BZm5-pDiytml-qLbc0keLwMyJ9I99jCqqgY,1144
|
4
|
+
skbase/base/__init__.py,sha256=nAOL8rlg1Te654kwvLuovU3vlqyrVDep0CcSQ8GBg78,610
|
5
|
+
skbase/base/_base.py,sha256=D8HuHSot2nr9tq61NYpaiYGRc5x0JKAlSQv3LvAKrSA,36286
|
6
|
+
skbase/base/_meta.py,sha256=fynBdqpmukxd7lThYH40tBfHIvgYmZyaWy-BiUtrzlk,24551
|
7
|
+
skbase/lookup/__init__.py,sha256=X6gqsMDn90uZ6KU9uGsaW-imy4W-7o-MBU7j-VOxEhU,1120
|
8
|
+
skbase/lookup/_lookup.py,sha256=ltO3CgPIyqN4eQ2PbGpxwn_iCmOmmhlyXgsgMUETh9w,39804
|
9
|
+
skbase/lookup/tests/__init__.py,sha256=U1FJByDkMRlLE1l_aZQzMIwKqUqfK0VKH-Rg7uJxibM,70
|
10
|
+
skbase/lookup/tests/test_lookup.py,sha256=C0N7HoupxKLHVyl6hFqRy5tDEB5QIXBDwRWz78RsRbw,37960
|
11
|
+
skbase/testing/__init__.py,sha256=pZLBInjq1rmw0zH5iyVXjg7JiYAAIM63_VHGRCOMmZM,363
|
12
|
+
skbase/testing/test_all_objects.py,sha256=5_FZB9vRd0gsZ_GBmvA1h9FMA4Ti3336HBVj0TQywPw,34320
|
13
|
+
skbase/testing/utils/__init__.py,sha256=-E0UI0om6zg-YqSt9r8Et7sYsYPCa2RUrpAuR0ak7YQ,118
|
14
|
+
skbase/testing/utils/_conditional_fixtures.py,sha256=m8PP0SCrizLr0H5bZLOqkIo8MGEJB4XyuQ6tnHffxmM,9944
|
15
|
+
skbase/testing/utils/_dependencies.py,sha256=7idp_ro_-K1KZaODyvI0ZVaWlQj_e9_N5e5n8sHLXKU,10545
|
16
|
+
skbase/testing/utils/deep_equals.py,sha256=k0Y1BllA4TdSRwdccwKhXbqx_X5Xdh_4VtObwVbCry0,11159
|
17
|
+
skbase/testing/utils/inspect.py,sha256=TEcnAPAKE8WGSXqqGi5g-70WfH0TXoGd9RJcPwpIkv4,771
|
18
|
+
skbase/testing/utils/tests/__init__.py,sha256=XvxK2FkKa--uAoPFRcjMetNePtkk43iTsKrfOimUEr0,73
|
19
|
+
skbase/testing/utils/tests/test_check_dependencies.py,sha256=vajap4Ij5OSlWcNpGAFEbHSAZIxTYyzZb8WxusnqTyk,2282
|
20
|
+
skbase/testing/utils/tests/test_deep_equals.py,sha256=iVGyOHBVIB2TstN0bkTy8RsSpptPZSKYSqQZzTbYh1I,1746
|
21
|
+
skbase/tests/__init__.py,sha256=_G_N2Ciuy4OGeYThRjK_UBYogvKvb_0PP0mnRUjk7BA,39
|
22
|
+
skbase/tests/conftest.py,sha256=ouVYPmmGZu737o1Jmtm7D9xlyo45iLbEjKFlR8F4k3s,5598
|
23
|
+
skbase/tests/test_base.py,sha256=TSrn9XC13qZotC6Q8wblCscwA-u-M3fFicPb7o5yvMQ,38547
|
24
|
+
skbase/tests/test_baseestimator.py,sha256=8ECq5WzorulIdYfYExf4t_iZPJkSQlp9b8_-lkuZnSc,4620
|
25
|
+
skbase/tests/test_exceptions.py,sha256=3_8TZvVtCAdtRze5Gc9wh7_icEgXGQAsjOE9D1K44MQ,652
|
26
|
+
skbase/tests/mock_package/__init__.py,sha256=gdxk-nkGZZiIy85IZydH4GourkJypMJHczxEyTG03IA,140
|
27
|
+
skbase/tests/mock_package/test_mock_package.py,sha256=8QMVqMmV58ZVn7KvSgr9v3yJ49yZ2URF0gTAiJb0Ekc,2095
|
28
|
+
skbase/utils/__init__.py,sha256=kVG-pOnBqMt3yJfxkaH_1X8qPo1b6qS7wxEy2gk9GN8,397
|
29
|
+
skbase/utils/_nested_iter.py,sha256=KGWwRQxPWB57pAbePknyFbMrFG0D68Bh0LtEo2VRqEA,2505
|
30
|
+
skbase/validate/__init__.py,sha256=NBQZPcJ3uDc0_Qb9VBe_liIdiNNBAcXuLxZIRIJoxcg,311
|
31
|
+
skbase/validate/_types.py,sha256=8rV_mGytar1KRc3aZIss3PHJNHdqDC314sxnX1fuaQQ,3304
|
32
|
+
scikit_base-0.3.0.dist-info/LICENSE,sha256=PTCDdo2gJRanyF1geMw1Dmu_h1NRUGO8yu9uv-rf-ns,1554
|
33
|
+
scikit_base-0.3.0.dist-info/METADATA,sha256=m6oDKRvOvXOTDlEHoNDMgS5_5eDULZAkmSoSwiu0mMU,8368
|
34
|
+
scikit_base-0.3.0.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
35
|
+
scikit_base-0.3.0.dist-info/top_level.txt,sha256=w1qkyDz4E8oZRVj4F3LoNBpYJIOGh_gAHSFWGxoiieY,12
|
36
|
+
scikit_base-0.3.0.dist-info/zip-safe,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
37
|
+
scikit_base-0.3.0.dist-info/RECORD,,
|
@@ -0,0 +1 @@
|
|
1
|
+
|
skbase/__init__.py
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env python3 -u
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# copyright: skbase developers, BSD-3-Clause License (see LICENSE file)
|
4
|
+
""":mod:`skbase` contains tools for creating and working with parametric objects.
|
5
|
+
|
6
|
+
The included functionality makes it easy to re-use scikit-learn and
|
7
|
+
sktime design principles in your project.
|
8
|
+
"""
|
9
|
+
from typing import List
|
10
|
+
|
11
|
+
__version__: str = "0.3.0"
|
12
|
+
|
13
|
+
__author__: List[str] = ["mloning", "RNKuhns", "fkiraly"]
|
14
|
+
__all__: List[str] = []
|
skbase/_exceptions.py
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# copyright: skbase developers, BSD-3-Clause License (see LICENSE file)
|
3
|
+
# NotFittedError re-use code developed in scikit-learn. These elements
|
4
|
+
# are copyrighted by the scikit-learn developers, BSD-3-Clause License. For
|
5
|
+
# conditions see https://github.com/scikit-learn/scikit-learn/blob/main/COPYING
|
6
|
+
"""Custom exceptions used in ``skbase``."""
|
7
|
+
from typing import List
|
8
|
+
|
9
|
+
__author__: List[str] = ["fkiraly", "mloning", "rnkuhns"]
|
10
|
+
__all__: List[str] = ["FixtureGenerationError", "NotFittedError"]
|
11
|
+
|
12
|
+
|
13
|
+
class FixtureGenerationError(Exception):
|
14
|
+
"""Raised when a fixture fails to generate."""
|
15
|
+
|
16
|
+
def __init__(self, fixture_name="", err=None):
|
17
|
+
self.fixture_name = fixture_name
|
18
|
+
super().__init__(f"fixture {fixture_name} failed to generate. {err}")
|
19
|
+
|
20
|
+
|
21
|
+
class NotFittedError(ValueError, AttributeError):
|
22
|
+
"""Exception class to raise if estimator is used before fitting.
|
23
|
+
|
24
|
+
This class inherits from both ValueError and AttributeError to help with
|
25
|
+
exception handling.
|
26
|
+
|
27
|
+
References
|
28
|
+
----------
|
29
|
+
[1] scikit-learn's NotFittedError
|
30
|
+
[2] sktime's NotFittedError
|
31
|
+
"""
|
skbase/base/__init__.py
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
#!/usr/bin/env python3 -u
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
# copyright: skbase developers, BSD-3-Clause License (see LICENSE file)
|
4
|
+
""":mod:`skbase.base` contains base classes for creating parametric objects.
|
5
|
+
|
6
|
+
The included functionality makes it easy to re-use scikit-learn and
|
7
|
+
sktime design principles in your project.
|
8
|
+
"""
|
9
|
+
from typing import List
|
10
|
+
|
11
|
+
from skbase.base._base import BaseEstimator, BaseObject
|
12
|
+
from skbase.base._meta import BaseMetaEstimator
|
13
|
+
|
14
|
+
__author__: List[str] = ["mloning", "RNKuhns", "fkiraly"]
|
15
|
+
__all__: List[str] = [
|
16
|
+
"BaseObject",
|
17
|
+
"BaseEstimator",
|
18
|
+
"BaseMetaEstimator",
|
19
|
+
]
|