From f8c31e7481c634574fe10ed852672f20b42daf57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20Kir=C3=A1ly?= Date: Mon, 16 Oct 2023 15:03:49 +0200 Subject: [PATCH 1/7] [MNT] bound `pycatch22<0.4.4` due to breaking change in patch version (#5434) `pycatch22` has released 0.4.4 today (patch version), and it seems to introduce a full package breakage on windows systems. This PR bounds `pycatch22<0.4.4`. Temp workaround for https://github.com/sktime/sktime/issues/5435 --- pyproject.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 1a3f7e04fce..592539c5983 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -78,7 +78,7 @@ all_extras = [ 'numba<0.59,>=0.53; python_version < "3.12"', 'pmdarima!=1.8.1,<3.0.0,>=1.8; python_version < "3.12"', 'prophet>=1.1; python_version < "3.12"', - "pycatch22", + "pycatch22<0.4.4", "pykalman-bardo<0.10,>=0.9.7", 'pyod>=0.8; python_version < "3.11"', "scikit-optimize", @@ -114,7 +114,7 @@ all_extras_pandas2 = [ 'numba<0.59,>=0.53; python_version < "3.12"', 'pmdarima!=1.8.1,<3.0.0,>=1.8; python_version < "3.12"', 'prophet>=1.1; python_version < "3.12"', - "pycatch22", + "pycatch22<0.4.4", "pykalman-bardo<0.10,>=0.9.7", 'pyod>=0.8; python_version < "3.11"', "scikit_posthocs>=0.6.5", @@ -222,7 +222,7 @@ transformations = [ "holidays<0.35,>=0.29", "mne<1.6,>=1.5", 'numba<0.59,>=0.53; python_version < "3.12"', - "pycatch22<0.5,>=0.4", + "pycatch22<0.4.4,>=0.4", "pykalman-bardo<0.10,>=0.9.7", "statsmodels<0.15,>=0.12.1", 'stumpy<1.13,>=1.5.1; python_version < "3.12"', From f8d34109f5a71f0ac98cdfb07301b185621d7562 Mon Sep 17 00:00:00 2001 From: Anirban Ray <39331844+yarnabrina@users.noreply.github.com> Date: Fri, 20 Oct 2023 12:31:28 +0530 Subject: [PATCH 2/7] [BUG] [MNT] removed two recently added hooks (#5453) Addresses #5450 --- .pre-commit-config.yaml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9fc13897ee9..3bda1e00104 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -76,13 +76,3 @@ repos: hooks: - id: shellcheck name: shellcheck - - - repo: https://github.com/tox-dev/pyproject-fmt - rev: 1.2.0 - hooks: - - id: pyproject-fmt - - - repo: https://github.com/abravalheri/validate-pyproject - rev: v0.15 - hooks: - - id: validate-pyproject From 5e8d230dae38ebb75e2f9c317d078d070d9d6689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franz=20Kir=C3=A1ly?= Date: Fri, 20 Oct 2023 15:49:15 +0200 Subject: [PATCH 3/7] [MNT] xfail remote data loaders to silence sporadic failures (#5461) This PR adds an xfail to the UCR loader and the Monash loader - both retrieving benchmark data from the internet - in order to silence the sporadic failures described in bug reports #5460 and #5462. Only a temporary measure, possibly also rectified by the CI refactor with a separate data testing element. --- sktime/datasets/tests/test_single_problem_loaders.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sktime/datasets/tests/test_single_problem_loaders.py b/sktime/datasets/tests/test_single_problem_loaders.py index 569023f9af9..1610a06aa65 100644 --- a/sktime/datasets/tests/test_single_problem_loaders.py +++ b/sktime/datasets/tests/test_single_problem_loaders.py @@ -81,6 +81,7 @@ def test_load_numpy2d_multivariate_raises(loader): X, y = loader(return_type="numpy2d") +@pytest.mark.xfail(reason="known sporadic failure of unknown cause, see #5460") def test_load_UEA(): """Test loading of a random subset of the UEA data, to check API.""" from sktime.datasets.tsc_dataset_names import multivariate, univariate @@ -114,6 +115,7 @@ def test_load_forecastingdata(): assert metadata["contain_equal_length"] is False +@pytest.mark.xfail(reason="known sporadic failure of unknown cause, see #5462") @pytest.mark.parametrize("name", TSF_SUBSAMPLE) def test_check_link_downloadable(name): """Test dataset URL from forecasting.org is downloadable and exits.""" From 5d729c440e9943774d9722b2ec7568f9fc2cc96a Mon Sep 17 00:00:00 2001 From: Anirban Ray <39331844+yarnabrina@users.noreply.github.com> Date: Sat, 21 Oct 2023 18:25:01 +0530 Subject: [PATCH 4/7] [MNT] new CI workflow to test extras (#5375) new CI workflow that tris to install `sktime` each extra to see if the specified packages (with specified versions or versions bounds) are compatible with one another. when does it run: 1. runs first of every month at 00:00 2. runs for a PR into `main`that modifies `pyproject.toml` 3. runs when triggered manually what does it do: 1. runs for all supported operating system 2. runs for all supported python version 3. runs for all supported extras 4. creates a new python environment of specific python version on a specific operating system with a specific python version and installs `sktime` with a specific extra what does it not do: 1. installation multiple extras simultaneously - too many combinations 2. automated resolution if installation fails with conflicts - probably impossible other changes 1. formatted of `pyproject.toml` with `pyproject-fmt` as needed to test workflow 2. skipped `mrsqm` from `classification` extra as it was failing to be built in most combinations 3. added python version bound for relevant packages --- .github/actions/validate-extra/action.yml | 21 +++++++++++ .github/workflows/validate_extras.yml | 45 +++++++++++++++++++++++ pyproject.toml | 23 ++++++------ 3 files changed, 77 insertions(+), 12 deletions(-) create mode 100644 .github/actions/validate-extra/action.yml create mode 100644 .github/workflows/validate_extras.yml diff --git a/.github/actions/validate-extra/action.yml b/.github/actions/validate-extra/action.yml new file mode 100644 index 00000000000..4358b31b154 --- /dev/null +++ b/.github/actions/validate-extra/action.yml @@ -0,0 +1,21 @@ +name: test specific sktime extra +description: install individual extra of sktime +inputs: + sktime-extra-identifier: + description: name of sktime extra + required: true + python-version-identifier: + description: python version to run tests + required: true +runs: + using: composite + steps: + - name: repository checkout step + uses: actions/checkout@v4 + - name: python environment step + uses: actions/setup-python@v4 + with: + python-version: ${{ inputs.python-version-identifier }} + - name: extra installation step + run: python3 -m pip install .[${{ inputs.sktime-extra-identifier }}] + shell: bash diff --git a/.github/workflows/validate_extras.yml b/.github/workflows/validate_extras.yml new file mode 100644 index 00000000000..1f0f8225904 --- /dev/null +++ b/.github/workflows/validate_extras.yml @@ -0,0 +1,45 @@ +name: extras validation +on: + pull_request: + branches: + - main + paths: + - pyproject.toml + schedule: + - cron: 0 0 1 * * + workflow_dispatch: +jobs: + test_installations: + name: extras installation + strategy: + fail-fast: false + matrix: + python-version: + - "3.8" + - "3.9" + - "3.10" + - "3.11" + - "3.12" + operating-system: + - macos-latest + - ubuntu-latest + - windows-latest + sktime-extra: + - alignment + - annotation + - classification + - clustering + - forecasting + - networks + - param_est + - regression + - transformations + runs-on: ${{ matrix.operating-system }} + steps: + - name: checkout pull request branch + uses: actions/checkout@v4 + - name: install ${{ matrix.sktime-extra }} extra on python ${{ matrix.python-version }} + uses: ./.github/actions/validate-extra + with: + sktime-extra-identifier: ${{ matrix.sktime-extra }} + python-version-identifier: ${{ matrix.python-version }} diff --git a/pyproject.toml b/pyproject.toml index 592539c5983..4bbb300fca1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -133,22 +133,21 @@ all_extras_pandas2 = [ annotation = [ "hmmlearn<0.4,>=0.2.7", 'numba<0.59,>=0.53; python_version < "3.12"', - "pyod<1.2,>=0.8", + 'pyod<1.2,>=0.8; python_version < "3.12"', ] binder = [ "jupyter", "pandas<2.0.0", ] classification = [ - "esig<0.10,>=0.9.7", - "mrsqm<0.1,>=0.0.3", + 'esig<0.10,>=0.9.7; python_version < "3.11"', 'numba<0.59,>=0.53; python_version < "3.12"', - "tensorflow<=2.14,>=2", + 'tensorflow<=2.14,>=2; python_version < "3.12"', 'tsfresh<0.21,>=0.17; python_version < "3.12"', ] clustering = [ 'numba<0.59,>=0.53; python_version < "3.12"', - "tslearn<0.6.3,>=0.5.2", + 'tslearn<0.6.3,>=0.5.2; python_version < "3.12"', ] cython_extras = [ "mrseql", @@ -184,11 +183,11 @@ docs = [ "tabulate", ] forecasting = [ - "arch<6.3.0,>=5.6", + "arch<6.3,>=5.6", 'pmdarima!=1.8.1,<2.1,>=1.8; python_version < "3.12"', - 'prophet<1.2,>=1.1; python_version < "3.12"', - "skpro<2.2.0,>=2", - 'statsforecast<1.7.0,>=0.5.2; python_version < "3.12"', + "prophet<1.2,>=1.1", + "skpro<2.2,>=2", + 'statsforecast<1.7,>=0.5.2; python_version < "3.12"', "statsmodels<0.15,>=0.12.1", 'tbats<1.2,>=1.1; python_version < "3.12"', ] @@ -203,7 +202,7 @@ mlflow_tests = [ ] networks = [ "keras-self-attention<0.52,>=0.51", - "tensorflow<=2.14,>=2", + 'tensorflow<=2.14,>=2; python_version < "3.12"', ] pandas1 = [ "pandas<2.0.0", @@ -214,10 +213,10 @@ param_est = [ ] regression = [ 'numba<0.59,>=0.53; python_version < "3.12"', - "tensorflow<=2.14,>=2", + 'tensorflow<=2.14,>=2; python_version < "3.12"', ] transformations = [ - "esig<0.10,>=0.9.7", + 'esig<0.10,>=0.9.7; python_version < "3.11"', "filterpy<1.5,>=1.4.5", "holidays<0.35,>=0.29", "mne<1.6,>=1.5", From 488cffe0413dddc4e6b546e8f184fa6c8fb30299 Mon Sep 17 00:00:00 2001 From: Anirban Ray <39331844+yarnabrina@users.noreply.github.com> Date: Sun, 22 Oct 2023 01:04:10 +0530 Subject: [PATCH 5/7] [MNT] Split CI jobs per components with specific soft-dependencies (#5304) Part 2, 3 and 4 of #5101 Depends on #5375 1. new extra with just test dependencies 2. action to run tests in `sktime/base` with only core and test dependencies 3. action to run tests in `sktime/` with only core, test and component specific dependencies 4. workflow to run base framework tests only when `sktime/base` gets modified 5. workflow to run component specific tests only when `sktime/` gets modified 6. workflow to run all (base framework and all components) tests every SUnday 00:00 and manually if desired --- .github/actions/test-base/action.yml | 37 +++++++++++++ .github/actions/test-component/action.yml | 40 ++++++++++++++ .github/workflows/test_all.yml | 63 ++++++++++++++++++++++ .github/workflows/test_base.yml | 47 +++++++++++++++++ .github/workflows/test_components.yml | 64 +++++++++++++++++++++++ pyproject.toml | 7 +++ 6 files changed, 258 insertions(+) create mode 100644 .github/actions/test-base/action.yml create mode 100644 .github/actions/test-component/action.yml create mode 100644 .github/workflows/test_all.yml create mode 100644 .github/workflows/test_base.yml create mode 100644 .github/workflows/test_components.yml diff --git a/.github/actions/test-base/action.yml b/.github/actions/test-base/action.yml new file mode 100644 index 00000000000..c87d95235b9 --- /dev/null +++ b/.github/actions/test-base/action.yml @@ -0,0 +1,37 @@ +name: test base sktime +description: run unit tests on base interface of sktime framework +inputs: + python-version-identifier: + description: python version to run tests + required: true + sub-sample-estimators: + description: test only subset of estimators + required: true + test-affected-estimators: + description: test only modified estimators + required: true +runs: + using: composite + steps: + - name: repository checkout step + uses: actions/checkout@v4 + - name: update tracking reference step + run: git remote set-branches origin main + shell: bash + - name: shallow clone update step + run: git fetch --depth 1 + shell: bash + - name: python environment step + uses: actions/setup-python@v4 + with: + python-version: ${{ inputs.python-version-identifier }} + - name: dependencies installation step + run: python3 -m pip install .[tests] + shell: bash + - name: unit test step + run: python3 -m pytest sktime/base --matrixdesign ${{ inputs.sub-sample-estimators }} --only_changed_modules ${{ inputs.test-affected-estimators }} + shell: bash + - name: test coverage step + uses: codecov/codecov-action@v3 + with: + flags: ${{ inputs.python-version-identifier }},base diff --git a/.github/actions/test-component/action.yml b/.github/actions/test-component/action.yml new file mode 100644 index 00000000000..4b154aa1f90 --- /dev/null +++ b/.github/actions/test-component/action.yml @@ -0,0 +1,40 @@ +name: test specific sktime component +description: run unit tests on individual component of sktime framework +inputs: + sktime-component-identifier: + description: name of sktime component + required: true + python-version-identifier: + description: python version to run tests + required: true + sub-sample-estimators: + description: test only subset of estimators + required: true + test-affected-estimators: + description: test only modified estimators + required: true +runs: + using: composite + steps: + - name: repository checkout step + uses: actions/checkout@v4 + - name: update tracking reference step + run: git remote set-branches origin main + shell: bash + - name: shallow clone update step + run: git fetch --depth 1 + shell: bash + - name: python environment step + uses: actions/setup-python@v4 + with: + python-version: ${{ inputs.python-version-identifier }} + - name: dependencies installation step + run: python3 -m pip install .[${{ inputs.sktime-component-identifier }},tests] + shell: bash + - name: unit test step + run: python3 -m pytest sktime/${{ inputs.sktime-component-identifier }} --matrixdesign ${{ inputs.sub-sample-estimators }} --only_changed_modules ${{ inputs.test-affected-estimators }} + shell: bash + - name: test coverage step + uses: codecov/codecov-action@v3 + with: + flags: ${{ inputs.python-version-identifier }},${{ inputs.sktime-component-identifier }} diff --git a/.github/workflows/test_all.yml b/.github/workflows/test_all.yml new file mode 100644 index 00000000000..d65d12f5487 --- /dev/null +++ b/.github/workflows/test_all.yml @@ -0,0 +1,63 @@ +name: test all workflow +on: + schedule: + - cron: 0 0 * * 0 + workflow_dispatch: +jobs: + test_base: + name: test base framework + strategy: + fail-fast: false + matrix: + python-version: + - "3.8" + - "3.9" + - "3.10" + - "3.11" + - "3.12" + operating-system: + - macos-latest + - ubuntu-latest + - windows-latest + runs-on: ${{ matrix.operating-system }} + steps: + - name: run tests on python ${{ matrix.python-version }} + uses: ./.github/actions/test-base + with: + python-version-identifier: ${{ matrix.python-version }} + sub-sample-estimators: "False" + test-affected-estimators: "False" + test_components: + name: test individual components + strategy: + fail-fast: false + matrix: + python-version: + - "3.8" + - "3.9" + - "3.10" + - "3.11" + - "3.12" + operating-system: + - macos-latest + - ubuntu-latest + - windows-latest + sktime-component: + - alignment + - annotation + - classification + - clustering + - forecasting + - networks + - param_est + - regression + - transformations + runs-on: ${{ matrix.operating-system }} + steps: + - name: run tests for component ${{ matrix.sktime-component }} on python ${{ matrix.python-version }} + uses: ./.github/actions/test-component + with: + sktime-component-identifier: ${{ matrix.sktime-component }} + python-version-identifier: ${{ matrix.python-version }} + sub-sample-estimators: "False" + test-affected-estimators: "False" diff --git a/.github/workflows/test_base.yml b/.github/workflows/test_base.yml new file mode 100644 index 00000000000..689d1b9be35 --- /dev/null +++ b/.github/workflows/test_base.yml @@ -0,0 +1,47 @@ +name: test base workflow +on: + pull_request: + branches: + - main +jobs: + detect: + name: check for changes in base framework + runs-on: ubuntu-latest + permissions: + pull-requests: read + outputs: + base: ${{ steps.filter.outputs.base }} + steps: + - uses: dorny/paths-filter@v2 + id: filter + with: + filters: | + base: + - sktime/base/** + test: + needs: detect + name: test base framework + if: ${{ needs.detect.outputs.base == 'true' }} + strategy: + fail-fast: false + matrix: + python-version: + - "3.8" + - "3.9" + - "3.10" + - "3.11" + - "3.12" + operating-system: + - macos-latest + - ubuntu-latest + - windows-latest + runs-on: ${{ matrix.operating-system }} + steps: + - name: checkout pull request branch + uses: actions/checkout@v4 + - name: run tests on python ${{ matrix.python-version }} + uses: ./.github/actions/test-base + with: + python-version-identifier: ${{ matrix.python-version }} + sub-sample-estimators: "True" + test-affected-estimators: "True" diff --git a/.github/workflows/test_components.yml b/.github/workflows/test_components.yml new file mode 100644 index 00000000000..f90fc5f4e97 --- /dev/null +++ b/.github/workflows/test_components.yml @@ -0,0 +1,64 @@ +name: test individual components workflow +on: + pull_request: + branches: + - main +jobs: + detect: + name: check for changes in individual components + runs-on: ubuntu-latest + permissions: + pull-requests: read + outputs: + components: ${{ steps.filter.outputs.changes }} + steps: + - uses: dorny/paths-filter@v2 + id: filter + with: + filters: | + alignment: + - sktime/alignment/** + annotation: + - sktime/annotation/** + classification: + - sktime/classification/** + clustering: + - sktime/clustering/** + forecasting: + - sktime/forecasting/** + networks: + - sktime/networks/** + param_est: + - sktime/param_est/** + regression: + - sktime/regression/** + transformations: + - sktime/transformations/** + test: + needs: detect + name: test specific component + strategy: + fail-fast: false + matrix: + python-version: + - "3.8" + - "3.9" + - "3.10" + - "3.11" + - "3.12" + operating-system: + - macos-latest + - ubuntu-latest + - windows-latest + sktime-component: ${{ fromJSON(needs.detect.outputs.components) }} + runs-on: ${{ matrix.operating-system }} + steps: + - name: checkout pull request branch + uses: actions/checkout@v4 + - name: run tests for component ${{ matrix.sktime-component }} on python ${{ matrix.python-version }} + uses: ./.github/actions/test-component + with: + sktime-component-identifier: ${{ matrix.sktime-component }} + python-version-identifier: ${{ matrix.python-version }} + sub-sample-estimators: "True" + test-affected-estimators: "True" diff --git a/pyproject.toml b/pyproject.toml index 4bbb300fca1..031c6b69469 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -215,6 +215,13 @@ regression = [ 'numba<0.59,>=0.53; python_version < "3.12"', 'tensorflow<=2.14,>=2; python_version < "3.12"', ] +tests = [ + "pytest<7.5,>=7.4", + "pytest-cov<4.2,>=4.1", + "pytest-randomly<3.16,>=3.15", + "pytest-timeout<2.2,>=2.1", + "pytest-xdist<3.4,>=3.3", +] transformations = [ 'esig<0.10,>=0.9.7; python_version < "3.11"', "filterpy<1.5,>=1.4.5", From 50334e8c282bd0b7704136acfd1a629f7d481cc7 Mon Sep 17 00:00:00 2001 From: Alex-JG3 <49785867+Alex-JG3@users.noreply.github.com> Date: Sat, 21 Oct 2023 20:40:32 +0100 Subject: [PATCH 6/7] [BUG] CLASP logic: remove indexes from exclusion zone that are out of range (#5459) Fixes #5451. Sometimes, the `exclusion_zone` array can contain indexes that are out of the range of `y_pred`. This causes a segmentation fault from numba when trying to access the elements of `y_pred` using `exclusion_zone`. To fix this, any indexes that are outside the range of `y_pred` are removed from `exclusion_zone`. --- sktime/transformations/series/_clasp_numba.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sktime/transformations/series/_clasp_numba.py b/sktime/transformations/series/_clasp_numba.py index ccaa69f19c3..5ca335ccc99 100644 --- a/sktime/transformations/series/_clasp_numba.py +++ b/sktime/transformations/series/_clasp_numba.py @@ -161,7 +161,13 @@ def _calc_knn_labels(knn_mask, split_idx, m): # apply exclusion zone at split point exclusion_zone = np.arange(split_idx - m, split_idx) - y_pred[exclusion_zone] = np.ones(m, dtype=np.int64) + + # Remove indexes outside the range of y_pred + exclusion_zone = exclusion_zone[ + (exclusion_zone >= -len(y_pred)) & (exclusion_zone < len(y_pred)) + ] + + y_pred[exclusion_zone] = np.ones(len(exclusion_zone), dtype=np.int64) return y_true, y_pred From f48b1f53f58004bb792abf78ce6818034835d3c2 Mon Sep 17 00:00:00 2001 From: Tomas Pereira de Vasconcelos Date: Sat, 21 Oct 2023 22:35:13 +0200 Subject: [PATCH 7/7] [BUG] Fix pandas `FutureWarning` for silent upcasting (#5395) Did not create an issue as this was a very small and trivial fix. This PR fixes the silent upcasting of the `'window'` column from `int64` to `object`. This currently (since pandas v2.1.0) raises a deprecation warning and will raise an error in the future. See: https://pandas.pydata.org/docs/whatsnew/v2.1.0.html#deprecated-silent-upcasting-in-setitem-like-series-operations This is a big issue as it can cause some common IDE's like PyCharm or VSCode to crash by printing too much output to the terminal at a very high rate. Even in instances where the IDE does not crash I have experienced significant slow downs because of this. --- .all-contributorsrc | 12 ++- CONTRIBUTORS.md | 105 +++++++++++---------- sktime/transformations/series/summarize.py | 1 + 3 files changed, 66 insertions(+), 52 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 2d051479219..bc6e83c6f7b 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -2423,7 +2423,7 @@ "contributions": [ "test" ] - } + }, { "login": "xansh", "name": "Ansh Kumar", @@ -2433,5 +2433,15 @@ "doc" ] }, + { + "login": "tpvasconcelos", + "name": "Tomas P. de Vasconcelos", + "avatar_url": "https://avatars.githubusercontent.com/u/17701527?v=4", + "profile": "https://github.com/tpvasconcelos", + "contributions": [ + "bug", + "code" + ] + } ] } diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 333f5e18ca4..369a573ba47 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -2,7 +2,7 @@ Contributors ============ -[![All Contributors](https://img.shields.io/badge/all_contributors-235-orange.svg)](#contributors) +[![All Contributors](https://img.shields.io/badge/all_contributors-238-orange.svg)](#contributors) This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! @@ -19,13 +19,14 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Aaron Bostrom
Aaron Bostrom

πŸ’» πŸ“– ⚠️ πŸ§‘β€πŸ« Aaron Margolese-Malin
Aaron Margolese-Malin

πŸ› Aaron Smith
Aaron Smith

πŸ’» + Adam Kells
Adam Kells

⚠️ Afzal Ansari
Afzal Ansari

πŸ’» πŸ“– Ahmed Bilal
Ahmed Bilal

πŸ“– AidenRushbrooke
AidenRushbrooke

πŸ’» ⚠️ Akshat Rampuria
Akshat Rampuria

πŸ“– - Alan Huynh
Alan Huynh

πŸ’» + Alan Huynh
Alan Huynh

πŸ’» Aleksandr Grekov
Aleksandr Grekov

πŸ“– Alex Hawkins-Hooker
Alex Hawkins-Hooker

πŸ’» Alexandra Amidon
Alexandra Amidon

πŸ“ πŸ“– πŸ€” @@ -34,20 +35,21 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Ali Teeney
Ali Teeney

πŸ’» Ali Yazdizadeh
Ali Yazdizadeh

πŸ“– Alwin
Alwin

πŸ“– πŸ’» 🚧 - An Hoang
An Hoang

πŸ› πŸ’» + An Hoang
An Hoang

πŸ› πŸ’» Andreas Kanz
Andreas Kanz

βœ… Angus Dempster
Angus Dempster

πŸ’» ⚠️ βœ… Anirban Ray
Anirban Ray

πŸ› πŸ’» πŸ“– πŸ€” 🚧 πŸ§‘β€πŸ« πŸ’¬ πŸ‘€ ⚠️ + Ansh Kumar
Ansh Kumar

πŸ“– Antoni Baum
Antoni Baum

πŸ’» Aparna Sakshi
Aparna Sakshi

πŸ’» Arelo Tanoh
Arelo Tanoh

πŸ“– Arepalli Yashwanth Reddy
Arepalli Yashwanth Reddy

πŸ’» πŸ› πŸ“– - Arik Ermshaus
Arik Ermshaus

πŸ’» - Arnau
Arnau

πŸ’» + Arik Ermshaus
Arik Ermshaus

πŸ’» + Arnau
Arnau

πŸ’» Arnav
Arnav

πŸ’» Ayushmaan Seth
Ayushmaan Seth

πŸ’» πŸ‘€ ⚠️ πŸ“– πŸ“‹ βœ… BANDASAITEJAREDDY
BANDASAITEJAREDDY

πŸ’» πŸ“– @@ -55,10 +57,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Benedikt Heidrich
Benedikt Heidrich

πŸ› πŸ’» 🎨 πŸ“– πŸ’‘ πŸ€” πŸ§‘β€πŸ« πŸ’¬ πŸ‘€ βœ… Benjamin Bluhm
Benjamin Bluhm

πŸ’» πŸ“– πŸ’‘ Bhaskar Dhariyal
Bhaskar Dhariyal

πŸ’» ⚠️ - Binay Kumar
Binay Kumar

πŸ’» πŸ“– ⚠️ - Bohan Zhang
Bohan Zhang

πŸ’» + Binay Kumar
Binay Kumar

πŸ’» πŸ“– ⚠️ + Bohan Zhang
Bohan Zhang

πŸ’» Bouke Postma
Bouke Postma

πŸ’» πŸ› πŸ€” Brian Murphy
Brian Murphy

πŸ“– Carlos Borrajo
Carlos Borrajo

πŸ’» πŸ“– @@ -66,10 +68,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Chang Wei Tan
Chang Wei Tan

πŸ’» Cheuk Ting Ho
Cheuk Ting Ho

πŸ’» Christian Kastner
Christian Kastner

πŸ’» πŸ› - Christoph HΓΆsler
Christoph HΓΆsler

πŸ’» - Christopher Dahlin
Christopher Dahlin

πŸ’» + Christoph HΓΆsler
Christoph HΓΆsler

πŸ’» + Christopher Dahlin
Christopher Dahlin

πŸ’» Christopher Lo
Christopher Lo

πŸ’» πŸ€” Chung-Fan Tsai
Chung-Fan Tsai

⚠️ Ciaran Gilbert
Ciaran Gilbert

πŸ› πŸ’» πŸ“– ⚠️ πŸ€” @@ -77,10 +79,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Colin Fallon
Colin Fallon

πŸ“– Corvin Paul
Corvin Paul

πŸ“– Daniel Burkhardt Cerigo
Daniel Burkhardt Cerigo

πŸ’» - Daniel MartΓ­n MartΓ­nez
Daniel MartΓ­n MartΓ­nez

πŸ“– πŸ› - Darya Petrashka
Darya Petrashka

πŸ“– + Daniel MartΓ­n MartΓ­nez
Daniel MartΓ­n MartΓ­nez

πŸ“– πŸ› + Darya Petrashka
Darya Petrashka

πŸ“– Dave Hirschfeld
Dave Hirschfeld

πŸš‡ David Buchaca Prats
David Buchaca Prats

πŸ’» David Gilbertson
David Gilbertson

πŸ’» πŸ› @@ -88,10 +90,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Dmitriy Valetov
Dmitriy Valetov

πŸ’» βœ… Doug Ollerenshaw
Doug Ollerenshaw

πŸ“– Drishti Bhasin
Drishti Bhasin

πŸ’» - Dylan Sherry
Dylan Sherry

πŸš‡ - Emilia Rose
Emilia Rose

πŸ’» ⚠️ + Dylan Sherry
Dylan Sherry

πŸš‡ + Emilia Rose
Emilia Rose

πŸ’» ⚠️ Er Jie Yong
Er Jie Yong

πŸ› πŸ’» Evan Miller
Evan Miller

βœ… Eyal Shafran
Eyal Shafran

πŸ’» @@ -99,10 +101,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Federico Garza
Federico Garza

πŸ’» πŸ’‘ Felipe Angelim
Felipe Angelim

πŸ’» πŸ› Felix Claessen
Felix Claessen

πŸ’» πŸ“– ⚠️ πŸ› - Florian Stinner
Florian Stinner

πŸ’» ⚠️ - Franz Kiraly
Franz Kiraly

πŸ“ πŸ› πŸ’Ό πŸ’» πŸ“– 🎨 πŸ“‹ πŸ’‘ πŸ’΅ πŸ” πŸ€” 🚧 πŸ§‘β€πŸ« πŸ“† πŸ’¬ πŸ‘€ πŸ“’ ⚠️ βœ… πŸ“Ή + Florian Stinner
Florian Stinner

πŸ’» ⚠️ + Franz Kiraly
Franz Kiraly

πŸ“ πŸ› πŸ’Ό πŸ’» πŸ“– 🎨 πŸ“‹ πŸ’‘ πŸ’΅ πŸ” πŸ€” 🚧 πŸ§‘β€πŸ« πŸ“† πŸ’¬ πŸ‘€ πŸ“’ ⚠️ βœ… πŸ“Ή Freddy A Boulton
Freddy A Boulton

πŸš‡ ⚠️ Galina Chernikova
Galina Chernikova

πŸ’» George Oastler
George Oastler

πŸ’» ⚠️ πŸ“¦ πŸ’‘ πŸ“– @@ -110,10 +112,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Grace Gao
Grace Gao

πŸ’» πŸ› Guzal Bulatova
Guzal Bulatova

πŸ› πŸ’» πŸ“‹ πŸ§‘β€πŸ« πŸ“† πŸ‘€ ⚠️ HYang1996
HYang1996

πŸ’» ⚠️ πŸ“– βœ… - Hamza Benslimane
Hamza Benslimane

πŸ› πŸ’» - Hazrul Akmal
Hazrul Akmal

πŸ’» πŸ“– πŸ› ⚠️ + Hamza Benslimane
Hamza Benslimane

πŸ› πŸ’» + Hazrul Akmal
Hazrul Akmal

πŸ’» πŸ“– πŸ› ⚠️ Helge Liebert
Helge Liebert

πŸ› πŸ’» Huayi Wei
Huayi Wei

βœ… Ifeanyi30
Ifeanyi30

πŸ’» @@ -121,10 +123,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Ilyas Moutawwakil
Ilyas Moutawwakil

πŸ’» πŸ“– Ireoluwatomiwa
Ireoluwatomiwa

πŸ“– Ishan Nangia
Ishan Nangia

πŸ€” - Jack Russon
Jack Russon

πŸ’» - James Large
James Large

πŸ’» πŸ“– ⚠️ πŸš‡ 🚧 + Jack Russon
Jack Russon

πŸ’» + James Large
James Large

πŸ’» πŸ“– ⚠️ πŸš‡ 🚧 James Morrill
James Morrill

πŸ’» Jan Pipek
Jan Pipek

πŸ’» Jasmine Liaw
Jasmine Liaw

πŸ’» @@ -132,10 +134,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Jason Pong
Jason Pong

πŸ’» ⚠️ Jaume Mateu
Jaume Mateu

πŸ’» Jonas Pirner
Jonas Pirner

πŸ“– - JonathanBechtel
JonathanBechtel

πŸ’» πŸ€” ⚠️ - Joren Hammudoglu
Joren Hammudoglu

πŸš‡ + JonathanBechtel
JonathanBechtel

πŸ’» πŸ€” ⚠️ + Joren Hammudoglu
Joren Hammudoglu

πŸš‡ Juan Orduz
Juan Orduz

βœ… πŸ“– Julia Kraus
Julia Kraus

πŸ“– πŸ’» ⚠️ Julian Cooper
Julian Cooper

πŸ’» πŸ€” @@ -143,10 +145,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Juliana
Juliana

πŸ’» Justin Shenk
Justin Shenk

πŸ“– Kai Lion
Kai Lion

πŸ’» ⚠️ πŸ“– - Kavin Anand
Kavin Anand

πŸ“– - Kejsi Take
Kejsi Take

πŸ’» + Kavin Anand
Kavin Anand

πŸ“– + Kejsi Take
Kejsi Take

πŸ’» Kevin Lam
Kevin Lam

πŸ’» πŸ’‘ ⚠️ Kirstie Whitaker
Kirstie Whitaker

πŸ€” πŸ” Kishan Manani
Kishan Manani

πŸ’» πŸ“– ⚠️ πŸ› πŸ€” @@ -154,10 +156,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Kutay Koralturk
Kutay Koralturk

πŸ’» πŸ› Leonidas Tsaprounis
Leonidas Tsaprounis

πŸ’» πŸ› πŸ§‘β€πŸ« πŸ‘€ Lielle Ravid
Lielle Ravid

πŸ’» πŸ“– - Logan Duffy
Logan Duffy

πŸ’» πŸ“– ⚠️ πŸ› πŸ€” - Lorena Pantano
Lorena Pantano

πŸ€” + Logan Duffy
Logan Duffy

πŸ’» πŸ“– ⚠️ πŸ› πŸ€” + Lorena Pantano
Lorena Pantano

πŸ€” Lorenzo Toniazzi
Lorenzo Toniazzi

πŸ’» Lovkush
Lovkush

πŸ’» ⚠️ πŸ€” πŸ§‘β€πŸ« πŸ“† Luca Miniati
Luca Miniati

πŸ’» πŸ“– @@ -165,10 +167,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Luis Zugasti
Luis Zugasti

πŸ“– Lukasz Mentel
Lukasz Mentel

πŸ’» πŸ“– πŸš‡ ⚠️ πŸ› 🚧 πŸ§‘β€πŸ« Marc Rovira
Marc Rovira

πŸ“– - Marcelo Trylesinski
Marcelo Trylesinski

πŸ“– - Marco Gorelli
Marco Gorelli

πŸš‡ + Marcelo Trylesinski
Marcelo Trylesinski

πŸ“– + Marco Gorelli
Marco Gorelli

πŸš‡ Margaret Gorlin
Margaret Gorlin

πŸ’» πŸ’‘ ⚠️ Mariam Jabara
Mariam Jabara

πŸ’» Marielle
Marielle

πŸ“– πŸ’» πŸ€” @@ -176,10 +178,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Martin Walter
Martin Walter

πŸ’» πŸ› πŸ“† πŸ” πŸ§‘β€πŸ« πŸ€” 🎨 πŸ‘€ πŸ“– πŸ“’ Martina G. Vilas
Martina G. Vilas

πŸ‘€ πŸ€” Mathias Creemers
Mathias Creemers

πŸ› πŸ’» - Matthew Middlehurst
Matthew Middlehurst

πŸ’» πŸ“– ⚠️ βœ… πŸ‘€ πŸ› - Max Patzelt
Max Patzelt

πŸ’» + Matthew Middlehurst
Matthew Middlehurst

πŸ’» πŸ“– ⚠️ βœ… πŸ‘€ πŸ› + Max Patzelt
Max Patzelt

πŸ’» Miao Cai
Miao Cai

πŸ› πŸ’» Michael Feil
Michael Feil

πŸ’» ⚠️ πŸ€” Michael Gaziani
Michael Gaziani

πŸ“– @@ -187,10 +189,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Mirae Parker
Mirae Parker

πŸ’» ⚠️ Mirko Bristle
Mirko Bristle

πŸ“– Mohammed Saif Kazamel
Mohammed Saif Kazamel

πŸ› - Morad :)
Morad :)

