Skip to content

Commit 19230dc

Browse files
committed
Merge branch 'master' into pr/mahlzahn/1446
2 parents 5824440 + 467b946 commit 19230dc

File tree

151 files changed

+6427
-2879
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

151 files changed

+6427
-2879
lines changed

.github/workflows/caches_cron_job.yml

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -10,57 +10,57 @@ on:
1010

1111
jobs:
1212

13-
create-conda-env-cache-if-missing:
14-
name: Caching conda env
15-
runs-on: "ubuntu-latest"
16-
strategy:
17-
fail-fast: true
18-
defaults:
19-
# by default run in bash mode (required for conda usage)
20-
run:
21-
shell: bash -l {0}
22-
steps:
23-
- uses: actions/checkout@v3
24-
25-
- name: Get current year-month
26-
id: date
27-
run: |
28-
echo "date=$(date +'%Y-%m')" >> $GITHUB_OUTPUT
29-
30-
- name: Get current dependencies hash
31-
id: dependencies
32-
run: |
33-
echo "hash=${{hashFiles('**/pyproject.toml', '**/environment_testing.yml')}}" >> $GITHUB_OUTPUT
34-
35-
- uses: actions/cache@v3
36-
# the cache for python package is reset:
37-
# * every month
38-
# * when package dependencies change
39-
id: cache-conda-env
40-
with:
41-
path: /usr/share/miniconda/envs/neo-test-env
42-
key: ${{ runner.os }}-conda-env-${{ steps.dependencies.outputs.hash }}-${{ steps.date.outputs.date }}
43-
44-
- name: Cache found?
45-
run: echo "Cache-hit == ${{steps.cache-conda-env.outputs.cache-hit == 'true'}}"
46-
47-
# activate environment if not restored from cache
48-
- uses: conda-incubator/[email protected]
49-
if: steps.cache-conda-env.outputs.cache-hit != 'true'
50-
with:
51-
activate-environment: neo-test-env
52-
environment-file: environment_testing.yml
53-
python-version: 3.9
54-
55-
- name: Create the conda environment to be cached
56-
if: steps.cache-conda-env.outputs.cache-hit != 'true'
57-
# create conda env, configure git and install pip, neo and test dependencies from master
58-
# for PRs that change dependencies, this environment will be updated in the test workflow
59-
run: |
60-
git config --global user.email "neo_ci@fake_mail.com"
61-
git config --global user.name "neo CI"
62-
python -m pip install -U pip # Official recommended way
63-
pip install --upgrade -e .[test]
13+
# create-conda-env-cache-if-missing:
14+
# name: Caching conda env
15+
# runs-on: "ubuntu-latest"
16+
# strategy:
17+
# fail-fast: true
18+
# defaults:
19+
# # by default run in bash mode (required for conda usage)
20+
# run:
21+
# shell: bash -l {0}
22+
# steps:
23+
# - uses: actions/checkout@v3
24+
25+
# - name: Get current year-month
26+
# id: date
27+
# run: |
28+
# echo "date=$(date +'%Y-%m')" >> $GITHUB_OUTPUT
29+
30+
# - name: Get current dependencies hash
31+
# id: dependencies
32+
# run: |
33+
# echo "hash=${{hashFiles('**/pyproject.toml', '**/environment_testing.yml')}}" >> $GITHUB_OUTPUT
34+
35+
# - uses: actions/cache@v3
36+
# # the cache for python package is reset:
37+
# # * every month
38+
# # * when package dependencies change
39+
# id: cache-conda-env
40+
# with:
41+
# path: /usr/share/miniconda/envs/neo-test-env
42+
# key: ${{ runner.os }}-conda-env-${{ steps.dependencies.outputs.hash }}-${{ steps.date.outputs.date }}
43+
44+
# - name: Cache found?
45+
# run: echo "Cache-hit == ${{steps.cache-conda-env.outputs.cache-hit == 'true'}}"
46+
47+
# # activate environment if not restored from cache
48+
# - uses: conda-incubator/[email protected]
49+
# if: steps.cache-conda-env.outputs.cache-hit != 'true'
50+
# with:
51+
# activate-environment: neo-test-env
52+
# environment-file: environment_testing.yml
53+
# python-version: 3.9
54+
55+
# - name: Create the conda environment to be cached
56+
# if: steps.cache-conda-env.outputs.cache-hit != 'true'
57+
# # create conda env, configure git and install pip, neo and test dependencies from master
58+
# # for PRs that change dependencies, this environment will be updated in the test workflow
59+
# run: |
60+
# git config --global user.email "neo_ci@fake_mail.com"
61+
# git config --global user.name "neo CI"
62+
# python -m pip install -U pip # Official recommended way
63+
# pip install --upgrade -e .[test]
6464

