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
10 changes: 5 additions & 5 deletions .github/workflows/caches_cron_job.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ name: Create caches for gin ecephys data and virtual env

on:
workflow_dispatch:
push: # When something is pushed into main this checks if caches need to be re-created
push: # When something is pushed into main this checks if caches need to be re-created
branches:
- main
schedule:
- cron: "0 12 * * *" # Daily at noon UTC
- cron: "0 12 * * *" # Daily at noon UTC

jobs:
create-gin-data-cache-if-missing:
Expand All @@ -19,10 +19,10 @@ jobs:
steps:
- uses: actions/setup-python@v6
with:
python-version: '3.11'
python-version: "3.10"
- uses: astral-sh/setup-uv@v7
with:
python-version: '3.11'
python-version: "3.10"
enable-cache: true
ignore-nothing-to-cache: true # some runs do not require building a cache (ie macOS) this says this is okay
- name: Create the directory to store the data
Expand All @@ -41,7 +41,7 @@ jobs:
with:
path: ~/spikeinterface_datasets
key: ${{ runner.os }}-datasets-${{ steps.repo_hash.outputs.dataset_hash }}
lookup-only: 'true' # Avoids downloading the data, saving behavior is not affected.
lookup-only: "true" # Avoids downloading the data, saving behavior is not affected.
- name: Cache found?
run: echo "Cache-hit == ${{steps.cache-datasets.outputs.cache-hit == 'true'}}"
shell: bash
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/core-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
branches:
- main

concurrency: # Cancel previous workflows on the same pull request
concurrency: # Cancel previous workflows on the same pull request
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

Expand All @@ -22,10 +22,10 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.11'
python-version: "3.10"
- uses: astral-sh/setup-uv@v7
with:
python-version: '3.11'
python-version: "3.10"
enable-cache: true
- name: Install dependencies
run: |
Expand All @@ -35,7 +35,7 @@ jobs:
- name: Test core with pytest
run: |
pytest -m "core" -vv -ra --durations=0 --durations-min=0.001 | tee report.txt; test $? -eq 0 || exit 1
shell: bash # Necessary for pipeline to work on windows
shell: bash # Necessary for pipeline to work on windows
- name: Build test summary
run: |
uv pip install --system pandas
Expand All @@ -45,4 +45,4 @@ jobs:
python ./.github/scripts/build_job_summary.py report.txt >> $GITHUB_STEP_SUMMARY
cat $GITHUB_STEP_SUMMARY
rm report.txt
shell: bash # Necessary for pipeline to work on windows
shell: bash # Necessary for pipeline to work on windows
18 changes: 9 additions & 9 deletions .github/workflows/cross_version_serialization.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ on:
# watches core only; a break introduced in generation/ or preprocessing/ would not
# trigger it.
paths:
- 'src/spikeinterface/core/**'
- '.github/scripts/serialization/**'
- '.github/workflows/cross_version_serialization.yml'
- "src/spikeinterface/core/**"
- ".github/scripts/serialization/**"
- ".github/workflows/cross_version_serialization.yml"
schedule:
- cron: '0 4 * * 0' # weekly, Sunday 04:00 UTC
- cron: "0 4 * * 0" # weekly, Sunday 04:00 UTC
workflow_dispatch:

concurrency:
Expand All @@ -43,13 +43,13 @@ jobs:
steps:
- uses: actions/setup-python@v6
with:
python-version: '3.11'
python-version: "3.10"
- id: set
env:
GITHUB_EVENT_NAME: ${{ github.event_name }}
# Support floor: oldest minor to test. Below this, installs fail on the CI
# Python (numcodecs dependency rot in 0.100/0.101). Raise when 0.102 rots.
MIN_VERSION_TO_TEST: "0.102" # We will change this when making breaking changes (hopefully not too often)
MIN_VERSION_TO_TEST: "0.102" # We will change this when making breaking changes (hopefully not too often)
run: |
python -m pip install -q packaging
available_versions=$(python -m pip index versions spikeinterface | sed -n 's/.*Available versions: //p')
Expand Down Expand Up @@ -93,17 +93,17 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.11'
python-version: "3.10"

- name: Set up uv
uses: astral-sh/setup-uv@v7
with:
python-version: '3.11'
python-version: "3.10"
enable-cache: false