πŸ’» ⚠️ πŸ“– - Multivin12
Multivin12

πŸ’» ⚠️ + Morad :)
Morad :)

πŸ’» ⚠️ πŸ“– + Multivin12
Multivin12

πŸ’» ⚠️ MΓ‘rcio A. Freitas Jr
MΓ‘rcio A. Freitas Jr

πŸ“– Niek van der Laan
Niek van der Laan

πŸ’» Nikhil Gupta
Nikhil Gupta

πŸ’» πŸ› πŸ“– @@ -198,10 +200,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Nilesh Kumar
Nilesh Kumar

πŸ’» Ninnart Fuengfusin
Ninnart Fuengfusin

πŸ’» Noa Ben Ami
Noa Ben Ami

πŸ’» ⚠️ πŸ“– - Oleksandr Shchur
Oleksandr Shchur

πŸ› πŸ’» - Oleksii Kachaiev
Oleksii Kachaiev

πŸ’» ⚠️ + Oleksandr Shchur
Oleksandr Shchur

πŸ› πŸ’» + Oleksii Kachaiev
Oleksii Kachaiev

πŸ’» ⚠️ Oliver Matthews
Oliver Matthews

πŸ’» Patrick Rockenschaub
Patrick Rockenschaub

πŸ’» 🎨 πŸ€” ⚠️ Patrick SchΓ€fer
Patrick SchΓ€fer

