Changelog#

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 Roadmap.

[0.7.7] - 2024-03-02#

Small hotfix release.

Contents#

  • Revert “[MNT] rename testing.utils.inspect to avoid shadowing of inspect” (#319) @fkiraly

[0.7.6] - 2024-03-02#

Minor feature and bugfix release.

Contents#

[0.7.5] - 2024-03-02#

Small hotfix release.

Contents#

  • [BUG] fix deep_equals on objects which have __len__ but len(obj) causes exception (#303) @fkiraly

[0.7.4] - 2024-03-01#

Small hotfix release.

Contents#

  • [BUG] preserve exception type raised by get_test_params (#300) @fkiraly

[0.7.3] - 2024-02-29#

Feature and bugfix release.

Core interface changes#

  • all_objects now allows filtering for arbitrary parent classes, not just classes inheriting from BaseObject. This is useful for looking up objects in a third party package that are not part of the skbase hierarchy.

Enhancements#

  • [ENH] allow arbitrary base class in all_objects (#284) @fkiraly

  • [ENH] improved exception feedback for test instance generation methods of BaseObject (#286) @fkiraly

  • [ENH] estimator soft dependency check utilities (#285) @fkiraly

  • [ENH] Refactor BaseObject.clone (#281) @tpvasconcelos

Fixes#

  • [BUG] Fix deep_equals for pandas.Index of different length (#290) @MBristle

Documentation#

  • [DOC] remove accidental duplicated section in get_test_params docstring (#292) @fkiraly

  • [DOC] add yarnabrina to all-contributorsrc (#294) @fkiraly

Maintenance#

  • [MNT] add codecov` config ``yml, remove CI failure condition (#296) @fkiraly

  • [MNT] remove unnecessary CI triggers for release branches (#298) @fkiraly

  • [pre-commit.ci] pre-commit autoupdate by (#289) @pre-commit-ci

  • [MNT] [Dependabot](deps): Bump codecov/codecov-action from 3 to 4 (#283) @dependabot

  • [MNT] [Dependabot](deps): Bump pre-commit/action from 3.0.0 to 3.0.1 (#287) @dependabot

Contributors#

@fkiraly, @MBristle, @tpvasconcelos

[0.7.2] - 2024-01-31#

Feature and bugfix release.

Core interface changes#

  • all BaseObject descendants now possess a method set_random_state. This can be used for nested setting of random_state variables, and is useful for ensuring reproducibility in nested estimators. (#268) @fkiraly

  • all_objects now supports filtering for list-valued tags in filter_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. (#273) @fkiraly

Enhancements#

  • [ENH] all_objects filter_tags to function with list-of tags (#273) @fkiraly

  • [ENH] Random state handling, set_random_state method (#268) @fkiraly

Fixes#

Documentation#

Maintenance#

  • [pre-commit.ci] pre-commit autoupdate (#274) @precommit-ci

  • [MNT] [Dependabot](deps): Bump actions/dependency-review-action from 3 to 4 (#269) @dependabot

  • [MNT] [Dependabot](deps-dev): Update sphinx-issues requirement from <4.0.0 to <5.0.0 (#271) @dependabot

  • [MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action from 0.12.0 to 0.12.1 (#272) @dependabot

  • [MNT] Add common IDE files to .gitignore (#277) @tpvasconcelos

Contributors#

@fkiraly, @tpvasconcelos

[0.7.1] - 2023-01-12#

Minor bugfix and maintenance release.

Contents#

[0.7.0] - 2023-01-03#

Bugfix release with potentially breaking changes related to set_config, get_config (#257, #259, @fkiraly) due to masking of third party bugs, please consult the changelog for details in case of breakage.

Core interface changes#

  • configuration values - set via set_config and inspectable via get_config - are now retained through clone and reset. 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 removing set_config calls, i.e., removing the genuinely breaking configuration.

  • A configuration field clone_config was added that allows to configure whether clone 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.

Fixes#

  • [BUG] fix deep_equals plugin for pd.Index (#260) @fkiraly

  • [BUG] retain config at reset, add tests for set_config, get_config (#259) @fkiraly

  • [BUG] retain config after clone, add config to configure whether to clone config (#257) @fkiraly

[0.6.2] - 2023-12-30#

Release with minor improvements and bugfixes.

Enhancements#

  • [ENH] deep_equals - clearer return on diffs from dtypes and index, relaxation of MultiIndex equality check (#246) @fkiraly

Fixes#

  • [BUG] ensure deep_equals plugins are passed on to all recursions (#243) @fkiraly

Documentation#

  • [DOC] Fixed spelling mistakes as identified by codespell and typos (#245) @yarnabrina

Maintenance#

  • [MNT] [Dependabot](deps-dev): Update sphinx-gallery requirement from <0.15.0 to <0.16.0 (#247) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/setup-python from 4 to 5 (#250) @dependabot

  • [MNT] [Dependabot](deps): Bump conda-incubator/setup-miniconda from 2 to 3 (#249) @dependabot

  • [MNT] [Dependabot](deps): Bump github/codeql-action from 2 to 3 (#252) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/download-artifact from 3 to 4 (#253) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/upload-artifact from 3 to 4 (#254) @dependabot

[0.6.1] - 2023-10-26#

Highlights#

  • set_params now recognizes unique suffixes as aliases for full parameter strings, e.g., foo instead of estimator__component__foo (#229) @fkiraly

  • the deep_equals utility now admits custom plugins with dependency isolation, e.g., for data types such as dask or polars (#238) @fkiraly

  • dependabot is now enabled for the skbase repository (#228) @fkiraly

Core interface changes#

  • 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.

Enhancements#

  • [ENH] set_params to recognize unique suffixes as aliases for full parameter string (#229) @fkiraly

  • [ENH] refactor string coercions and return logic in deep_equals utility (#237) @fkiraly

  • [ENH] improved deep_equals utility - plugins for custom types (#238) @fkiraly

  • [ENH] informative failure message in test_get_package_metadata_returns_expected_results (#239) @fkiraly

Maintenance#

  • [MNT] activate dependabot for version updates and maintenance (#228) @fkiraly

  • [MNT] [Dependabot](deps): Bump actions/upload-artifact from 2 to 3 (#230) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/dependency-review-action from 1 to 3 (#231) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/checkout from 3 to 4 (#232) @dependabot

  • [MNT] [Dependabot](deps): Bump actions/download-artifact from 2 to 3 (#233) @dependabot

  • [MNT] [Dependabot](deps): Bump styfle/cancel-workflow-action from 0.9.1 to 0.12.0 (#234) @dependabot

Fixes#

  • [BUG] correct parameter name in TestAllObjects all_objects call (#236) @fkiraly

[0.6.0] - 2023-10-05#

Maintenance release at python 3.12 release.

Adds support for python 3.12.

Dependency changes#

  • skbase now supports python 3.12.

Deprecations and removals#

  • the deep_equals utility has moved to skbase.utils.deep_equals. The old location in skbase.testing.utils.deep_equals has now been removed.

Contents#

  • [MNT] address deprecation of load_module in python 3.12 (#190) @fkiraly

  • [MNT] simplify test CI and remove conda (#224) @fkiraly

  • [MNT] update dependency versions in doc dependency set and set upper bounds (#226, #227) @fkiraly

  • [MNT] update python version to 3.12 (#221) @fkiraly

  • [MNT] 0.6.0 deprecation actions (#225) @fkiraly

[0.5.2] - 2023-10-03#

Release with minor improvements.

[0.5.1] - 2023-08-14#

Release with minor improvements and bugfixes.

Enhancements#

  • [ENH] remove sklearn dependency in test_get_params (#212) @fkiraly

Documentation#

Maintenance#

  • [MNT] separate windows CI element from unix based CI (#209) @fkiraly

  • [MNT] convert black extend-exclude parameter to single string (#207) @fkiraly

  • [MNT] update __init__ version (#210) @fkiraly

  • [MNT] fix linting issue from newest pre-commit versions (#211) @fkiraly

Fixes#

  • [BUG] fix for get_fitted_params in _HeterogenousMetaEstimator (#191) @fkiraly

[0.5.0] - 2023-06-21#

Maintenance release at python 3.7 end-of-life.

Removes support for python 3.7.

[0.4.6] - 2023-06-16#

Bugfix release:

[0.4.5] - 2023-05-14#

Dummy release for aarch64 support on conda (added in recipe there).

[0.4.4] - 2023-05-13#

Regular maintenance release.

Deprecations and removals#

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.

Maintenance#

  • [MNT] move deep_equals and dependency checkers from testing to utilities to remove accidental coupling to pytest (#178) @fkiraly, @yarnabrina

  • [MNT] test for isolation of developer dependencies, and basic pytest-less test for BaseObject (#179, #183) @fkiraly

Contributors#

@fkiraly, @yarnabrina

[0.4.3] - 2023-05-04#

Hotfix for accidental import of pytest through BaseObject.clone, including test for pytest dependency isolation.

Contents#

  • [BUG] turn off check in BaseObject.clone (#176) @fkiraly

  • [MNT] test for isolation of developer dependencies, and basic pytest-less test for BaseObject (#179) @fkiraly

  • [DOC] fix some broken doc links, linting (#175) @fkiraly

[0.4.2] - 2023-05-02#

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.

Dependency changes#

  • scikit-learn, typing-extensions, and pytest are no longer core dependencies. pytest remains a dependency in dev and test dependency sets.

  • scikit-learn is now part of the dev and test dependency sets, as it is required to test compatibility with scikit-learn

  • a dependency conflict has been resolved in the docs dependency set for the docs build, by pinning versions

Maintenance#

[0.4.1] - 2023-04-26#

Small bugfix patch for pydata 2023 Seattle notebooks.

Fixes#

  • [BUG] fix html display for meta-objects (#160) @fkiraly

  • [BUG] Fix all_objects lookup, broken tag filter (#161) @fkiraly

[0.4.0] - 2023-04-25#

Highlights#

  • classes for heterogeneous collections aka meta-objects: BaseMetaObject and BaseMetaEstimator, based on sklearn and sktime (#107, #155)

  • skbase native get_params and get_fitted_params interface, both with deep argument (#115, #117) @fkiraly

  • tag and config manager for objects, with get_tag, set_tag, get_config, set_config, etc (#138, #140, #155) @fkiraly

  • sklearn style pretty printing, configurable via tags (#156) @fkiraly, @RNKuhns

Enhancements#

Fixes#

  • [BUG] fix faulty BaseObject.__eq__ and deep_equals if an attribute or nested structure contains np.nan (#111) @fkiraly

  • [BUG] Fix type error bug (#130) @RNKuhns

  • [BUG] fix unreported return type bug of BaseFixtureGenerator.is_excluded (#142) @fkiraly

Documentation#

Maintenance#

  • [MNT] Create Issue and PR Templates (#157) @RNKuhns

  • [MNT] Update pydocstyle in pre-commit config (#108) @RNKuhns

  • [MNT] Handle updates to pre-commit linters (#120) @RNKuhns

  • [MNT] numpy as a soft dependency (#121) @RNKuhns

  • [MNT] Add stacklevel to warnings.warn calls (#137) @RNKuhns

  • [MNT] Add vs code settings and auto generated api area to .gitignore (#143) @RNKuhns

  • [MNT] Update slack to point to skbase workspace (#148) @RNKuhns

Contributors#

@achieveordie, @fkiraly, @rnkuhns

[0.3.0] - 2023-01-08#

Highlights#

  • Reorganized package functionality into submodules focused on specific functionality (#78):

    • skbase.base for BaseObject, BaseEstimator and other base classes

    • skbase.testing for functionality to test BaseObject-s

    • skbase.lookup for retrieving metadata and all BaseObject-s from a package

    • skbase.validate for comparing and validating BaseObject-s

  • Expanded test coverage of skbase.base and skbase.lookup modules and skbase exceptions (#62, #80, #91) @rnkuhns

  • Add equality dunder to BaseObject to allow BaseObject-s to be compared based on parameter equality (#86) @fkiraly

  • Add sktime-like interface for retrieving fitted parameters to BaseEstimator (#87) @fkiraly

Enhancements#

  • Reorganized package functionality into submodules focused on specific functionality (#78) @rnkuhns

  • Add equality dunder to BaseObject to allow BaseObject-s to be compared based on parameter equality (#86) @fkiraly

  • Add sktime-like interface for retrieving fitted parameters to BaseEstimator (#87) @fkiraly

  • Rename QuickTester.run_tests parameter return_exceptions to raise_exceptions (#95) @fkiraly

Fixes#

  • Fix all_objects retrieval functionality (#69) @fkiraly

  • Fix issues identified by CodeQL scanning (#79) @rnkuhns

Documentation#

  • Switch from use of sphinx-panels to sphinx-design (#93) @rnkuhns

  • Updated installation instructions, added release instructions and made other minor documentation improvements (#100) @rnkuhns

Maintenance#

  • Updated Github Action versions (#60) @rnkuhns

  • Migrate from use of lgtm.com to CodeQL scanning built-in to Github (#68)

  • Update config files and remove use of setup.py (#75) @rnkuhns

  • Add support for Python 3.11 (#77) @rnkuhns

  • Update sklearn``s version upper bounds to ``<1.3 (#89) @fkiraly

Contributors#

@fkiraly, @rnkuhns

[0.2.0] - 2022-09-09#

This release is a maintenance release to change the name of the package from baseobject to skbase.

Highlights#

[0.1.0] - 2022-09-08#

Highlights#

  • Refactored code for BaseObject and related interfaces from sktime into its own package @fkiraly, @rnkuhns

  • Setup initial continuous integration routines @rnkuhns

  • Setup initial documentation @rnkuhns

  • Setup initial deployment workflow @fkiraly