- name: Generate fixtures with spikeinterface ${{ matrix.si-version }}
run: |
uv run --isolated --no-project --python 3.11 \
uv run --isolated --no-project --python 3.10 \
--with "spikeinterface[core]==${{ matrix.si-version }}" \
python .github/scripts/serialization/serialize_objects.py "$SI_SERIALIZATION_FIXTURES_DIR"

Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/deepinterpolation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
branches:
- main

concurrency: # Cancel previous workflows on the same pull request
concurrency: # Cancel previous workflows on the same pull request
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

Expand All @@ -22,10 +22,10 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.10'
python-version: "3.10"
- uses: astral-sh/setup-uv@v7
with:
python-version: '3.10'
python-version: "3.10"
enable-cache: false
- name: Get changed files
id: changed-files
Expand Down Expand Up @@ -55,4 +55,4 @@ jobs:
if: ${{ steps.modules-changed.outputs.DEEPINTERPOLATION_CHANGED == 'true' }}
run: |
pytest -v src/spikeinterface/preprocessing/deepinterpolation
shell: bash # Necessary for pipeline to work on windows
shell: bash # Necessary for pipeline to work on windows
11 changes: 4 additions & 7 deletions .github/workflows/test_containers_docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ name: Test sorter images in Docker

on: workflow_dispatch


jobs:
test-images:
name: Test on (${{ matrix.os }})
Expand All @@ -15,17 +14,15 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.10'
python-version: "3.10"
- uses: astral-sh/setup-uv@v7
with:
python-version: '3.10'
python-version: "3.10"
enable-cache: true
- name: Python version
run:
python --version
run: python --version
- name: Docker version
run:
docker --version
run: docker --version
- name: Install dependencies
run: |
uv pip install --system pytest
Expand Down
13 changes: 5 additions & 8 deletions .github/workflows/test_containers_singularity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ name: Test sorter images in singularity

on: workflow_dispatch


jobs:
test-images:
name: Test on (${{ matrix.os }})
Expand All @@ -11,25 +10,23 @@ jobs:
fail-fast: false
matrix:
# "macos-latest", "windows-latest"
os: ["ubuntu-latest", ]
os: ["ubuntu-latest"]
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: '3.10'
python-version: "3.10"
- uses: astral-sh/setup-uv@v7
with:
python-version: '3.10'
python-version: "3.10"
enable-cache: true
- uses: eWaterCycle/setup-singularity@v7
with:
singularity-version: 3.8.7
- name: Python version
run:
python --version
run: python --version
- name: Singularity version
run:
singularity --version
run: singularity --version
- name: Install dependencies
run: |
uv pip install --system pytest
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test_imports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ jobs:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: "3.11"
python-version: "3.10"
- uses: astral-sh/setup-uv@v7
with:
python-version: "3.11"
python-version: "3.10"
enable-cache: true
- name: Install Spikeinterface with only core dependencies
run: |
Expand Down
26 changes: 13 additions & 13 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -68,16 +68,15 @@ extractors = [
"pynwb>=2.6.0",
"hdmf-zarr>=0.11.0",
"pyedflib>=0.1.30",
"sonpy;python_version<'3.10'",
"lxml", # lxml for neuroscope
"scipy",
"ibllib>=3.4.1;python_version>='3.10'", # streaming IBL
"ibllib>=3.4.1", # streaming IBL
"pymatreader>=0.0.32", # For cell explorer matlab files
"zugbruecke>=0.2; sys_platform!='win32'", # For plexon2
]