πŸ’» βœ… @@ -209,10 +211,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Paul Yim
Paul Yim

πŸ’» πŸ’‘ ⚠️ Philipp Kortmann
Philipp Kortmann

πŸ’» πŸ“– Piyush Gade
Piyush Gade

πŸ’» πŸ‘€ - Pranav Prajapati
Pranav Prajapati

πŸ’» ⚠️ - Pulkit Verma
Pulkit Verma

πŸ“– + Pranav Prajapati
Pranav Prajapati

πŸ’» ⚠️ + Pulkit Verma
Pulkit Verma

πŸ“– Quaterion
Quaterion

πŸ› Rakshitha Godahewa
Rakshitha Godahewa

πŸ’» πŸ“– Ramon Bussing
Ramon Bussing

πŸ“– πŸ’» @@ -220,10 +222,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Rick van Hattem
Rick van Hattem

πŸš‡ Rishabh Bali
Rishabh Bali

πŸ’» Rishi Kumar Ray
Rishi Kumar Ray

πŸš‡ - Riya Elizabeth John
Riya Elizabeth John

πŸ’» ⚠️ πŸ“– - Roman Lutz
Roman Lutz

πŸ“– + Riya Elizabeth John
Riya Elizabeth John

πŸ’» ⚠️ πŸ“– + Roman Lutz
Roman Lutz