6565
create-data-cache-if-missing:
6666
name: Caching data env

.github/workflows/core-test.yml

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,27 +24,44 @@ jobs:
2424
strategy:
2525
fail-fast: true
2626
matrix:
27-
os: ["ubuntu-latest", "windows-latest"]
28-
# "macos-latest",
29-
python-version: ['3.8', '3.9', '3.10', '3.11']
30-
numpy-version: ['1.20.3', '1.21.6', '1.22.4', '1.23.5', '1.24.1', '1.25.1']
27+
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
28+
python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
29+
numpy-version: ['1.22.4', '1.23.5', '1.24.4', '1.25.1', '1.26.4', '2.0.2','2.1']
30+
# numpy 1.22: 3.10, 1.23: 3.11, 1.24: 3.11, 1.25: 3.11, 1.26: 3.12
3131
exclude:
32-
- python-version: '3.8'
33-
numpy-version: '1.25.1'
34-
- python-version: '3.10'
35-
numpy-version: '1.20.3'
36-
- python-version: '3.11'
37-
numpy-version: '1.20.3'
32+
- python-version: '3.9'
33+
numpy-version: '2.1'
3834
- python-version: '3.11'
39-
numpy-version: '1.21.6'
35+
numpy-version: '1.22.4'
36+
- python-version: '3.12'
37+
numpy-version: '1.22.4'
38+
- python-version: '3.12'
39+
numpy-version: '1.23.5'
40+
- python-version: '3.12'
41+
numpy-version: '1.24.4'
42+
- python-version: '3.12'
43+
numpy-version: '1.25.1'
44+
- python-version: '3.13'
45+
numpy-version: '1.22.4'
46+
- python-version: '3.13'
47+
numpy-version: '1.23.5'
48+
- python-version: '3.13'
49+
numpy-version: '1.24.4'
50+
- python-version: '3.13'
51+
numpy-version: '1.25.1'
52+
- python-version: '3.13'
53+
numpy-version: '1.26.4'
54+
- python-version: '3.13'
55+
numpy-version: '2.0.2'
56+
4057
steps:
4158
- name: Set up Python ${{ matrix.python-version }}
42-
uses: actions/setup-python@v4
59+
uses: actions/setup-python@v5
4360
with:
4461
python-version: ${{ matrix.python-version }}
4562

4663
- name: Checkout repository
47-
uses: actions/checkout@v3
64+
uses: actions/checkout@v4
4865

4966
- name: Install numpy ${{ matrix.numpy-version }}
5067
run: |

.github/workflows/io-test.yml

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,21 @@ concurrency: # Cancel previous workflows on the same pull request
1313

1414
jobs:
1515
build-and-test:
16-
name: Test on (${{ inputs.os }})
16+
name: Test on (${{ inputs.os }}) (${{ matrix.python-version}}) (${{ matrix.numpy-version }})
1717
runs-on: ${{ inputs.os }}
1818
strategy:
1919
fail-fast: true
2020
matrix:
21-
python-version: ['3.9', ]
21+
python-version: ['3.9', '3.12']
22+
numpy-version: ['1.26', '2.0']
2223
defaults:
2324
# by default run in bash mode (required for conda usage)
2425
run:
2526
shell: bash -l {0}
2627
steps:
2728

2829
- name: Checkout repository
29-
uses: actions/checkout@v3
30+
uses: actions/checkout@v4
3031

3132
- name: Get current year-month
3233
id: date
@@ -38,7 +39,7 @@ jobs:
3839
run: |
3940
echo "dataset_hash=$(git ls-remote https://gin.g-node.org/NeuralEnsemble/ephy_testing_data.git HEAD | cut -f1)" >> $GITHUB_OUTPUT
4041
41-
- uses: actions/cache/restore@v3
42+
- uses: actions/cache/restore@v4
4243
# Loading cache of ephys_testing_dataset
4344
id: cache-datasets
4445
with:
@@ -48,33 +49,36 @@ jobs:
4849

