Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/python-publish-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install dependencies
Expand Down
21 changes: 9 additions & 12 deletions .github/workflows/python-test-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,23 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.9, 3.11, 3.12] # 3
python-version: ["3.10", "3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
- name: Install package with test dependencies
run: |
python -m pip install --upgrade pip
pip install pytest flake8 pytest-flake8-v2 mypy pytest-mypy pytest-cov \
types-setuptools
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
pip install -e .[test]
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --exit-zero --show-source --statistics # --max-complexity=10
run: flake8 src/pyrcn tests
- name: Type-check with mypy
run: mypy src/pyrcn
- name: Test with pytest
run: |
pytest
run: pytest --cov=src/pyrcn --cov-branch --cov-report=xml --cov-report=term-missing
- name: Test installed PyRCN
run: |
pip install .
Expand Down
4 changes: 2 additions & 2 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ version: 2

# Set the version of Python and other tools you might need
build:
os: ubuntu-20.04
os: ubuntu-22.04
tools:
python: "3.9"
python: "3.12"
# You can also specify other tool versions:
# nodejs: "16"
# rust: "1.55"
Expand Down
16 changes: 8 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ If you plan to contribute to ``PyRCN``, you can also install the package from so
Clone the Git repository:

```
git clone https://github.com/TUD-STKS/PyRCN.git
git clone https://github.com/PlasmaControl/PyRCN.git
```

Install the package using ``setup.py``:
Expand Down Expand Up @@ -124,19 +124,19 @@ reg.fit(X=X[:8000], y=y[:8000])
y_pred = reg.predict(X[8000:]) # output is the prediction for each input example
```

An extensive introduction to getting started with PyRCN is included in the [examples](https://github.com/TUD-STKS/PyRCN/blob/main/examples) directory.
The notebook [digits](https://github.com/TUD-STKS/PyRCN/blob/main/examples/digits.ipynb) or its corresponding [Python script](https://github.com/TUD-STKS/PyRCN/blob/main/examples/digits.py) show how to set up an ESN for a small hand-written digit recognition experiment.
An extensive introduction to getting started with PyRCN is included in the [examples](https://github.com/PlasmaControl/PyRCN/blob/main/examples) directory.
The notebook [digits](https://github.com/PlasmaControl/PyRCN/blob/main/examples/digits.ipynb) or its corresponding [Python script](https://github.com/PlasmaControl/PyRCN/blob/main/examples/digits.py) show how to set up an ESN for a small hand-written digit recognition experiment.
Launch the digits notebook on Binder:

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TUD-STKS/PyRCN/main?filepath=examples%2Fdigits.ipynb)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/PlasmaControl/PyRCN/main?filepath=examples%2Fdigits.ipynb)

The notebook [PyRCN_Intro](https://github.com/TUD-STKS/PyRCN/blob/main/examples/PyRCN_Intro.ipynb) or its corresponding [Python script](https://github.com/TUD-STKS/PyRCN/blob/main/examples/PyRCN_Intro.py) show how to construct different RCNs with building blocks.
The notebook [PyRCN_Intro](https://github.com/PlasmaControl/PyRCN/blob/main/examples/PyRCN_Intro.ipynb) or its corresponding [Python script](https://github.com/PlasmaControl/PyRCN/blob/main/examples/PyRCN_Intro.py) show how to construct different RCNs with building blocks.

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TUD-STKS/PyRCN/main?filepath=examples%2FPyRCN_Intro.ipynb)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/PlasmaControl/PyRCN/main?filepath=examples%2FPyRCN_Intro.ipynb)

The notebook [Impulse responses](https://github.com/TUD-STKS/PyRCN/blob/main/examples/esn_impulse_responses.ipynb) is an interactive tool to demonstrate the impact of different hyper-parameters on the impulse responses of an ESN.
The notebook [Impulse responses](https://github.com/PlasmaControl/PyRCN/blob/main/examples/esn_impulse_responses.ipynb) is an interactive tool to demonstrate the impact of different hyper-parameters on the impulse responses of an ESN.

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/TUD-STKS/PyRCN/main?filepath=examples%2Fesn_impulse_responses.ipynb)
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/PlasmaControl/PyRCN/main?filepath=examples%2Fesn_impulse_responses.ipynb)

Fore more advanced examples, please have a look at our [Automatic Music Transcription Repository](https://github.com/TUD-STKS/Automatic-Music-Transcription), in which we provide an entire feature extraction, training and test pipeline for multipitch tracking and for note onset detection using PyRCN. This is currently transferred to this repository.

Expand Down
4 changes: 2 additions & 2 deletions docs/source/development.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ Whenever you find something not explained well, please inform Peter Steiner
`peter.steiner@pyrcn.net <mailto:peter.steiner@pyrcn.net>`_.


.. _GitHub: https://github.com/TUD-STKS/PyRCN
.. _issue tracker on GitHub: https://github.com/TUD-STKS/PyRCN/issues
.. _GitHub: https://github.com/PlasmaControl/PyRCN
.. _issue tracker on GitHub: https://github.com/PlasmaControl/PyRCN/issues
6 changes: 3 additions & 3 deletions docs/source/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ command in a PowerShell or CommandLine in Windows, or in a shell in Linux/MacOS:
python --version

As any package, **PyRCN** has several dependencies as listed in the `requirements.txt
<https://github.com/TUD-STKS/PyRCN/blob/main/requirements.txt>`_. To avoid any
<https://github.com/PlasmaControl/PyRCN/blob/main/requirements.txt>`_. To avoid any
unexpected interaction with the basic system as installed on your computer, we highly
recommend using a virtual environment

Expand Down Expand Up @@ -55,7 +55,7 @@ Installation from source

We only recommend you the installation of PyRCN from source if you would like to
contribute to PyRCN. Therefore, please find the source code of **PyRCN** on `GitHub
<https://github.com/TUD-STKS/PyRCN>`_.
<https://github.com/PlasmaControl/PyRCN>`_.

You can download the latest stable version from the ``main`` branch. To work with older
or unstable versions of **PyRCN**,. you can checkout the ``dev`` branch or any other
Expand All @@ -68,4 +68,4 @@ The installation then work similar as before using `pip` in your command line:

pip install -e /path/to/pyrcn

.. _issue tracker on GitHub: https://github.com/TUD-STKS/PyRCN/issues
.. _issue tracker on GitHub: https://github.com/PlasmaControl/PyRCN/issues
2 changes: 1 addition & 1 deletion docs/source/introduction.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ similar, and PyRCN aims to unify the development of ESNs and ELMs.


Many examples can be found in the PyRCN repository. Some useful examples can also be
found in the `PyRCN repository <https://github.com/TUD-STKS/PyRCN/tree/main/examples>`_
found in the `PyRCN repository <https://github.com/PlasmaControl/PyRCN/tree/main/examples>`_
with many Jupyter notebooks.

PyRCN is inspired by `ReservoirPy <https://github.com/reservoirpy>`_, another RC toolbox
Expand Down
18 changes: 9 additions & 9 deletions docs/source/tutorial.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,35 +6,35 @@ package.

You can view them online or download Python scripts:

https://github.com/TUD-STKS/PyRCN/tree/main/examples
https://github.com/PlasmaControl/PyRCN/tree/main/examples

The notebook
`PyRCN_Intro <https://github.com/TUD-STKS/PyRCN/blob/main/examples/PyRCN_Intro.ipynb>`_
`PyRCN_Intro <https://github.com/PlasmaControl/PyRCN/blob/main/examples/PyRCN_Intro.ipynb>`_
or its corresponding
`Python script <https://github.com/TUD-STKS/PyRCN/blob/main/examples/PyRCN_Intro.py>`_
`Python script <https://github.com/PlasmaControl/PyRCN/blob/main/examples/PyRCN_Intro.py>`_
show how to construct different RCNs with building blocks.

.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/TUD-STKS/PyRCN/main?filepath=examples%2FPyRCN_Intro.ipynb
:target: https://mybinder.org/v2/gh/PlasmaControl/PyRCN/main?filepath=examples%2FPyRCN_Intro.ipynb


The notebook
`Impulse responses
<https://github.com/TUD-STKS/PyRCN/blob/main/examples/esn_impulse_responses.ipynb>`_
<https://github.com/PlasmaControl/PyRCN/blob/main/examples/esn_impulse_responses.ipynb>`_
is an interactive tool to demonstrate the impact of different hyper-parameters on the
impulse responses of an ESN.

.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/TUD-STKS/PyRCN/main?filepath=examples%2Fesn_impulse_responses.ipynb
:target: https://mybinder.org/v2/gh/PlasmaControl/PyRCN/main?filepath=examples%2Fesn_impulse_responses.ipynb

The Jupyter notebook
`digits <https://github.com/TUD-STKS/PyRCN/blob/main/examples/digits.ipynb>`_
`digits <https://github.com/PlasmaControl/PyRCN/blob/main/examples/digits.ipynb>`_
or its corresponding
`Python script <https://github.com/TUD-STKS/PyRCN/blob/main/examples/digits.py>`_
`Python script <https://github.com/PlasmaControl/PyRCN/blob/main/examples/digits.py>`_
show how to set up an ESN for a small hand-written digit recognition experiment.

.. image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/TUD-STKS/PyRCN/main?filepath=examples%2Fdigits.ipynb
:target: https://mybinder.org/v2/gh/PlasmaControl/PyRCN/main?filepath=examples%2Fdigits.ipynb

Fore more advanced examples, please have a look at our
`Automatic Music Transcription Repository
Expand Down
2 changes: 1 addition & 1 deletion examples/PyRCN_Intro.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -722,7 +722,7 @@
"\n",
"This complex use-case requires a serious hyper-parameter tuning. To keep the code example simple, we did not include the optimization in this paper and refer the interested readers to the Jupyter Notebook [^1] that was developed to produce these results.\n",
"\n",
"[^1]: https://github.com/TUD-STKS/PyRCN/blob/main/examples/digits.ipynb"
"[^1]: https://github.com/PlasmaControl/PyRCN/blob/main/examples/digits.ipynb"
]
},
{
Expand Down
2 changes: 2 additions & 0 deletions mypy.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
[mypy] # global options
# third-party scientific packages ship no type stubs / py.typed marker
ignore_missing_imports = True
# add this to find packages without an __init__.py file
namespace_packages = True
strict_optional = True
Expand Down
60 changes: 42 additions & 18 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,39 +6,63 @@ build-backend = "setuptools.build_meta"

[project]
name = "PyRCN"
version = "0.0.18"
dynamic = ["version"]
description = "A scikit-learn-compatible framework for Reservoir Computing in Python"
readme = "README.md"
requires-python = ">=3.10"
authors = [
{ name="Peter Steiner", email="peter.steiner@pyrcn.net" },
]
readme = "README.md"
requires-python = ">=3.8"
classifiers = [
"Development Status :: 2 - Pre-Alpha",
"Intended Audience :: Science/Research",
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
]
dependencies = [
"torch",
"torchvision",
"torchaudio",
"scikit-learn",
"pandas",
"scikit-learn>=1.6",
"numpy>=1.18.1",
"scipy>=1.4.0",
"joblib>=0.13.2",
"pandas>=1.0.0",
]

[project.optional-dependencies]
test = [
"pytest>=6.5.0",
"pytest-cov",
"pytest-mypy",
"mypy",
"flake8",
]
examples = [
"matplotlib",
"seaborn",
"ipywidgets",
"ipympl",
"tqdm",
]

[project.urls]
Homepage = "https://pyrcn.net/"
Documentation = "https://pyrcn.readthedocs.io/"
Source = "https://github.com/PlasmaControl/PyRCN/"
Issues = "https://github.com/PlasmaControl/PyRCN/issues"

[tool.setuptools.dynamic]
version = { attr = "pyrcn._version.__version__" }

[tool.setuptools.packages.find]
where = ["src"]

[tool.pytest.ini_options]
minversion = "6.0"
addopts = "-ra -q"
testpaths = [
"tests",
]

[tool.setuptools.packages.find]
where = ["src"]

[project.urls]
Homepage = "https://pyrcn.net/"
Documentation = "https://pyrcn.readthedocs.io/"
Source = "https://github.com/TUD-STKS/PyRCN/"
Issues = "https://github.com/TUD-STKS/PyRCN/issues"
20 changes: 0 additions & 20 deletions pytest.ini

This file was deleted.

13 changes: 6 additions & 7 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
setuptools>=46.4.0
scikit-learn>=1.4
scikit-learn>=1.6
numpy>=1.18.1
scipy>=1.4.0
joblib>=0.13.2
pandas>=1.0.0
typing-extensions
requests[matplotlib]
requests[seaborn]
requests[ipywidgets]
requests[ipympl]
requests[tqdm]
matplotlib
seaborn
ipywidgets
ipympl
tqdm
32 changes: 0 additions & 32 deletions setup.cfg

This file was deleted.

9 changes: 4 additions & 5 deletions src/pyrcn/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,19 @@

# Authors: Peter Steiner <peter.steiner@tu-dresden.de>,
# License: BSD 3 clause
from ._version import __version__
from __future__ import annotations

from . import (base, echo_state_network, extreme_learning_machine,
linear_model, model_selection, nn, postprocessing,
preprocessing, projection, util)

linear_model, model_selection, postprocessing, preprocessing,
projection, util)
from ._version import __version__

__all__ = ('__version__',
'base',
'echo_state_network',
'extreme_learning_machine',
'linear_model',
'model_selection',
'nn',
'postprocessing',
'preprocessing',
'projection',
Expand Down
4 changes: 3 additions & 1 deletion src/pyrcn/_version.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
"""Version indicator for PyRCN."""
__version__ = "0.0.17post1"
from __future__ import annotations

__version__ = "0.0.18"
Loading
Loading