πŸ“– Ronnie Llamado
Ronnie Llamado

πŸ“– Ryan Kuhns
Ryan Kuhns

πŸ’» πŸ“– βœ… πŸ’‘ πŸ€” πŸ‘€ ⚠️ Sagar Mishra
Sagar Mishra

⚠️ @@ -231,10 +233,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Sami Alavi
Sami Alavi

πŸ’» 🚧 Saransh Chopra
Saransh Chopra

πŸ“– πŸš‡ Satya Prakash Pattnaik
Satya Prakash Pattnaik

πŸ“– - Saurabh Dasgupta
Saurabh Dasgupta

πŸ’» - Sebastiaan Koel
Sebastiaan Koel

πŸ’» πŸ“– + Saurabh Dasgupta
Saurabh Dasgupta

πŸ’» + Sebastiaan Koel
Sebastiaan Koel

πŸ’» πŸ“– Sebastian Hagn
Sebastian Hagn

πŸ“– Shivam Pathak
Shivam Pathak

πŸ“– Shivansh Subramanian
Shivansh Subramanian

πŸ“– πŸ’» @@ -242,65 +244,66 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Stanislav Khrapov
Stanislav Khrapov

πŸ’» Svea Marie Meyer
Svea Marie Meyer

πŸ“– πŸ’» TNTran92
TNTran92