4950
- uses: conda-incubator/setup-miniconda@v3
5051
with:
51-
activate-environment: neo-test-env
52+
activate-environment: neo-test-env-${{ matrix.python-version }}
5253
python-version: "${{ matrix.python-version }}"
53-
54-
- name: Get current dependencies hash
55-
id: dependencies
56-
run: |
57-
echo "hash=${{hashFiles('**/pyproject.toml', '**/environment_testing.yml')}}" >> $GITHUB_OUTPUT
58-
59-
- uses: actions/cache/restore@v3
54+
55+
# TEST NOT USING CACHE
56+
#- name: Get current dependencies hash
57+
# id: dependencies
58+
# run: |
59+
# echo "hash=${{hashFiles('**/pyproject.toml', '**/environment_testing.yml')}}" >> $GITHUB_OUTPUT
60+
61+
#- uses: actions/cache/restore@v3
6062
# the cache for python package is reset:
6163
# * every month
6264
# * when package dependencies change
63-
id: cache-conda-env
64-
with:
65-
path: /usr/share/miniconda/envs/neo-test-env
66-
key: ${{ runner.os }}-conda-env-${{ steps.dependencies.outputs.hash }}-${{ steps.date.outputs.date }}
65+
# id: cache-conda-env
66+
# with:
67+
# path: /usr/share/miniconda/envs/neo-test-env-${{ matrix.python-version }}
68+
# key: ${{ runner.os }}-conda-env-${{ steps.dependencies.outputs.hash }}-${{ steps.date.outputs.date }}
6769
# restore-keys match any key that starts with the restore-key
68-
restore-keys: |
69-
${{ runner.os }}-conda-env-${{ steps.dependencies.outputs.hash }}-
70-
${{ runner.os }}-conda-env-
70+
# restore-keys: |
71+
# ${{ runner.os }}-conda-env-${{ steps.dependencies.outputs.hash }}-
72+
# ${{ runner.os }}-conda-env-
7173

7274
- name: Install testing dependencies
7375
# testing environment is only created from yml if no cache was found
7476
# restore-key hits should result in `cache-hit` == 'false'
75-
if: steps.cache-conda-env.outputs.cache-hit != 'true'
77+
#if: steps.cache-conda-env.outputs.cache-hit != 'true'
7678
run: |
77-
conda env update --name neo-test-env --file environment_testing.yml --prune
79+
conda install datalad pip numpy=${{ matrix.numpy-version }} -c conda-forge
80+
# this command is for updating cache. We are resting removal.
81+
# conda env update --name neo-test-env-${{ matrix.python-version }} --file environment_testing.yml --prune
7882

7983
- name: Configure git
8084
run: |
@@ -89,16 +93,17 @@ jobs:
8993
- name: Install neo including dependencies
9094
# installation with dependencies is only required if no cache was found
9195
# restore-key hits should result in `cache-hit` == 'false'
92-
if: steps.cache-conda-env.outputs.cache-hit != 'true'
96+
# if: steps.cache-conda-env.outputs.cache-hit != 'true'
9397
run: |
9498
pip install --upgrade -e .
9599
pip install .[test]
96100
97-
- name: Install neo without dependencies
101+
# TEST NOT USING CACHE
102+
#- name: Install neo without dependencies
98103
# only installing neo version to test as dependencies should be in cached conda env already
99-
if: steps.cache-conda-env.outputs.cache-hit == 'true'
100-
run: |
101-
pip install --no-dependencies -e .
104+
# if: steps.cache-conda-env.outputs.cache-hit == 'true'
105+
# run: |
106+
# pip install --no-dependencies -e .
102107

103108
- name: Install wine
104109
run: |
@@ -107,6 +112,14 @@ jobs:
107112
sudo apt-get update -qq
108113
sudo apt-get install -yqq --allow-downgrades libc6:i386 libgcc-s1:i386 libstdc++6:i386 wine
109114
115+
- name: Pip list
116+
run: |
117+
pip list
118+
119+
- name: Conda list
120+
run: |
121+
conda list
122+
110123
- name: Test with pytest
111124
env:
112125
HDF5_PLUGIN_PATH: ${{ github.workspace }}/hdf5_local_plugin_path

