All notable changes to this project beginning with version 0.1.0 will be documented in this file. The format is based on Keep a Changelog and we adhere to Semantic Versioning. The source code for all releases is available on GitHub.
You can also subscribe to skbase
's
PyPi release.
For planned changes and upcoming releases, see our :ref:`roadmap`.
Regular maintenance release.
- [ENH] prevent imports in
_check_soft_dependencies
(:pr:`340`) :user:`fkiraly`, :user:`yarnabrina` - [ENH] sync dependency checkers with
sktime
(:pr:`345`) :user:`fkiraly` - [pre-commit.ci] pre-commit autoupdate (:pr:`342`) :user:`pre-commit-ci`
- [MNT] [Dependabot](deps): Update
sphinx-gallery
requirement from<0.17.0
to<0.18.0
(:pr:`343`) :user:`dependabot` - [MNT] [Dependabot](deps): Update
sphinx
requirement from!=7.2.0,<8.0.0
to!=7.2.0,<9.0.0
(:pr:`344`) :user:`dependabot` - [MNT] Move release CI to macos-12 image (:pr:`347`) :user:`szepeviktor`
:user:`fkiraly`, :user:`szepeviktor`, :user:`yarnabrina`
Regular bugfix and maintenance release.
get_param_names
now allows users to return the parameter names in the same order as in the``__init__
method, by passing the argumentsort=False
.
- [ENH] option to return
BaseObject.get_param_names
in the same order as in the__init__
(:pr:`335`) :user:`fkiraly` - [ENH] refactor - move
StdoutMute
context manager toutils
(:pr:`338`) :user:`fkiraly` - [MNT]
numpy 2
compatibility of some tests (:pr:`337`) :user:`fkiraly` - [pre-commit.ci] pre-commit autoupdate (:pr:`336`) :user:`pre-commit-ci`
Feature update for all_objects
, bugfix and maintenance release.
all_objects
now allows filtering tag values byre.Pattern
regular expressions passed as query values viafilter_tags
.
- In
all_objects
, the meaning offilter_tags
arguments ot typestr
, and iterable ofstr
, will change fromscikit-base 0.9.0
. Currently,str
or iterable ofstr
arguments select objects that possess the tag(s) with the specified name, of any value. From 0.9.0 onwards,str
or iterable ofstr
will select objects that possess the tag with the specified name, with the valueTrue
(boolean). Seescikit-base
issue #326 for the rationale behind this change. To retain previous behaviour, that is, to select objects that possess the tag with the specified name, of any value, use adict
with the tag name as key, andre.Pattern('*?')
as value. That is,from re import Pattern
, and pass{tag_name: Pattern('*?')}
asfilter_tags
, and similarly with multiple tag names.
- [BUG] fix permanently muted
stdout
afterall_objects
call (:pr:`328`) :user:`fkiraly` - [ENH] refactor - simplify
all_objects
logic and add cache for efficient lookup (:pr:`331`) :user:`fkiraly` - [ENH]
all_objects
retrieval filtered by regex applied to tag values, deprecation of "has tag" condition in favour of "tag is True" (:pr:`329`) :user:`fkiraly` - [MNT] [Dependabot](deps): Update
sphinx-design
requirement from<0.6.0
to<0.7.0
(:pr:`332`) :user:`dependabot`
Regular bugfix and maintenance release.
- [BUG] safer comparison in
deep_equals
ifnp.any(x != y)
does not result in boolean (:pr:`323`) :user:`fkiraly` - [pre-commit.ci] pre-commit autoupdate (:pr:`322`) :user:`dependabot`
- [MNT] [Dependabot](deps): Update
sphinx-gallery
requirement from<0.16.0
to<0.17.0
(:pr:`321`) :user:`dependabot`
Small hotfix release.
- Revert "[MNT] rename
testing.utils.inspect
to avoid shadowing ofinspect
" (:pr:`319`) :user:`fkiraly`
Minor feature and bugfix release.
- [ENH]
deep_equals
support for nestednp.ndarray
(:pr:`314`) :user:`fkiraly` - [BUG] fix
sklearn
compatibility of_VisualBlock
(:pr:`310`) :user:`fkiraly` - [pre-commit.ci] pre-commit autoupdates (:pr:`306`, :pr:`307`, :pr:`308`, :pr:`312`, :pr:`315`) :user:`pre-commit-ci`
- [MNT] rename
testing.utils.inspect
to avoid shadowing ofinspect
(:pr:`316`) :user:`fkiraly`
Small hotfix release.
- [BUG] fix
deep_equals
on objects which have__len__
butlen(obj)
causes exception (:pr:`303`) :user:`fkiraly`
Small hotfix release.
- [BUG] preserve exception type raised by
get_test_params
(:pr:`300`) :user:`fkiraly`
Feature and bugfix release.
all_objects
now allows filtering for arbitrary parent classes, not just classes inheriting fromBaseObject
. This is useful for looking up objects in a third party package that are not part of theskbase
hierarchy.
- [ENH] allow arbitrary base class in
all_objects
(:pr:`284`) :user:`fkiraly` - [ENH] improved exception feedback for test instance generation methods
of
BaseObject
(:pr:`286`) :user:`fkiraly` - [ENH] estimator soft dependency check utilities (:pr:`285`) :user:`fkiraly`
- [ENH] Refactor
BaseObject.clone
(:pr:`281`) :user:`tpvasconcelos`
- [BUG] Fix
deep_equals
forpandas.Index
of different length (:pr:`290`) :user:`MBristle`
- [DOC] remove accidental duplicated section in
get_test_params
docstring (:pr:`292`) :user:`fkiraly` - [DOC] add yarnabrina to
all-contributorsrc
(:pr:`294`) :user:`fkiraly`
- [MNT] add
codecov` config ``yml
, remove CI failure condition (:pr:`296`) :user:`fkiraly` - [MNT] remove unnecessary CI triggers for release branches (:pr:`298`) :user:`fkiraly`
- [pre-commit.ci] pre-commit autoupdate by (:pr:`289`) :user:`@pre-commit-ci`
- [MNT] [Dependabot](deps): Bump codecov/codecov-action from
3
to4
(:pr:`283`) :user:`dependabot` - [MNT] [Dependabot](deps): Bump pre-commit/action from
3.0.0
to3.0.1
(:pr:`287`) :user:`dependabot`
:user:`fkiraly`, :user:`MBristle`, :user:`tpvasconcelos`
Feature and bugfix release.
- all
BaseObject
descendants now possess a methodset_random_state
. This can be used for nested setting ofrandom_state
variables, and is useful for ensuring reproducibility in nested estimators. (:pr:`268`) :user:`fkiraly` all_objects
now supports filtering for list-valued tags infilter_tags
as a convenience feature. When the query value is a single value or a list, the filter condition is that the tag value and the query value have at least one element in common. (:pr:`273`) :user:`fkiraly`
- [ENH]
all_objects
filter_tags
to function with list-of tags (:pr:`273`) :user:`fkiraly` - [ENH] Random state handling,
set_random_state
method (:pr:`268`) :user:`fkiraly`
- [BUG] Fix cloning of config for nested objects (:pr:`276`) :user:`tpvasconcelos`
- [DOC] lint changelog (:pr:`267`) :user:`fkiraly`
- [pre-commit.ci] pre-commit autoupdate (:pr:`274`) :user:`precommit-ci`
- [MNT] [Dependabot](deps): Bump
actions/dependency-review-action
from 3 to 4 (:pr:`269`) :user:`dependabot` - [MNT] [Dependabot](deps-dev): Update
sphinx-issues
requirement from<4.0.0
to<5.0.0
(:pr:`271`) :user:`dependabot` - [MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action
from
0.12.0
to0.12.1
(:pr:`272`) :user:`dependabot` - [MNT] Add common IDE files to
.gitignore
(:pr:`277`) :user:`tpvasconcelos`
:user:`fkiraly`, :user:`tpvasconcelos`
Minor bugfix and maintenance release.
- [BUG] fix
deep_equals
fornp.array
withdtype="object"
(:pr:`263`) :user:`fkiraly` - [pre-commit.ci] pre-commit autoupdate (:pr:`264`) :user:`precommit-ci`
Bugfix release with potentially breaking changes related to
set_config
, get_config
(:pr:`257`, :pr:`259`, :user:`fkiraly`)
due to masking of third party bugs,
please consult the changelog for details in case of breakage.
- configuration values - set via
set_config
and inspectable viaget_config
- are now retained throughclone
andreset
. Previous behaviour was to reset configuration values to default, which is considered a bug. However, this change may break existing code if two errors cancel out, e.g., if a breaking (without bug) configuration was set, the reset through the bug. In this case, the bug masked the breaking configuration, which should be addressed. Most breakages over 0.6.2 should be addressable by removingset_config
calls, i.e., removing the genuinely breaking configuration. - A configuration field
clone_config
was added that allows to configure whetherclone
should clone the configuration. This is useful for meta-estimators that should not clone the configuration of their components. This change is not breaking - considered in difference to the above - as the default behaviour is to clone the configuration.
- [BUG] fix
deep_equals
plugin forpd.Index
(:pr:`260`) :user:`fkiraly` - [BUG] retain config at
reset
, add tests forset_config
,get_config
(:pr:`259`) :user:`fkiraly` - [BUG] retain config after
clone
, add config to configure whether to clone config (:pr:`257`) :user:`fkiraly`
Release with minor improvements and bugfixes.
- [ENH]
deep_equals
- clearer return on diffs fromdtypes
andindex
, relaxation ofMultiIndex
equality check (:pr:`246`) :user:`fkiraly`
- [BUG] ensure
deep_equals
plugins are passed on to all recursions (:pr:`243`) :user:`fkiraly`
- [DOC] Fixed spelling mistakes as identified by
codespell
andtypos
(:pr:`245`) :user:`yarnabrina`
- [MNT] [Dependabot](deps-dev): Update sphinx-gallery requirement
from
<0.15.0
to<0.16.0
(:pr:`247`) :user:`dependabot` - [MNT] [Dependabot](deps): Bump actions/setup-python from 4 to 5 (:pr:`250`) :user:`dependabot`
- [MNT] [Dependabot](deps): Bump conda-incubator/setup-miniconda from 2 to 3 (:pr:`249`) :user:`dependabot`
- [MNT] [Dependabot](deps): Bump github/codeql-action from 2 to 3 (:pr:`252`) :user:`dependabot`
- [MNT] [Dependabot](deps): Bump actions/download-artifact from 3 to 4 (:pr:`253`) :user:`dependabot`
- [MNT] [Dependabot](deps): Bump actions/upload-artifact from 3 to 4 (:pr:`254`) :user:`dependabot`
set_params
now recognizes unique suffixes as aliases for full parameter strings, e.g.,foo
instead ofestimator__component__foo
(:pr:`229`) :user:`fkiraly`- the
deep_equals
utility now admits custom plugins with dependency isolation, e.g., for data types such asdask
orpolars
(:pr:`238`) :user:`fkiraly` dependabot
is now enabled for theskbase
repository (:pr:`228`) :user:`fkiraly`
set_params
now recognizes unique suffixes as aliases for full parameter strings. This change is not breaking as behaviour changes only in cases where previously exceptions were raised.
- [ENH]
set_params
to recognize unique suffixes as aliases for full parameter string (:pr:`229`) :user:`fkiraly` - [ENH] refactor string coercions and return logic in
deep_equals
utility (:pr:`237`) :user:`fkiraly` - [ENH] improved
deep_equals
utility - plugins for custom types (:pr:`238`) :user:`fkiraly` - [ENH] informative failure message in
test_get_package_metadata_returns_expected_results
(:pr:`239`) :user:`fkiraly`
- [MNT] activate
dependabot
for version updates and maintenance (:pr:`228`) :user:`fkiraly` - [MNT] [Dependabot](deps): Bump actions/upload-artifact from 2 to 3 (:pr:`230`) :user:`dependabot`
- [MNT] [Dependabot](deps): Bump actions/dependency-review-action from 1 to 3 (:pr:`231`) :user:`dependabot`
- [MNT] [Dependabot](deps): Bump actions/checkout from 3 to 4 (:pr:`232`) :user:`dependabot`
- [MNT] [Dependabot](deps): Bump actions/download-artifact from 2 to 3 (:pr:`233`) :user:`dependabot`
- [MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action from 0.9.1 to 0.12.0 (:pr:`234`) :user:`dependabot`
- [BUG] correct parameter name in
TestAllObjects
all_objects
call (:pr:`236`) :user:`fkiraly`
Maintenance release at python 3.12 release.
Adds support for python 3.12.
skbase
now supports python 3.12.
- the
deep_equals
utility has moved toskbase.utils.deep_equals
. The old location inskbase.testing.utils.deep_equals
has now been removed.
- [MNT] address deprecation of
load_module
inpython 3.12
(:pr:`190`) :user:`fkiraly` - [MNT] simplify test CI and remove
conda
(:pr:`224`) :user:`fkiraly` - [MNT] update dependency versions in
doc
dependency set and set upper bounds (:pr:`226`, :pr:`227`) :user:`fkiraly` - [MNT] update
python
version to 3.12 (:pr:`221`) :user:`fkiraly` - [MNT] 0.6.0 deprecation actions (:pr:`225`) :user:`fkiraly`
Release with minor improvements.
- [ENH] move tests for dependency checks and
deep_equals
toutils
module (:pr:`217`) :user:`fkiraly` - [ENH] meta-object mixins (:pr:`216`) :user:`fkiraly`
- [DOC] update
sktime
links (:pr:`219`) :user:`fkiraly`
Release with minor improvements and bugfixes.
- [ENH] remove
sklearn
dependency intest_get_params
(:pr:`212`) :user:`fkiraly`
- [DOC] landing page updates (:pr:`188`) :user:`fkiraly`
- [MNT] separate windows CI element from unix based CI (:pr:`209`) :user:`fkiraly`
- [MNT] convert
black
extend-exclude
parameter to single string (:pr:`207`) :user:`fkiraly` - [MNT] update
__init__
version (:pr:`210`) :user:`fkiraly` - [MNT] fix linting issue from newest pre-commit versions (:pr:`211`) :user:`fkiraly`
- [BUG] fix for
get_fitted_params
in_HeterogenousMetaEstimator
(:pr:`191`) :user:`fkiraly`
Maintenance release at python 3.7 end-of-life.
Removes support for python 3.7.
Bugfix release:
- [BUG] fix clone for nested sklearn estimators (:pr:`195`) :user:`fkiraly`, :user:`hazrulakmal`
- [BUG] fix faulty
suppress_import_stdout
inall_objects
(:pr:`193`) :user:`fkiraly`
Dummy release for aarch64
support on conda
(added in recipe there).
Regular maintenance release.
The deep_equals
utility has moved to skbase.utils.deep_equals
.
The old location in skbase.testing.utils.deep_equals
will be removed in
skbase
0.6.0, until then it can still be imported from there, with a warning.
- [MNT] move
deep_equals
and dependency checkers from testing to utilities to remove accidental coupling topytest
(:pr:`178`) :user:`fkiraly`, :user:`yarnabrina` - [MNT] test for isolation of developer dependencies,
and basic
pytest
-less test forBaseObject
(:pr:`179`, :pr:`183`) :user:`fkiraly`
:user:`fkiraly`, :user:`yarnabrina`
Hotfix for accidental import of pytest
through BaseObject.clone
,
including test for pytest
dependency isolation.
- [BUG] turn off check in
BaseObject.clone
(:pr:`176`) :user:`fkiraly` - [MNT] test for isolation of developer dependencies,
and basic
pytest
-less test forBaseObject
(:pr:`179`) :user:`fkiraly` - [DOC] fix some broken doc links, linting (:pr:`175`) :user:`fkiraly`
Maintenance update that cleans up dependencies.
Notably, scikit-base
no longer has any core dependencies.
This is as per usage intention as a base module, therefore this removal is not accompanied by deprecation.
scikit-learn
,typing-extensions
, andpytest
are no longer core dependencies.pytest
remains a dependency indev
andtest
dependency sets.scikit-learn
is now part of thedev
andtest
dependency sets, as it is required to test compatibility withscikit-learn
- a dependency conflict has been resolved in the
docs
dependency set for the docs build, by pinning versions
- [MNT] remove dependency on
typing-extensions
(:pr:`167`) :user:`fkiraly` - [MNT] remove dependency on
pytest
(:pr:`168`) :user:`fkiraly` - [MNT] remove dependency on
scikit-learn
(:pr:`171`) :user:`fkiraly` - [MNT] add
scikit-learn
totest
dependency set (:pr:`172`) :user:`fkiraly` - [MNT] remove
fail-fast
flag in CI (:pr:`169`) :user:`fkiraly` - [MNT] resolve dependency conflict in
docs
dependency set (:pr:`173`) :user:`fkiraly`
Small bugfix patch for pydata 2023 Seattle notebooks.
- [BUG] fix html display for meta-objects (:pr:`160`) :user:`fkiraly`
- [BUG] Fix
all_objects
lookup, broken tag filter (:pr:`161`) :user:`fkiraly`
- classes for heterogeneous collections aka meta-objects:
BaseMetaObject
andBaseMetaEstimator
, based onsklearn
andsktime
(:pr:`107`, :pr:`155`) skbase
nativeget_params
andget_fitted_params
interface, both withdeep
argument (:pr:`115`, :pr:`117`) :user:`fkiraly`- tag and config manager for objects, with
get_tag
,set_tag
,get_config
,set_config
, etc (:pr:`138`, :pr:`140`, :pr:`155`) :user:`fkiraly` sklearn
style pretty printing, configurable via tags (:pr:`156`) :user:`fkiraly`, :user:`RNKuhns`
- [ENH] Update meta classes and add unit tests (:pr:`107`) :user:`RNKuhns`
- [ENH]
skbase
nativeget_params
(:pr:`115`) :user:`fkiraly` - [ENH] ensure that
all_objects
always returns (class name/class) pairs (:pr:`115`) :user:`fkiraly` - [ENH] Initial type and named object validator code (:pr:`122`) :user:`RNKuhns`
- [ENH]
deep
argument forget_fitted_params
(:pr:`117`) :user:`fkiraly` - [ENH] Improve
skbase.utils
module structure (:pr:`126`) :user:`RNKuhns` - [ENH] Add
object_type
param to named object check (:pr:`136`) :user:`RNKuhns` - [ENH] tag manager mixin (:pr:`138`) :user:`fkiraly`
- [ENH] sync
TestAllObjects
withsktime
(:pr:`139`) :user:`fkiraly` - [ENH] object config interface (:pr:`140`) :user:`fkiraly`
- [ENH] tag logic mixin for meta-estimators (:pr:`155`) :user:`fkiraly`
- [ENH]
sklearn
style pretty printing (:pr:`156`) :user:`fkiraly`, :user:`RNKuhns`
- [BUG] fix faulty
BaseObject.__eq__
anddeep_equals
if an attribute or nested structure containsnp.nan
(:pr:`111`) :user:`fkiraly` - [BUG] Fix type error bug (:pr:`130`) :user:`RNKuhns`
- [BUG] fix unreported return type bug
of
BaseFixtureGenerator.is_excluded
(:pr:`142`) :user:`fkiraly`
- [DOC] Update installation guide to build
skbase
in a virtual env (:pr:`157`) :user:`achieveordie` - [DOC] fix odd author formatting on pypi (:pr:`157`) :user:`fkiraly`
- [MNT] Create Issue and PR Templates (:pr:`157`) :user:`RNKuhns`
- [MNT] Update pydocstyle in pre-commit config (:pr:`108`) :user:`RNKuhns`
- [MNT] Handle updates to pre-commit linters (:pr:`120`) :user:`RNKuhns`
- [MNT] numpy as a soft dependency (:pr:`121`) :user:`RNKuhns`
- [MNT] Add stacklevel to
warnings.warn
calls (:pr:`137`) :user:`RNKuhns` - [MNT] Add vs code settings and auto generated api area
to
.gitignore
(:pr:`143`) :user:`RNKuhns` - [MNT] Update slack to point to
skbase
workspace (:pr:`148`) :user:`RNKuhns`
:user:`achieveordie`, :user:`fkiraly`, :user:`rnkuhns`
- Reorganized package functionality into submodules focused on specific
functionality (:pr:`78`):
skbase.base
forBaseObject
,BaseEstimator
and other base classesskbase.testing
for functionality to testBaseObject
-sskbase.lookup
for retrieving metadata and allBaseObject
-s from a packageskbase.validate
for comparing and validatingBaseObject
-s
- Expanded test coverage of
skbase.base
andskbase.lookup
modules andskbase
exceptions (:pr:`62`, :pr:`80`, :pr:`91`) :user:`rnkuhns` - Add equality dunder to
BaseObject
to allowBaseObject
-s to be compared based on parameter equality (:pr:`86`) :user:`fkiraly` - Add
sktime
-like interface for retrieving fitted parameters toBaseEstimator
(:pr:`87`) :user:`fkiraly`
- Reorganized package functionality into submodules focused on specific functionality (:pr:`78`) :user:`rnkuhns`
- Add equality dunder to
BaseObject
to allowBaseObject
-s to be compared based on parameter equality (:pr:`86`) :user:`fkiraly` - Add
sktime
-like interface for retrieving fitted parameters toBaseEstimator
(:pr:`87`) :user:`fkiraly` - Rename
QuickTester.run_tests
parameterreturn_exceptions
toraise_exceptions
(:pr:`95`) :user:`fkiraly`
- Fix all_objects retrieval functionality (:pr:`69`) :user:`fkiraly`
- Fix issues identified by CodeQL scanning (:pr:`79`) :user:`rnkuhns`
- Switch from use of
sphinx-panels
tosphinx-design
(:pr:`93`) :user:`rnkuhns` - Updated installation instructions, added release instructions and made other minor documentation improvements (:pr:`100`) :user:`rnkuhns`
- Updated Github Action versions (:pr:`60`) :user:`rnkuhns`
- Migrate from use of lgtm.com to CodeQL scanning built-in to Github (:pr:`68`)
- Update config files and remove use of setup.py (:pr:`75`) :user:`rnkuhns`
- Add support for Python 3.11 (:pr:`77`) :user:`rnkuhns`
- Update
sklearn``s version upper bounds to ``<1.3
(:pr:`89`) :user:`fkiraly`
:user:`fkiraly`, :user:`rnkuhns`
This release is a maintenance release to change the name of the package
from baseobject
to skbase
.
- The package name was changed to
skbase
(:pr:`46`, :pr:`47`) :user:`fkiraly`
- Refactored code for
BaseObject
and related interfaces fromsktime
into its own package :user:`fkiraly`, :user:`rnkuhns` - Setup initial continuous integration routines :user:`rnkuhns`
- Setup initial documentation :user:`rnkuhns`
- Setup initial deployment workflow :user:`fkiraly`