Skip to content

Commit

Permalink
Merge branch 'master' into fix/cell_assembly_detection
Browse files Browse the repository at this point in the history
  • Loading branch information
Moritz-Alexander-Kern committed Jul 12, 2023
2 parents 549f89f + 844eb82 commit 0830333
Show file tree
Hide file tree
Showing 93 changed files with 3,434 additions and 649 deletions.
91 changes: 79 additions & 12 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# This workflow will setup GitHub-hosted runners and install the required dependencies for elephant tests.
# This workflow will set up GitHub-hosted runners and install the required dependencies for elephant tests.
# On a pull requests and on pushes to master it will run different tests for elephant.

name: tests
Expand Down Expand Up @@ -57,8 +57,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# python versions for elephant: [3.7, 3.8, 3.9, "3.10"]
python-version: [3.7, 3.8, 3.9, "3.10"]
# python versions for elephant: [3.8, 3.9, "3.10", 3.11]
python-version: [3.8, 3.9, "3.10", 3.11]
# OS [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest]
# do not cancel all in-progress jobs if any matrix job fails
Expand All @@ -82,7 +82,7 @@ jobs:
- name: Cache test_env
uses: actions/cache@v3
with:
path: ~/test_env
path: /home/runner/.cache/pip
# Look to see if there is a cache hit for the corresponding requirements files
# cache will be reset on changes to any requirements or every month
key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements.txt') }}-${{ hashFiles('**/requirements-tests.txt') }}
Expand Down Expand Up @@ -139,7 +139,7 @@ jobs:
path: ~/conda_pkgs_dir
key: ${{ runner.os }}-conda-${{hashFiles('requirements/environment.yml') }}-${{ hashFiles('**/CI.yml') }}-${{ steps.date.outputs.date }}

- uses: conda-incubator/setup-miniconda@v2.2.0
- uses: conda-incubator/setup-miniconda@3b0f2504dd76ef23b6d31f291f4913fb60ab5ff3 # corresponds to v2.2.0
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
Expand Down Expand Up @@ -181,7 +181,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# python versions for elephant: [3.6, 3.7, 3.8, 3.9]
# python versions for elephant: [3.8, 3.9, 3.10, 3.11]
python-version: [3.8,]
# OS [ubuntu-latest, macos-latest, windows-latest]
os: [windows-latest]
Expand Down Expand Up @@ -243,7 +243,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# python versions for elephant: [3.6, 3.7, 3.8, 3.9]
# python versions for elephant: [3.8, 3.9, 3.10, 3.11]
python-version: [3.9]
# OS [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest]
Expand Down Expand Up @@ -273,6 +273,7 @@ jobs:

- name: Setup environment
run: |
sudo apt-get update
sudo apt install -y libopenmpi-dev openmpi-bin
python -m pip install --upgrade pip
Expand Down Expand Up @@ -331,6 +332,7 @@ jobs:
run: |
conda config --add channels conda-forge # bugfix with scipy==1.8.1: libstdcxx-ng 12.1.0 required
conda update conda
conda install -c conda-forge libstdcxx-ng=12 # fix libstdc++.so.6: version for new scipy versions > 1.9.1
conda env update --file requirements/environment-tests.yml --name base
activate base
conda install -c conda-forge openmpi
Expand Down Expand Up @@ -387,26 +389,91 @@ jobs:

- name: Install dependencies
run: |
conda config --add channels conda-forge # bugfix with scipy==1.8.1: libstdcxx-ng 12.1.0 required
sudo apt-get update
sudo apt install -y libopenmpi-dev openmpi-bin
conda update conda
conda install -c conda-forge openmpi pandoc libstdcxx-ng # fix libstdc++.so.6: version for new scipy versions > 1.9.1
conda env update --file requirements/environment-docs.yml --name base
activate base
python -m pip install --upgrade pip
pip install -r requirements/requirements-docs.txt
pip install -r requirements/requirements-tutorials.txt
conda config --add channels conda-forge # bugfix with scipy==1.8.1: libstdcxx-ng 12.1.0 required
conda update conda
conda env update --file requirements/environment-docs.yml --name base
conda install -c conda-forge openmpi
conda install -c conda-forge pandoc
pip install -e .[extras]
# run notebooks
sed -i -E "s/nbsphinx_execute *=.*/nbsphinx_execute = 'always'/g" doc/conf.py
- name: List packages
run: |
activate base
pip list
conda list
python --version
- name: make html
run: |
activate base
cd doc
make html
# install dependencies and elephant with pip and run tests with pytest
doctests:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# python versions for elephant: [3.7, 3.8, 3.9, "3.10"]
python-version: ["3.10"]