.gitignore

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,8 @@ doc/*.plx
7676
doc/*.nev
7777
doc/*.ns5
7878
doc/*.nix
79-
doc/*.nwb
79+
doc/*.nwb
80+
*.plx
81+
*.smr
82+
B95.zip
83+
grouped_ephys

LICENSE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Copyright (c) 2010-2024, Neo authors and contributors
1+
Copyright (c) 2010-2025, Neo authors and contributors
22
All rights reserved.
33

44
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

README.rst

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,13 @@ A project with similar aims but for neuroimaging file formats is `NiBabel`_.
3131
Code status
3232
-----------
3333

34+
.. image:: https://img.shields.io/pypi/v/neo.svg
35+
:target: https://pypi.python.org/pypi/neo
36+
:alt: PyPI Release Version
3437
.. image:: https://github.com/NeuralEnsemble/python-neo/actions/workflows/core-test.yml/badge.svg?event=push&branch=master
3538
:target: https://github.com/NeuralEnsemble/python-neo/actions?query=event%3Apush+branch%3Amaster
3639
:alt: Core Test Status (Github Actions)
37-
.. image:: https://github.com/NeuralEnsemble/python-neo/actions/workflows/io-test.yml/badge.svg?event=push&branch=master
40+
.. image:: https://github.com/NeuralEnsemble/python-neo/actions/workflows/io-test_trigger.yml/badge.svg?event=push&branch=master
3841
:target: https://github.com/NeuralEnsemble/python-neo/actions?query=event%3Apush+branch%3Amaster
3942
:alt: IO Test Status (Github Actions)
4043
.. image:: https://coveralls.io/repos/NeuralEnsemble/python-neo/badge.png
@@ -53,7 +56,7 @@ For installation instructions, see doc/source/install.rst
5356

5457
To cite Neo in publications, see CITATION.txt
5558

56-
:copyright: Copyright 2010-2024 by the Neo team, see doc/source/authors.rst.
59+
:copyright: Copyright 2010-2025 by the Neo team, see doc/source/authors.rst.
5760
:license: 3-Clause Revised BSD License, see LICENSE.txt for details.
5861

5962
Funding
@@ -64,7 +67,8 @@ grant agreement FETPI-015879 (FACETS), by the European Union Seventh Framework P
6467
under grant agreements no. 269921 (BrainScaleS) and no. 604102 (HBP),
6568
and by the European Union’s Horizon 2020 Framework Programme for
6669
Research and Innovation under the Specific Grant Agreements No. 720270 (Human Brain Project SGA1),
67-
No. 785907 (Human Brain Project SGA2) and No. 945539 (Human Brain Project SGA3).
70+
No. 785907 (Human Brain Project SGA2) and No. 945539 (Human Brain Project SGA3),
71+
and by the European Union's Research and Innovation Program Horizon Europe Grant Agreement No. 101147319 (EBRAINS 2.0).
6872

6973
.. _OpenElectrophy: https://github.com/OpenElectrophy/OpenElectrophy
7074
.. _Elephant: http://neuralensemble.org/elephant

codemeta.json

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@
44
"license": "https://spdx.org/licenses/BSD-3-Clause",
55
"codeRepository": "https://github.com/NeuralEnsemble/python-neo",
66
"contIntegration": "https://github.com/NeuralEnsemble/python-neo/actions",
7-
"dateModified": "2024-02-02",
8-
"downloadUrl": "https://files.pythonhosted.org/packages/b2/07/b8653dd235919dc13671fc31bd8bcbb57571e72d75e4cb04dc1347416357/neo-0.13.0.tar.gz",
7+
"dateModified": "2025-01-20",
8+
"downloadUrl": "https://files.pythonhosted.org/packages/3b/91/c3630d766b3b959f8e604d8d41580c78973ece5f1e070b13bd9755dba60b/neo-0.14.0.tar.gz",
99
"issueTracker": "https://github.com/NeuralEnsemble/python-neo/issues",
1010
"name": "Neo",
11-
"version": "0.13.0",
11+
"version": "0.14.0",
1212
"identifier": "RRID:SCR_000634",
1313
"description": "Neo is a Python package for working with electrophysiology data in Python, together with support for reading a wide range of neurophysiology file formats, including Spike2, NeuroExplorer, AlphaOmega, Axon, Blackrock, Plexon, Tdt, and support for writing to a subset of these formats plus non-proprietary formats including HDF5.\n\nThe goal of Neo is to improve interoperability between Python tools for analyzing, visualizing and generating electrophysiology data by providing a common, shared object model. In order to be as lightweight a dependency as possible, Neo is deliberately limited to represention of data, with no functions for data analysis or visualization.\n\nNeo is used by a number of other software tools, including SpykeViewer (data analysis and visualization), Elephant (data analysis), the G-node suite (databasing), PyNN (simulations), tridesclous_ (spike sorting) and ephyviewer (data visualization).\n\nNeo implements a hierarchical data model well adapted to intracellular and extracellular electrophysiology and EEG data with support for multi-electrodes (for example tetrodes). Neo's data objects build on the quantities package, which in turn builds on NumPy by adding support for physical dimensions. Thus Neo objects behave just like normal NumPy arrays, but with additional metadata, checks for dimensional consistency and automatic unit conversion.",
1414
"applicationCategory": "neuroscience",
15-
"releaseNotes": "https://neo.readthedocs.io/en/stable/releases/0.13.0.html",
15+
"releaseNotes": "https://neo.readthedocs.io/en/latest/releases/0.14.0.html",
1616
"funding": "https://cordis.europa.eu/project/id/945539",
1717
"developmentStatus": "active",
1818
"referencePublication": "https://doi.org/10.3389/fninf.2014.00010",
@@ -23,7 +23,7 @@
2323
"programmingLanguage": ["Python"],
2424
"operatingSystem": ["Linux", "Windows", "macOS"],
2525
"softwareRequirements": [
26-
"Python (version 3.8+)",
26+
"Python (version 3.9+)",
2727
"see https://github.com/NeuralEnsemble/python-neo/blob/master/pyproject.toml"
2828
],
2929
"relatedLink": ["https://neo.readthedocs.io", "https://neuralensemble.org/community"],
@@ -54,6 +54,7 @@
5454
{ "@type": "Person", "givenName": "Kyler", "familyName": "Brown" },
5555
{ "@type": "Person", "givenName": "Mikkel Elle", "familyName": "Lepperød" },
5656
{ "@type": "Person", "givenName": "C Daniel", "familyName": "Meliza" },
57+
{ "@type": "Person", "givenName": "Michael", "familyName": "Denker" },
5758
{ "@type": "Person", "givenName": "Julia", "familyName": "Sprenger" },
5859
{ "@type": "Person", "givenName": "Maximilian", "familyName": "Schmidt" },
5960
{ "@type": "Person", "givenName": "Johanna", "familyName": "Senk" },
@@ -103,6 +104,16 @@
103104
{ "@type": "Person", "givenName": "Cody", "familyName": "Baker" },
104105
{ "@type": "Person", "givenName": "Fernando J.", "familyName": "Chaure" },
105106
{ "@type": "Person", "alternateName": "Filipe@github" },
106-
{ "@type": "Person", "givenName": "Matthias Klumpp" }
107+
{ "@type": "Person", "givenName": "Matthias", "familyName": "Klumpp" },
108+
{ "@type": "Person", "givenName": "Greg", "familyName": "Knoll" },
109+
{ "@type": "Person", "givenName": "Chris", "familyName": "Halcrow" },
110+
{ "@type": "Person", "givenName": "Szonja", "familyName": "Weigl" },
111+
{ "@type": "Person", "givenName": "Teo", "familyName": "Lohrer"},
112+
{ "@type": "Person", "givenName": "Kyu Hun", "familyName": "Lee"},
113+
{ "@type": "Person", "givenName": "Xin", "familyName": "Niu"},
114+
{ "@type": "Person", "givenName": "Anthony", "familyName": "Pinto"},
115+
{ "@type": "Person", "givenName": "Chris", "familyName": "Heydrick"},
116+
{"@type": "Person", "givenName": "Nikhil", "familyName": "Chandra"},
117+
{"@type": "Person", "givenName": "Luigi", "familyName": "Petrucco"}
107118
]
108119
}

0 commit comments

Comments
 (0)