Skip to content

Commit

Permalink
Merge branch 'baseobject-refactor' into baseobject-refactor-part2
Browse files Browse the repository at this point in the history
  • Loading branch information
fkiraly committed Apr 26, 2023
2 parents 487ead5 + 35688bf commit f885716
Show file tree
Hide file tree
Showing 384 changed files with 30,445 additions and 17,836 deletions.
41 changes: 40 additions & 1 deletion .all-contributorsrc
Original file line number Diff line number Diff line change
Expand Up @@ -1218,7 +1218,7 @@
"login": "moradabaz",
"name": "Morad :)",
"avatar_url": "https://avatars.githubusercontent.com/u/29915156?v=4",
"profile": "https://moradisten.github.io/",
"profile": "https://moradabaz.github.io/",
"contributions": [
"code",
"test",
Expand Down Expand Up @@ -2117,6 +2117,45 @@
"contributions": [
"code"
]
},
{
"login": "ShivamPathak99",
"name": "Shivam Pathak",
"avatar_url": "https://avatars.githubusercontent.com/u/98941325?s=400&v=4",
"profile": "https://github.com/ShivamPathak99",
"contributions": [
"doc"
]
},
{
"login": "SamiAlavi",
"name": "Sami Alavi",
"avatar_url": "https://avatars.githubusercontent.com/u/32700289?v=4",
"profile": "https://github.com/SamiAlavi",
"contributions": [
"code",
"maintenance"
]
},
{
"login": "yarnabrina",
"name": "Anirban Ray",
"avatar_url": "https://avatars.githubusercontent.com/u/39331844?v=4",
"profile": "https://github.com/yarnabrina/",
"contributions": [
"bug",
"code",
"test"
]
},
{
"login": "dashapetr",
"name": "Darya Petrashka",
"avatar_url": "https://avatars.githubusercontent.com/u/54349415?v=4",
"profile": "https://github.com/dashapetr",
"contributions": [
"doc"
]
}
]
}
15 changes: 15 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
.binder
.eggs
.git
.github
.ipynb_checkpoints
.pytest_cache
.vscode
build
dist
docs/_build
htmlcov
sktime.egg-info
testdir
**/*.pyc
**/__pycache__
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Add any other context about the problem here.

<!--
Please run the following code snippet and paste the output here:
from sktime import show_versions; show_versions()
-->

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
contact_links:
- name: "\U0001F4AC All other questions and general chat"
url: https://discord.com/invite/gqSab2K
url: https://discord.com/invite/54ACzaFsn7
about: Chat with the sktime community on Discord
- name: "\u2709\uFE0F Code of Conduct incident reporting"
url: https://www.sktime.net/en/latest/get_involved/code_of_conduct.html#incident-reporting-guidelines
Expand Down
30 changes: 30 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,10 +110,39 @@ jobs:
- name: Run tests
run: make PYTESTOPTIONS="--cov --cov-report=xml --timeout=600" test_mlflow

test-cython-estimators:
needs: test-nosoftdeps
runs-on: macOS-11
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Display Python version
run: python -c "import sys; print(sys.version)"

- name: Install OS packages
run: brew install libomp

- name: Install sktime and dependencies
run: |
python -m pip install .[dev,cython_extras] --no-cache-dir
- name: Show dependencies
run: python -m pip list

- name: Run tests
run: make PYTESTOPTIONS="--cov --cov-report=xml --only_cython_estimators=True --matrixdesign=False --timeout=600" test_check_suite

- name: Publish code coverage
uses: codecov/codecov-action@v3

test-windows:
needs: test-nosoftdeps
runs-on: windows-2019
strategy:
fail-fast: false # to not fail all combinations if just one fail
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']

Expand Down Expand Up @@ -155,6 +184,7 @@ jobs:
test-unix:
needs: test-nosoftdeps
strategy:
fail-fast: false # to not fail all combinations if just one fail
matrix:
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
os: [ubuntu-20.04, macOS-11]
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/update_contributors.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ name: Update Contributors

on:
push:
branches:
- main
paths:
- '.all-contributorsrc'

Expand Down
84 changes: 48 additions & 36 deletions CONTRIBUTORS.md

Large diffs are not rendered by default.

11 changes: 11 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,13 @@ test: ## Run unit tests
cp setup.cfg ${TEST_DIR}
python -m pytest

test_check_suite: ## run only estimator contract tests in TestAll classes
-rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
cp .coveragerc ${TEST_DIR}
cp setup.cfg ${TEST_DIR}
python -m pytest -k 'TestAll' $(PYTESTOPTIONS)