πŸ’» - Taisei Yamamoto
Taisei Yamamoto

πŸ’» - Taiwo Owoseni
Taiwo Owoseni

πŸ’» + Taisei Yamamoto
Taisei Yamamoto

πŸ’» + Taiwo Owoseni
Taiwo Owoseni

πŸ’» Thach Le Nguyen
Thach Le Nguyen

πŸ’» ⚠️ TheMathcompay Widget Factory Team
TheMathcompay Widget Factory Team

πŸ“– Thomas Buckley-Houston
Thomas Buckley-Houston

πŸ› Tom Xu
Tom Xu

πŸ’» πŸ“– + Tomas P. de Vasconcelos
Tomas P. de Vasconcelos

πŸ› πŸ’» Tomasz Chodakowski
Tomasz Chodakowski

πŸ’» πŸ“– πŸ› Tony Bagnall
Tony Bagnall

πŸ’» πŸ’Ό πŸ“– 🎨 πŸ“‹ πŸ” πŸ€” πŸ“† πŸ’¬ πŸ‘€ πŸ“’ πŸ”£ + + Utsav Kumar Tiwari
Utsav Kumar Tiwari

πŸ’» πŸ“– Vasudeva Kilaru
Vasudeva Kilaru

πŸ’» πŸ“– Viktor Dremov
Viktor Dremov