# OS [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest]

# do not cancel all in-progress jobs if any matrix job fails
fail-fast: false

steps:
# used to reset cache every month
- name: Get current year-month
id: date
run: echo "::set-output name=date::$(date +'%Y-%m')"
- uses: actions/checkout@v3

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Cache test_env
uses: actions/cache@v3
with:
path: ~/test_env
# Look to see if there is a cache hit for the corresponding requirements files
# cache will be reset on changes to any requirements or every month
key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements.txt') }}-${{ hashFiles('**/requirements-tests.txt') }}
-${{ hashFiles('**/requirements-extras.txt') }}-${{ hashFiles('**/CI.yml') }}-${{ hashFiles('setup.py') }}
-${{ steps.date.outputs.date }}

- name: Install dependencies
run: |
# create an environment and install everything
python -m venv ~/test_env
source ~/test_env/bin/activate
sudo apt install -y libopenmpi-dev openmpi-bin
python -m pip install --upgrade pip
pip install mpi4py
pip install -r requirements/requirements-tests.txt
pip install -r requirements/requirements.txt
pip install -r requirements/requirements-extras.txt
pip install pytest-cov coveralls
pip install -e .
- name: List packages
run: |
source ~/test_env/bin/activate
pip list
python --version
- name: Run doctests
run: |
source ~/test_env/bin/activate
pytest elephant --doctest-modules --ignore=elephant/test/
4 changes: 2 additions & 2 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ jobs:
- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_SKIP: "cp27-* cp33-* cp34-* cp35-* cp36-* pp*"
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.7"
CIBW_SKIP: "cp27-* cp33-* cp34-* cp35-* cp36-* cp37-* pp*"
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.8"
CIBW_ARCHS: "auto64"

- uses: actions/upload-artifact@v3
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ebrains.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ jobs:
if: ${{ github.repository_owner == 'NeuralEnsemble' }}
steps:
- name: syncmaster
uses: wei/git-sync@v3
uses: wei/git-sync@55c6b63b4f21607da0e9877ca9b4d11a29fc6d83 # corresponds to v3
with:
source_repo: "NeuralEnsemble/elephant"
source_branch: "master"
destination_repo: "https://ghpusher:${{ secrets.EBRAINS_GITLAB_ACCESS_TOKEN }}@gitlab.ebrains.eu/neuralensemble/elephant.git"
destination_branch: "master"

- name: synctags
uses: wei/git-sync@v3
uses: wei/git-sync@55c6b63b4f21607da0e9877ca9b4d11a29fc6d83 # corresponds to v3
with:
source_repo: "NeuralEnsemble/elephant"
source_branch: "refs/tags/*"
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,8 @@ ignored/

# data
*.nix
*.csv
*.mat

# neo logs
**/logs
11 changes: 11 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# This workflow will be executed on gitlab and trigger the spack build process
# on commit to master branch on github NeuralEnsemble master branch.
stages: # List of stages for jobs, and their order of execution
- build