test_softdeps: ## Run unit tests to check soft dependency handling in estimators
-rm -rf ${TEST_DIR}
mkdir -p ${TEST_DIR}
Expand Down Expand Up @@ -84,3 +91,7 @@ nb: clean
rm -rf .venv || true
python3 -m venv .venv
. .venv/bin/activate && python -m pip install .[all_extras,binder] && ./build_tools/run_examples.sh

dockertest:
docker build -t sktime -f build_tools/docker/$(PYTHON_VERSION).dockerfile .
docker run -it --name sktime sktime bash -c "make test"
26 changes: 15 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

> A unified interface for machine learning with time series
:rocket: **Version 0.16.1 out now!** [Check out the release notes here](https://www.sktime.net/en/latest/changelog.html).
:rocket: **Version 0.17.2 out now!** [Check out the release notes here](https://www.sktime.net/en/latest/changelog.html).

sktime is a library for time series analysis in Python. It provides a unified interface for multiple time series learning tasks. Currently, this includes time series classification, regression, clustering, annotation and forecasting. It comes with [time series algorithms](https://www.sktime.net/en/stable/estimator_overview.html) and [scikit-learn] compatible tools to build, tune and validate time series models.

Expand All @@ -15,7 +15,7 @@ sktime is a library for time series analysis in Python. It provides a unified in
| **CI/CD** | [![github-actions](https://img.shields.io/github/actions/workflow/status/sktime/sktime/wheels.yml?logo=github)](https://github.com/sktime/sktime/actions/workflows/wheels.yml) [![!codecov](https://img.shields.io/codecov/c/github/sktime/sktime?label=codecov&logo=codecov)](https://codecov.io/gh/sktime/sktime) [![readthedocs](https://img.shields.io/readthedocs/sktime?logo=readthedocs)](https://www.sktime.net/en/latest/?badge=latest) [![platform](https://img.shields.io/conda/pn/conda-forge/sktime)](https://github.com/sktime/sktime) |
| **Code** | [![!pypi](https://img.shields.io/pypi/v/sktime?color=orange)](https://pypi.org/project/sktime/) [![!conda](https://img.shields.io/conda/vn/conda-forge/sktime)](https://anaconda.org/conda-forge/sktime) [![!python-versions](https://img.shields.io/pypi/pyversions/sktime)](https://www.python.org/) [![!black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/sktime/sktime/main?filepath=examples) |
| **Downloads**| [![Downloads](https://static.pepy.tech/personalized-badge/sktime?period=week&units=international_system&left_color=grey&right_color=blue&left_text=weekly%20(pypi))](https://pepy.tech/project/sktime) [![Downloads](https://static.pepy.tech/personalized-badge/sktime?period=month&units=international_system&left_color=grey&right_color=blue&left_text=monthly%20(pypi))](https://pepy.tech/project/sktime) [![Downloads](https://static.pepy.tech/personalized-badge/sktime?period=total&units=international_system&left_color=grey&right_color=blue&left_text=cumulative%20(pypi))](https://pepy.tech/project/sktime) |
| **Community** | [![!discord](https://img.shields.io/static/v1?logo=discord&label=discord&message=chat&color=lightgreen)](https://discord.com/invite/gqSab2K) [![!slack](https://img.shields.io/static/v1?logo=linkedin&label=LinkedIn&message=news&color=lightblue)](https://www.linkedin.com/company/sktime/) [![!twitter](https://img.shields.io/static/v1?logo=twitter&label=Twitter&message=news&color=lightblue)](https://twitter.com/sktime_toolbox) [![!youtube](https://img.shields.io/static/v1?logo=youtube&label=YouTube&message=tutorials&color=red)](https://www.youtube.com/playlist?list=PLKs3UgGjlWHqNzu0LEOeLKvnjvvest2d0) |
| **Community** | [![!discord](https://img.shields.io/static/v1?logo=discord&label=discord&message=chat&color=lightgreen)](https://discord.com/invite/54ACzaFsn7) [![!slack](https://img.shields.io/static/v1?logo=linkedin&label=LinkedIn&message=news&color=lightblue)](https://www.linkedin.com/company/scikit-time/) [![!youtube](https://img.shields.io/static/v1?logo=youtube&label=YouTube&message=tutorials&color=red)](https://www.youtube.com/playlist?list=PLKs3UgGjlWHqNzu0LEOeLKvnjvvest2d0) |
| **Citation** | [![!zenodo](https://zenodo.org/badge/DOI/10.5281/zenodo.3749000.svg)](https://doi.org/10.5281/zenodo.3749000) |

## :books: Documentation
Expand Down Expand Up @@ -51,13 +51,13 @@ Questions and feedback are extremely welcome! Please understand that we won't be
| :sparkles: **Feature Requests & Ideas** | [GitHub Issue Tracker] |
| :woman_technologist: **Usage Questions** | [GitHub Discussions] · [Stack Overflow] |
| :speech_balloon: **General Discussion** | [GitHub Discussions] |
| :factory: **Contribution & Development** | [Slack], contributors channel · [Discord] |
| :globe_with_meridians: **Community collaboration session** | [Discord] - Fridays 4pm UTC, dev/meet-ups channel |
| :factory: **Contribution & Development** | contributors channel · [Discord] |
| :globe_with_meridians: **Community collaboration session** | [Discord] - Fridays 3pm UTC, dev/meet-ups channel |

[github issue tracker]: https://github.com/sktime/sktime/issues
[github discussions]: https://github.com/sktime/sktime/discussions
[stack overflow]: https://stackoverflow.com/questions/tagged/sktime
[discord]: https://discord.com/invite/gqSab2K
[discord]: https://discord.com/invite/54ACzaFsn7

## :dizzy: Features
Our aim is to make the time series analysis ecosystem more interoperable and usable as a whole. sktime provides a __unified interface for distinct but related time series learning tasks__. It features [__dedicated time series algorithms__](https://www.sktime.net/en/stable/estimator_overview.html) and __tools for composite model building__ including pipelining, ensembling, tuning and reduction that enables users to apply an algorithm for one task to another.
Expand All @@ -73,13 +73,15 @@ For **deep learning**, see our companion package: [sktime-dl](https://github.com

| Module | Status | Links |
|---|---|---|
| **[Forecasting]** | stable | [Tutorial](https://www.sktime.net/en/latest/examples/01_forecasting.html) · [API Reference](https://www.sktime.net/en/latest/api_reference.html#sktime-forecasting-time-series-forecasting) · [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/forecasting.py) |
| **[Time Series Classification]** | stable | [Tutorial](https://github.com/sktime/sktime/blob/main/examples/02_classification.ipynb) · [API Reference](https://www.sktime.net/en/latest/api_reference.html#sktime-classification-time-series-classification) · [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/classification.py) |
| **[Time Series Regression]** | stable | [API Reference](https://www.sktime.net/en/latest/api_reference.html#sktime-classification-time-series-regression) |
| **[Transformations]** | stable | [API Reference](https://www.sktime.net/en/latest/api_reference.html#sktime-transformations-time-series-transformers) · [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/transformer.py) |
| **[Time Series Clustering]** | maturing | [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/clustering.py) |
| **[Time Series Distances/Kernels]** | experimental | [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/dist_kern_panel.py) |
| **[Forecasting]** | stable | [Tutorial](https://www.sktime.net/en/latest/examples/01_forecasting.html) · [API Reference](https://www.sktime.net/en/latest/api_reference/forecasting.html) · [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/forecasting.py) |
| **[Time Series Classification]** | stable | [Tutorial](https://github.com/sktime/sktime/blob/main/examples/02_classification.ipynb) · [API Reference](https://www.sktime.net/en/latest/api_reference/classification.html) · [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/classification.py) |
| **[Time Series Regression]** | stable | [API Reference](https://www.sktime.net/en/latest/api_reference/regression.html) |
| **[Transformations]** | stable | [Tutorial](https://github.com/sktime/sktime/blob/main/examples/03_transformers.ipynb) · [API Reference](https://www.sktime.net/en/latest/api_reference/transformations.html) · [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/transformer.py) |
| **[Parameter fitting]** | maturing | [API Reference](https://www.sktime.net/en/latest/api_reference/param_est.html) · [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/transformer.py) |
| **[Time Series Clustering]** | maturing | [API Reference](https://www.sktime.net/en/latest/api_reference/clustering.html) · [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/clustering.py) |
| **[Time Series Distances/Kernels]** | maturing | [Tutorial](https://github.com/sktime/sktime/blob/main/examples/03_transformers.ipynb) · [API Reference](https://www.sktime.net/en/latest/api_reference/dists_kernels.html) · [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/dist_kern_panel.py) |
| **[Annotation]** | experimental | [Extension Template](https://github.com/sktime/sktime/blob/main/extension_templates/annotation.py) |
| **[Distributions and simulation]** | experimental | |

[forecasting]: https://github.com/sktime/sktime/tree/main/sktime/forecasting
[time series classification]: https://github.com/sktime/sktime/tree/main/sktime/classification
Expand All @@ -88,6 +90,8 @@ For **deep learning**, see our companion package: [sktime-dl](https://github.com
[annotation]: https://github.com/sktime/sktime/tree/main/sktime/annotation
[time series distances/kernels]: https://github.com/sktime/sktime/tree/main/sktime/dists_kernels
[transformations]: https://github.com/sktime/sktime/tree/main/sktime/transformations
[distributions and simulation]: https://github.com/sktime/sktime/tree/main/sktime/proba
[parameter fitting]: https://github.com/sktime/sktime/tree/main/sktime/param_est


## :hourglass_flowing_sand: Install sktime
Expand Down
8 changes: 8 additions & 0 deletions build_tools/docker/py310.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM python:3.10.10-bullseye

WORKDIR /usr/src/sktime

COPY . .

RUN python -m pip install -U pip
RUN python -m pip install .[all_extras,dev,binder]
8 changes: 8 additions & 0 deletions build_tools/docker/py311.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM python:3.11.2-bullseye

WORKDIR /usr/src/sktime

COPY . .

RUN python -m pip install -U pip
RUN python -m pip install .[all_extras,dev,binder]
8 changes: 8 additions & 0 deletions build_tools/docker/py37.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM python:3.7.16-bullseye

WORKDIR /usr/src/sktime

COPY . .

RUN python -m pip install -U pip
RUN python -m pip install .[all_extras,dev,binder]
8 changes: 8 additions & 0 deletions build_tools/docker/py38.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM python:3.8.16-bullseye

WORKDIR /usr/src/sktime

COPY . .

RUN python -m pip install -U pip
RUN python -m pip install .[all_extras,dev,binder]
8 changes: 8 additions & 0 deletions build_tools/docker/py39.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM python:3.9.16-bullseye

WORKDIR /usr/src/sktime

COPY . .

RUN python -m pip install -U pip
RUN python -m pip install .[all_extras,dev,binder]
11 changes: 9 additions & 2 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@

__author__ = ["fkiraly"]

from sktime.tests import test_all_estimators


def pytest_addoption(parser):
"""Pytest command line parser options adder."""
Expand All @@ -23,9 +21,18 @@ def pytest_addoption(parser):
default=False,
help="sub-sample estimators in tests by os/version matrix partition design",
)
parser.addoption(
"--only_cython_estimators",
default=False,
help="test only cython estimators, with tag requires_cython=True",
)


def pytest_configure(config):
"""Pytest configuration preamble."""
from sktime.tests import test_all_estimators

if config.getoption("--matrixdesign") in [True, "True"]:
test_all_estimators.MATRIXDESIGN = True
if config.getoption("--only_cython_estimators") in [True, "True"]:
test_all_estimators.CYTHON_ESTIMATORS = True
29 changes: 27 additions & 2 deletions docs/source/about/team.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,26 @@ A list of all contributors can be found `here <contributors.md>`_.

Community Council
-----------------

transitional working group (in delegation),
subject to `widening of governance model <https://github.com/sktime/community-org/issues/46>`_.

.. list-table::
:header-rows: 1

* - Name
- GitHub ID
* - Jonathan Bechtel
- :user:`jonathanbechtel`
* - Franz Király
- :user:`fkiraly`
* - Sagar Mishra
- :user:`achieveordie`
* - Kiril Ralinovski
- :user:`kirilral`
* - Marc Rovira
- :user:`marrov`


Community Council Observers
---------------------------
Expand All @@ -25,6 +38,8 @@ Community Council Observers

* - Name
- GitHub ID
* - Jana Schmidberger
- :user:`janasberger`
* - Lovkush Agarwal
- :user:`lovkush-a`
* - Mirae Parker
Expand All @@ -40,6 +55,8 @@ Code of Conduct Committee
- GitHub ID
* - Franz Király
- :user:`fkiraly`
* - Marc Rovira
- :user:`marrov`

Core Developers
---------------
Expand All @@ -49,18 +66,24 @@ Core Developers

* - Name
- GitHub ID
* - Anirban Ray
- :user:`yarnabrina`
* - Daniel Bartling
- :user:`danbartl`
* - Jonathan Bechtel
- :user:`jonathanbechtel`
* - Franz Király
- :user:`fkiraly`
* - Freddy A Boulton
- :user:`freddyaboulton`
* - Kiril Ralinovski
- :user:`kirilral`
* - Lovkush Agarwal
- :user:`lovkush-a`
* - Marc Rovira
- :user:`marrov`
* - Mirae Parker
- :user:`miraep8`
* - Ryan Kuhns
- :user:`rnkuhns`
* - Sagar Mishra
- :user:`achieveordie`
* - Stanislav Khrapov
Expand Down Expand Up @@ -92,6 +115,8 @@ Former Core Developers
- :user:`james-large`
* - Jason Lines
- :user:`jasonlines`
* - Ryan Kuhns
- :user:`rnkuhns`
* - Leonidas Tsaprounis
- :user:`ltsaprounis`
* - Łukasz Mentel
Expand Down
Loading

0 comments on commit f885716

Please sign in to comment.