πŸ’» - - ViktorKaz
ViktorKaz

πŸ’» πŸ“– 🎨 Vyomkesh Vyas
Vyomkesh Vyas

πŸ’» πŸ“– πŸ’‘ ⚠️ William Templier
William Templier

πŸ“– William Zheng
William Zheng

πŸ’» ⚠️ Yair Beer
Yair Beer

πŸ’» Yash Lamba
Yash Lamba

πŸ’» + + Yi-Xuan Xu
Yi-Xuan Xu

πŸ’» ⚠️ 🚧 πŸ“– Ziyao Wei
Ziyao Wei

πŸ’» aa25desh
aa25desh

πŸ’» πŸ› - - abandus
abandus

πŸ€” πŸ’» adoherty21
adoherty21

πŸ› bethrice44
bethrice44

πŸ› πŸ’» πŸ‘€ ⚠️ big-o
big-o

πŸ’» ⚠️ 🎨 πŸ€” πŸ‘€ βœ… πŸ§‘β€πŸ« bobbys
bobbys

πŸ’» brett koonce
brett koonce

πŸ“– + + btrtts
btrtts

πŸ“– chizzi25
chizzi25

πŸ“ chrisholder
chrisholder

πŸ’» ⚠️ πŸ“– 🎨 πŸ’‘ - - danbartl
danbartl