build-job: # This job runs in the build stage, which runs first.
stage: build
script:
- curl -X POST --fail -F "token=$EBRAINS_SPACK_BUILD_TRIGGER" -F "ref=feature/dev_version" https://gitlab.ebrains.eu/api/v4/projects/322/trigger/pipeline
tags:
- shell-runner
45 changes: 3 additions & 42 deletions .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,6 @@
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
"name": "Köhler, Cristiano"
},
{
"orcid": "0000-0002-2403-928X",
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
"name": "Morales-Gregorio, Aitor"
},
{
"orcid": "0000-0003-3776-4226",
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
"name": "Kleinjohann, Alexander"
},
{
"orcid": "0000-0003-2498-0536",
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
"name": "Bouss, Peter"
},
{
"orcid": "0000-0002-3818-5587",
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
"name": "Stella, Alessandra"
},
{
"orcid": "0000-0003-0789-6279",
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
Expand All @@ -40,15 +20,6 @@
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
"name": "Kramer, Maximilian"
},
{
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
"name": "Kloß, Oliver"
},
{
"orcid": "0000-0002-5555-3206",
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
"name": "Dąbrowska, Paulina"
},
{
"orcid": "0000-0001-7292-1982",
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
Expand All @@ -60,23 +31,13 @@
"name": "Kurth, Anno Christopher"
},
{
"orcid": "0000-0001-7373-5962",
"orcid": "0000-0001-9170-4422",
"affiliation": "Institute of Neuroscience and Medicine (INM-6) and Institute for Advanced Simulation (IAS-6) and JARA-Institute Brain Structure-Function Relationships (INM-10), Jülich Research Centre, Jülich, Germany",
"name": "Gutzen, Robin"
},
{
"orcid": "0000-0003-2401-7862",
"affiliation": "Cognitronics and Sensor Systems, CITEC, Bielefeld University, Bielefeld, Germany",
"name": "Porrmann, Florian"
},
{
"orcid": "0000-0002-3168-7365",
"affiliation": "Cognitronics and Sensor Systems, CITEC, Bielefeld University, Bielefeld, Germany",
"name": "Pilz, Sarah"
"name": "Ito, Junji"
}
],

"title": "Elephant 0.11.2",
"title": "Elephant 0.12.0",

"keywords": [
"neuroscience",
Expand Down
4 changes: 2 additions & 2 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2014-2022, Elephant authors and contributors
Copyright (c) 2014-2023, Elephant authors and contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Expand All @@ -7,4 +7,4 @@ Redistribution and use in source and binary forms, with or without modification,
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the names of the copyright holders nor the names of the contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
# Elephant - Electrophysiology Analysis Toolkit

[![Build Status](https://travis-ci.org/NeuralEnsemble/elephant.svg?branch=master)](https://travis-ci.org/NeuralEnsemble/elephant)
[![Coverage Status](https://coveralls.io/repos/github/NeuralEnsemble/elephant/badge.svg?branch=master)](https://coveralls.io/github/NeuralEnsemble/elephant?branch=master)
[![Documentation Status](https://readthedocs.org/projects/elephant/badge/?version=latest)](https://elephant.readthedocs.io/en/latest/?badge=latest)
[![![PyPi]](https://img.shields.io/pypi/v/elephant)](https://pypi.org/project/elephant/)
Expand All @@ -9,6 +8,7 @@
[![DOI Latest Release](https://zenodo.org/badge/10311278.svg)](https://zenodo.org/badge/latestdoi/10311278)
[![tests](https://github.com/NeuralEnsemble/elephant/actions/workflows/CI.yml/badge.svg)](https://github.com/NeuralEnsemble/elephant/actions/workflows/CI.yml)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/6191/badge)](https://bestpractices.coreinfrastructure.org/projects/6191)
[![fair-software.eu](https://img.shields.io/badge/fair--software.eu-%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8F%20%20%E2%97%8F-green)](https://fair-software.eu)

*Elephant* package analyses all sorts of neurophysiological data:
spike trains, LFP, analog signals. The input-output data format is either
Expand All @@ -35,7 +35,7 @@ Modified BSD License, see [LICENSE.txt](LICENSE.txt) for details.

#### Copyright

:copyright: 2014-2022 by the [Elephant team](doc/authors.rst).
:copyright: 2014-2023 by the [Elephant team](doc/authors.rst).


#### Acknowledgments
Expand Down

0 comments on commit 0830333

Please sign in to comment.