Skip to content

Commit ba44cb6

Browse files
authored
Merge branch 'master' into fix_axonarawio
2 parents 03affe4 + 1c58cb3 commit ba44cb6

Some content is hidden

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

63 files changed

+1742
-676
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: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,43 @@ jobs:
2525
fail-fast: true
2626
matrix:
2727
os: ["ubuntu-latest", "windows-latest", "macos-latest"]
28-
python-version: ['3.9', '3.10', '3.11', '3.12']
29-
numpy-version: ['1.22.4', '1.23.5', '1.24.1', '1.25.1', '1.26.4']
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']
3030
# 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.9'
33+
numpy-version: '2.1'
3234
- python-version: '3.11'
3335
numpy-version: '1.22.4'
3436
- python-version: '3.12'
3537
numpy-version: '1.22.4'
3638
- python-version: '3.12'
3739
numpy-version: '1.23.5'
3840
- python-version: '3.12'
39-
numpy-version: '1.24.1'
41+
numpy-version: '1.24.4'
4042
- python-version: '3.12'
4143
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+
4257
steps:
4358
- name: Set up Python ${{ matrix.python-version }}
44-
uses: actions/setup-python@v4
59+
uses: actions/setup-python@v5
4560
with:
4661
python-version: ${{ matrix.python-version }}
4762

4863
- name: Checkout repository
49-
uses: actions/checkout@v3
64+
uses: actions/checkout@v4
5065

5166
- name: Install numpy ${{ matrix.numpy-version }}
5267
run: |

.github/workflows/io-test.yml

Lines changed: 46 additions & 27 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 }}) (${{ matrix.python-version}})
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', '3.11.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,34 +49,51 @@ 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
78-
conda install python=${{ matrix.python-version }}
79+
conda install 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
82+
83+
- name: Install git-annex
84+
# this is the trick from the spikeinterface repo for getting git-annex to work with datalad
85+
shell: bash
86+
run: |
87+
pip install datalad-installer
88+
wget https://downloads.kitenet.net/git-annex/linux/current/git-annex-standalone-amd64.tar.gz
89+
mkdir /home/runner/work/installation
90+
mv git-annex-standalone-amd64.tar.gz /home/runner/work/installation/
91+
workdir=$(pwd)
92+
cd /home/runner/work/installation
93+
tar xvzf git-annex-standalone-amd64.tar.gz
94+
echo "$(pwd)/git-annex.linux" >> $GITHUB_PATH
95+
cd $workdir
96+
git config --global filter.annex.process "git-annex filter-process" # recommended for efficiency
7997
8098
- name: Configure git
8199
run: |
@@ -90,16 +108,17 @@ jobs:
90108
- name: Install neo including dependencies
91109
# installation with dependencies is only required if no cache was found
92110
# restore-key hits should result in `cache-hit` == 'false'
93-
if: steps.cache-conda-env.outputs.cache-hit != 'true'
111+
# if: steps.cache-conda-env.outputs.cache-hit != 'true'
94112
run: |
95113
pip install --upgrade -e .
96114
pip install .[test]
97115
98-
- name: Install neo without dependencies
116+
# TEST NOT USING CACHE
117+
#- name: Install neo without dependencies
99118
# only installing neo version to test as dependencies should be in cached conda env already
100-
if: steps.cache-conda-env.outputs.cache-hit == 'true'
101-
run: |
102-
pip install --no-dependencies -e .
119+
# if: steps.cache-conda-env.outputs.cache-hit == 'true'
120+
# run: |
121+
# pip install --no-dependencies -e .
103122

104123
- name: Install wine
105124
run: |

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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ For installation instructions, see doc/source/install.rst
5656

5757
To cite Neo in publications, see CITATION.txt
5858

59-
: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.
6060
:license: 3-Clause Revised BSD License, see LICENSE.txt for details.
6161

6262
Funding

codemeta.json

Lines changed: 6 additions & 5 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-10-14",
8-
"downloadUrl": "https://files.pythonhosted.org/packages/e0/0d/e973b7e8464b6f1d88022c46040f203d93c0b080af0e33702bb11873dbbb/neo-0.13.4.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.4",
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/latest/releases/0.13.4.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",
@@ -113,6 +113,7 @@
113113
{ "@type": "Person", "givenName": "Xin", "familyName": "Niu"},
114114
{ "@type": "Person", "givenName": "Anthony", "familyName": "Pinto"},
115115
{ "@type": "Person", "givenName": "Chris", "familyName": "Heydrick"},
116-
{"@type": "Person", "givenName": "Nikhil", "familyName": "Chandra"}
116+
{"@type": "Person", "givenName": "Nikhil", "familyName": "Chandra"},
117+
{"@type": "Person", "givenName": "Luigi", "familyName": "Petrucco"}
117118
]
118119
}

doc/source/authors.rst

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,13 @@ and may not be the current affiliation of a contributor.
8989
* Anthony Pinto [41]
9090
* Xin Niu
9191
* Nikhil Chandra [40]
92-
* Letizia Signorelli [42]
92+
* Luigi Petrucco [42]
93+
* Tommaso Lambresa [43]
94+
* Nina Kudryashova [37]
95+
* Rémi Proville [44]
96+
* Letizia Signorelli [45]
9397

94-
95-
1. Centre de Recherche en Neuroscience de Lyon, CNRS UMR5292 - INSERM U1028 - Universite Claude Bernard Lyon 1
98+
1. Centre de Recherche en Neuroscience de Lyon, CNRS UMR5292 - INSERM U1028 - Université Claude Bernard Lyon 1
9699
2. Unité de Neuroscience, Information et Complexité, CNRS UPR 3293, Gif-sur-Yvette, France
97100
3. University of California, Berkeley
98101
4. Laboratoire de Neurosciences Intégratives et Adaptatives, CNRS UMR 6149 - Université de Provence, Marseille, France
@@ -133,7 +136,10 @@ and may not be the current affiliation of a contributor.
133136
39. Massachusetts General Hospital, Department of Molecular Biology
134137
40. Plexon Inc.
135138
41. Paris Brain Institute
136-
42. Centre for Molecular Medicine Norway (NCMM), University of Oslo, Norway
139+
42. Istituto Italiano di Tecnologia (IIT), Italy
140+
43. University of Genoa, Italy
141+
44. AquiNeuro, SAS
142+
45. Centre for Molecular Medicine Norway (NCMM), University of Oslo, Norway
137143

138144

139145

doc/source/releases.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Release notes
66
.. toctree::
77
:maxdepth: 1
88

9+
releases/0.14.0.rst
910
releases/0.13.4.rst
1011
releases/0.13.3.rst
1112
releases/0.13.2.rst

0 commit comments

Comments
 (0)