πŸ› πŸ’» πŸ‘€ πŸ“’ ⚠️ βœ… πŸ“Ή hamzahiqb
hamzahiqb

πŸš‡ hiqbal2
hiqbal2

πŸ“– jesellier
jesellier

πŸ’» jschemm
jschemm

πŸ’» kkoziara
kkoziara

πŸ’» πŸ› + + matteogales
matteogales

πŸ’» 🎨 πŸ€” oleskiewicz
oleskiewicz

πŸ’» πŸ“– ⚠️ pabworks
pabworks

πŸ’» ⚠️ - - patiently pending world peace
patiently pending world peace

πŸ’» raishubham1
raishubham1

πŸ“– simone-pignotti
simone-pignotti

πŸ’» πŸ› sophijka
sophijka

πŸ“– 🚧 sri1419
sri1419

πŸ’» tensorflow-as-tf
tensorflow-as-tf

πŸ’» + + vedazeren
vedazeren

πŸ’» ⚠️ vincent-nich12
vincent-nich12

πŸ’» vollmersj
vollmersj

πŸ“– - - xiaobenbenecho
xiaobenbenecho

πŸ’» diff --git a/sktime/transformations/series/summarize.py b/sktime/transformations/series/summarize.py index 5346aa590dd..0fa4e75f4ca 100644 --- a/sktime/transformations/series/summarize.py +++ b/sktime/transformations/series/summarize.py @@ -288,6 +288,7 @@ def _fit(self, X, y=None): lags = func_dict["summarizer"] == "lag" # Convert lags to default list notation with window_length 1 boost_lag = func_dict.loc[lags, "window"].apply(lambda x: [int(x), 1]) + func_dict.loc[:, "window"] = func_dict["window"].astype("object") func_dict.loc[lags, "window"] = boost_lag self.truncate_start = func_dict["window"].apply(lambda x: x[0] + x[1] - 1).max() self._func_dict = func_dict