streaming_extractors = [
"ibllib>=3.4.1;python_version>='3.10'", # streaming IBL
"ibllib>=3.4.1", # streaming IBL
# Following dependencies are for streaming with nwb files
"pynwb>=2.6.0",
"fsspec",
Expand All @@ -104,19 +103,19 @@ postprocessing = [
metrics = [
"scikit-learn<1.8",
"scipy",
"pandas<3",
"pandas",
"numba>=0.59",
]

comparison = [
"scipy",
"pandas<3",
"pandas",
"networkx",
]

generation = [
"scipy",
"pandas<3",
"pandas",
]

sorters = [
Expand Down Expand Up @@ -149,7 +148,7 @@ curation = [
"spikeinterface[metrics]",
"spikeinterface[postprocessing]",
"spikeinterface[comparison]",
"pandas<3",
"pandas",
"scikit-learn<1.8",
"skops",
"huggingface_hub",
Expand All @@ -160,7 +159,7 @@ curation = [
exporters = [
"spikeinterface[postprocessing]",
"spikeinterface[widgets]",
"pandas<3",
"pandas",
"pynapple",
]

Expand Down Expand Up @@ -221,9 +220,9 @@ docs = [

# for notebooks in the gallery
"MEArec", # Use as an example
"pandas<3", # in the modules gallery comparison tutorial
"pandas", # in the modules gallery comparison tutorial
"hdbscan>=0.8.33", # For sorters spykingcircus2 + tridesclous
"numba", # For many postprocessing functions
"numba>=0.59", # For many postprocessing functions
"networkx",
"seaborn",
"skops", # For automated curation
Expand All @@ -248,7 +247,7 @@ test-common = [

test-core = [
{include-group = "test-common"},
"pandas<3",
"pandas",
]

test-extractors = [
Expand All @@ -270,15 +269,15 @@ test-streaming-extractors = [

test-preprocessing = [
{include-group = "test-common"},
"ibllib>=3.4.1;python_version>='3.10'",
"ibllib>=3.4.1",
"pooch",
"datalad",
"torch", # preprocessing tests exercise sortingcomponents.motion.dredge
]

test-postprocessing = [
{include-group = "test-common"},
"pandas<3",
"pandas",
]
test-metrics = [{include-group = "test-common"}]

Expand All @@ -305,6 +304,7 @@ test-widgets = [
"scikit-learn",
"pyvips",
"networkx",
"upsetplot-bombcell", # pandas>=3 compatible fork used by BombcellUpsetPlotWidget
]

test-exporters = [{include-group = "test-common"}]
Expand Down
2 changes: 1 addition & 1 deletion readthedocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version: 2
build:
os: "ubuntu-24.04"
tools:
python: "3.10"
python: "3.13"
commands:
- asdf plugin add uv
- asdf install uv latest
Expand Down
3 changes: 0 additions & 3 deletions src/spikeinterface/extractors/tests/test_iblextractors.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@
EID = "e2b845a1-e313-4a08-bc61-a5f662ed295e"
PID = "80f6ffdd-f692-450f-ab19-cd6d45bfd73e"

if sys.version_info < (3, 10):
pytest.skip("IBL support requires Python 3.10 or higher", allow_module_level=True)


@pytest.mark.streaming_extractors
class TestDefaultIblRecordingExtractorApBand(TestCase):
Expand Down
28 changes: 14 additions & 14 deletions src/spikeinterface/extractors/tests/test_neoextractors.py
Original file line number Diff line number Diff line change
Expand Up @@ -392,20 +392,20 @@ class Spike2RecordingTest(RecordingCommonTestSuite, unittest.TestCase):
]


@pytest.mark.skipif(
version.parse(platform.python_version()) >= version.parse("3.10") or platform.system() == "Darwin",
reason="Sonpy only testing with Python < 3.10 and not supported on macOS!",
)
class CedRecordingTest(RecordingCommonTestSuite, unittest.TestCase):
ExtractorClass = CedRecordingExtractor
downloads = [
"spike2/130322-1LY.smr",
"spike2/m365_1sec.smrx",
]
entities = [
("spike2/130322-1LY.smr", {"stream_id": "1"}),
"spike2/m365_1sec.smrx",
]
# @pytest.mark.skipif(
# version.parse(platform.python_version()) >= version.parse("3.10") or platform.system() == "Darwin",
# reason="Sonpy only testing with Python < 3.10 and not supported on macOS!",
# )
# class CedRecordingTest(RecordingCommonTestSuite, unittest.TestCase):
# ExtractorClass = CedRecordingExtractor
# downloads = [
# "spike2/130322-1LY.smr",
# "spike2/m365_1sec.smrx",
# ]
# entities = [
# ("spike2/130322-1LY.smr", {"stream_id": "1"}),
# "spike2/m365_1sec.smrx",
# ]


@pytest.mark.skipif(platform.system() == "Darwin", reason="Maxwell plugin not supported on macOS")
Expand Down
Loading
Loading