spikesorted 0.1.0a3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,62 @@
1
+ name: tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '*'
7
+ tags:
8
+ - '*'
9
+ pull_request:
10
+
11
+ jobs:
12
+ linting:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: neuroinformatics-unit/actions/lint@v2
16
+
17
+ test:
18
+ needs: [linting]
19
+ name: ${{ matrix.os }} py${{ matrix.python-version }}
20
+ runs-on: ${{ matrix.os }}
21
+ strategy:
22
+ matrix:
23
+ # Run all supported Python versions on linux
24
+ python-version: ["3.11", "3.12", "3.13"]
25
+ os: [ubuntu-latest]
26
+ # Include one windows and macos run
27
+ include:
28
+ - os: macos-latest
29
+ python-version: "3.13"
30
+ - os: windows-latest
31
+ python-version: "3.13"
32
+
33
+ steps:
34
+ # Run tests
35
+ - uses: neuroinformatics-unit/actions/test@v2
36
+ with:
37
+ python-version: ${{ matrix.python-version }}
38
+
39
+ build_sdist_wheels:
40
+ name: Build source distribution
41
+ needs: [test]
42
+ if: github.event_name == 'push' && github.ref_type == 'tag'
43
+ runs-on: ubuntu-latest
44
+ steps:
45
+ - uses: neuroinformatics-unit/actions/build_sdist_wheels@v2
46
+
47
+
48
+ upload_all:
49
+ name: Publish build distributions
50
+ needs: [build_sdist_wheels]
51
+ runs-on: ubuntu-latest
52
+ environment: # use Trusted Publisher route
53
+ name: pypi
54
+ url: https://pypi.org/p/${{ github.event.repository.name }}
55
+ permissions:
56
+ id-token: write # mandatory for trusted publishing
57
+ steps:
58
+ - uses: actions/download-artifact@v8
59
+ with:
60
+ name: artifact
61
+ path: dist
62
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,92 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ env/
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ *.egg-info/
24
+ .installed.cfg
25
+ *.egg
26
+
27
+ # PyInstaller
28
+ # Usually these files are written by a python script from a template
29
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
30
+ *.manifest
31
+ *.spec
32
+
33
+ # Installer logs
34
+ pip-log.txt
35
+ pip-delete-this-directory.txt
36
+
37
+ # Unit test / coverage reports
38
+ htmlcov/
39
+ .tox/
40
+ .coverage
41
+ .coverage.*
42
+ .cache
43
+ nosetests.xml
44
+ coverage.xml
45
+ *,cover
46
+ .hypothesis/
47
+
48
+ # Translations
49
+ *.mo
50
+ *.pot
51
+
52
+ # Django stuff:
53
+ *.log
54
+ local_settings.py
55
+
56
+ # Flask instance folder
57
+ instance/
58
+
59
+ # Sphinx documentation
60
+ docs/_build/
61
+
62
+ # MkDocs documentation
63
+ /site/
64
+
65
+ # PyBuilder
66
+ target/
67
+
68
+ # Pycharm and VSCode
69
+ .idea/
70
+ venv/
71
+ .vscode/
72
+
73
+ # IPython Notebook
74
+ .ipynb_checkpoints
75
+
76
+ # pyenv
77
+ .python-version
78
+
79
+ # OS
80
+ .DS_Store
81
+
82
+ # written by setuptools-scm
83
+ **/_version.py
84
+
85
+ /tests/data/neuropixels-1300-openephys/
86
+ /tests/data/neuropixels-2010-spikeglx/
87
+ /tests/data/no-probe-openephys/
88
+
89
+ /tests/data/cambridge-neurotech-64/
90
+
91
+ /tests/data/.archives/
92
+
@@ -0,0 +1,28 @@
1
+
2
+ Copyright (c) 2026, Joe Ziminski
3
+ All rights reserved.
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ * Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ * Neither the name of spikesorted nor the names of its
16
+ contributors may be used to endorse or promote products derived from
17
+ this software without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,8 @@
1
+ include LICENSE
2
+ include README.md
3
+ exclude .pre-commit-config.yaml
4
+
5
+ recursive-exclude * __pycache__
6
+ recursive-exclude * *.py[co]
7
+ recursive-exclude docs *
8
+ recursive-exclude tests *
@@ -0,0 +1,35 @@
1
+ Metadata-Version: 2.4
2
+ Name: spikesorted
3
+ Version: 0.1.0a3
4
+ Summary: `spikesorted` is an end-to-end spike sorting pipeline
5
+ Author-email: Joe Ziminski <joseph.j.ziminski@gmail.com>
6
+ License-Expression: BSD-3-Clause
7
+ Classifier: Development Status :: 2 - Pre-Alpha
8
+ Classifier: Programming Language :: Python
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Programming Language :: Python :: 3.13
13
+ Classifier: Operating System :: OS Independent
14
+ Requires-Python: >=3.11.0
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Provides-Extra: dev
18
+ Requires-Dist: pytest; extra == "dev"
19
+ Requires-Dist: pytest-cov; extra == "dev"
20
+ Requires-Dist: coverage; extra == "dev"
21
+ Requires-Dist: tox; extra == "dev"
22
+ Requires-Dist: mypy; extra == "dev"
23
+ Requires-Dist: pre-commit; extra == "dev"
24
+ Requires-Dist: ruff==0.16.10; extra == "dev"
25
+ Requires-Dist: codespell; extra == "dev"
26
+ Requires-Dist: check-manifest; extra == "dev"
27
+ Requires-Dist: setuptools-scm; extra == "dev"
28
+ Dynamic: license-file
29
+
30
+ # spikesorted
31
+
32
+ An end-to-end pipeline for spike sorting extracellular electrophysiology recordings.
33
+
34
+ Pre-alpha: the pipeline is under development. This checkout currently contains
35
+ project scaffolding and example modules.
@@ -0,0 +1,6 @@
1
+ # spikesorted
2
+
3
+ An end-to-end pipeline for spike sorting extracellular electrophysiology recordings.
4
+
5
+ Pre-alpha: the pipeline is under development. This checkout currently contains
6
+ project scaffolding and example modules.
@@ -0,0 +1,155 @@
1
+ [project]
2
+ name = "spikesorted"
3
+ authors = [{name = "Joe Ziminski", email= "joseph.j.ziminski@gmail.com"}]
4
+ description = "`spikesorted` is an end-to-end spike sorting pipeline"
5
+ readme = "README.md"
6
+ requires-python = ">=3.11.0"
7
+ dynamic = ["version"]
8
+
9
+ dependencies = []
10
+
11
+ license = "BSD-3-Clause"
12
+
13
+ license-files = ["LICENSE"]
14
+
15
+ classifiers = [
16
+ "Development Status :: 2 - Pre-Alpha",
17
+ "Programming Language :: Python",
18
+ "Programming Language :: Python :: 3",
19
+ "Programming Language :: Python :: 3.11",
20
+ "Programming Language :: Python :: 3.12",
21
+ "Programming Language :: Python :: 3.13",
22
+ "Operating System :: OS Independent",
23
+ ]
24
+
25
+
26
+
27
+ [project.optional-dependencies]
28
+ dev = [
29
+ "pytest",
30
+ "pytest-cov",
31
+ "coverage",
32
+ "tox",
33
+ "mypy",
34
+ "pre-commit",
35
+ "ruff==0.16.10",
36
+ "codespell",
37
+ "check-manifest",
38
+ "setuptools-scm",
39
+ ]
40
+
41
+ [dependency-groups]
42
+ docs = [
43
+ "linkify-it-py",
44
+ "myst-parser",
45
+ "nbsphinx",
46
+ "pydata-sphinx-theme",
47
+ "setuptools-scm",
48
+ "sphinx",
49
+ "sphinx-autodoc-typehints",
50
+ "sphinx-sitemap",
51
+ ]
52
+
53
+ [build-system]
54
+ requires = [
55
+ "setuptools>=77",
56
+ "wheel",
57
+ "setuptools-scm[toml]>=8",
58
+ ]
59
+ build-backend = "setuptools.build_meta"
60
+
61
+ [tool.setuptools]
62
+ include-package-data = true
63
+
64
+ [tool.setuptools.packages.find]
65
+ include = ["spikesorted*"]
66
+ exclude = ["tests", "docs*"]
67
+
68
+
69
+ [tool.pytest.ini_options]
70
+ addopts = "--cov=spikesorted"
71
+ filterwarnings = [
72
+ "error",
73
+ ]
74
+
75
+ [tool.setuptools_scm]
76
+ search_parent_directories = true
77
+
78
+ [tool.check-manifest]
79
+ ignore = [
80
+ "*.yaml",
81
+ "tox.ini",
82
+ "tests/",
83
+ "tests/test_unit/",
84
+ "tests/test_integration/",
85
+ "docs/",
86
+ "docs/source/",
87
+ ]
88
+
89
+
90
+ [tool.ruff]
91
+ line-length = 88
92
+ extend-exclude = ["__init__.py", "build", ".eggs", ".venv-docs"]
93
+ fix = true
94
+
95
+ [tool.ruff.lint]
96
+ # See https://docs.astral.sh/ruff/rules/
97
+ ignore = [
98
+ "D203", # one blank line before class
99
+ "D213", # multi-line-summary second line
100
+ ]
101
+ select = [
102
+ "E", # pycodestyle errors
103
+ "F", # Pyflakes
104
+ "UP", # pyupgrade
105
+ "I", # isort
106
+ "B", # flake8 bugbear
107
+ "SIM", # flake8 simplify
108
+ "C90", # McCabe complexity
109
+ "D", # pydocstyle
110
+ "NPY201", # checks for syntax that was deprecated in numpy2.0
111
+ ]
112
+ per-file-ignores = { "**/tests/**" = [
113
+ "D100", # missing docstring in public module
114
+ "D205", # missing blank line between summary and description
115
+ "D103", # missing docstring in public function
116
+ ], "**/examples/**" = [
117
+ "B018", # Found useless expression
118
+ "D103", # Missing docstring in public function
119
+ "D400", # first line should end with a period.
120
+ "D415", # first line should end with a period, question mark...
121
+ "D205", # missing blank line between summary and description
122
+ ] }
123
+
124
+ [tool.ruff.format]
125
+ docstring-code-format = true # Also format code in docstrings
126
+
127
+ [tool.tox]
128
+ legacy_tox_ini = """
129
+ [tox]
130
+ requires =
131
+ tox>=4
132
+ tox-gh-actions
133
+ envlist = py{311,312,313}
134
+ isolated_build = True
135
+
136
+ [gh-actions]
137
+ python =
138
+ 3.11: py311
139
+ 3.12: py312
140
+ 3.13: py313
141
+
142
+ [testenv]
143
+ passenv =
144
+ CI
145
+ GITHUB_ACTIONS
146
+ extras =
147
+ dev
148
+ commands =
149
+ pytest -v --color=yes --cov=spikesorted --cov-report=xml
150
+ """
151
+
152
+
153
+ [tool.codespell]
154
+ skip = '.git,.tox,.venv-docs'
155
+ check-hidden = true
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,7 @@
1
+ from importlib.metadata import PackageNotFoundError, version
2
+
3
+ try:
4
+ __version__ = version("spikesorted")
5
+ except PackageNotFoundError:
6
+ # package is not installed
7
+ pass
@@ -0,0 +1,40 @@
1
+ # Define an example class to demonstrate
2
+ # Sphinx's autodoc and autosummary features:
3
+ # https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html
4
+ # https://www.sphinx-doc.org/en/master/usage/extensions/autosummary.html
5
+
6
+ # Docstrings are written in NumPy format:
7
+ # https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_numpy.html
8
+
9
+
10
+ class Greetings:
11
+ """
12
+ A simple example class
13
+
14
+ Attributes
15
+ ----------
16
+ name : str
17
+ The name of the person to greet
18
+
19
+ Methods
20
+ -------
21
+ say_hello
22
+ Say hello to the person
23
+ say_goodbye
24
+ Say goodbye to the person
25
+ """
26
+
27
+ def __init__(self, name):
28
+ self.name = name
29
+
30
+ def say_hello(self):
31
+ """
32
+ Say hello to the person
33
+ """
34
+ print(f"Hello {self.name}!")
35
+
36
+ def say_goodbye(self):
37
+ """
38
+ Say goodbye to the person
39
+ """
40
+ print(f"Goodbye {self.name}!")
@@ -0,0 +1,43 @@
1
+ # Define some example functions to demonstrate
2
+ # Sphinx's autodoc and autosummary features:
3
+ # https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html
4
+ # https://www.sphinx-doc.org/en/master/usage/extensions/autosummary.html
5
+
6
+ # Docstrings are written in NumPy format:
7
+ # https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_numpy.html
8
+
9
+
10
+ def add_two_integers(a: int, b: int) -> int:
11
+ """Add two integer numbers.
12
+
13
+ Parameters
14
+ ----------
15
+ a : int
16
+ The first number.
17
+ b : int
18
+ The second number.
19
+
20
+ Returns
21
+ -------
22
+ int
23
+ The sum of the two numbers.
24
+ """
25
+ return a + b
26
+
27
+
28
+ def subtract_two_integers(a: int, b: int) -> int:
29
+ """Subtract two integer numbers.
30
+
31
+ Parameters
32
+ ----------
33
+ a : int
34
+ The first number.
35
+ b : int
36
+ The second number.
37
+
38
+ Returns
39
+ -------
40
+ int
41
+ The difference of the two numbers.
42
+ """
43
+ return a - b
@@ -0,0 +1,35 @@
1
+ Metadata-Version: 2.4
2
+ Name: spikesorted
3
+ Version: 0.1.0a3
4
+ Summary: `spikesorted` is an end-to-end spike sorting pipeline
5
+ Author-email: Joe Ziminski <joseph.j.ziminski@gmail.com>
6
+ License-Expression: BSD-3-Clause
7
+ Classifier: Development Status :: 2 - Pre-Alpha
8
+ Classifier: Programming Language :: Python
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Programming Language :: Python :: 3.13
13
+ Classifier: Operating System :: OS Independent
14
+ Requires-Python: >=3.11.0
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Provides-Extra: dev
18
+ Requires-Dist: pytest; extra == "dev"
19
+ Requires-Dist: pytest-cov; extra == "dev"
20
+ Requires-Dist: coverage; extra == "dev"
21
+ Requires-Dist: tox; extra == "dev"
22
+ Requires-Dist: mypy; extra == "dev"
23
+ Requires-Dist: pre-commit; extra == "dev"
24
+ Requires-Dist: ruff==0.16.10; extra == "dev"
25
+ Requires-Dist: codespell; extra == "dev"
26
+ Requires-Dist: check-manifest; extra == "dev"
27
+ Requires-Dist: setuptools-scm; extra == "dev"
28
+ Dynamic: license-file
29
+
30
+ # spikesorted
31
+
32
+ An end-to-end pipeline for spike sorting extracellular electrophysiology recordings.
33
+
34
+ Pre-alpha: the pipeline is under development. This checkout currently contains
35
+ project scaffolding and example modules.
@@ -0,0 +1,16 @@
1
+ .gitignore
2
+ LICENSE
3
+ MANIFEST.in
4
+ README.md
5
+ pyproject.toml
6
+ .github/workflows/test_and_deploy.yml
7
+ spikesorted/__init__.py
8
+ spikesorted/greetings.py
9
+ spikesorted/math.py
10
+ spikesorted.egg-info/PKG-INFO
11
+ spikesorted.egg-info/SOURCES.txt
12
+ spikesorted.egg-info/dependency_links.txt
13
+ spikesorted.egg-info/requires.txt
14
+ spikesorted.egg-info/scm_file_list.json
15
+ spikesorted.egg-info/scm_version.json
16
+ spikesorted.egg-info/top_level.txt
@@ -0,0 +1,12 @@
1
+
2
+ [dev]
3
+ pytest
4
+ pytest-cov
5
+ coverage
6
+ tox
7
+ mypy
8
+ pre-commit
9
+ ruff==0.16.10
10
+ codespell
11
+ check-manifest
12
+ setuptools-scm
@@ -0,0 +1,36 @@
1
+ {
2
+ "files": [
3
+ ".github\\workflows\\test_and_deploy.yml",
4
+ ".gitignore",
5
+ ".pre-commit-config.yaml",
6
+ "LICENSE",
7
+ "MANIFEST.in",
8
+ "README.md",
9
+ "docs\\Makefile",
10
+ "docs\\make.bat",
11
+ "docs\\source\\_static\\css\\custom.css",
12
+ "docs\\source\\_static\\css\\docs.css",
13
+ "docs\\source\\_static\\css\\landing.css",
14
+ "docs\\source\\_static\\js\\landing.js",
15
+ "docs\\source\\api_generated\\spikesorted.greetings.Greetings.rst",
16
+ "docs\\source\\api_generated\\spikesorted.math.add_two_integers.rst",
17
+ "docs\\source\\api_generated\\spikesorted.math.subtract_two_integers.rst",
18
+ "docs\\source\\api_index.rst",
19
+ "docs\\source\\conf.py",
20
+ "docs\\source\\getting_started.md",
21
+ "docs\\source\\includes\\home.html",
22
+ "docs\\source\\index.rst",
23
+ "docs\\source\\tutorials\\index.md",
24
+ "docs\\source\\tutorials\\steps\\bad_channel_detection.md",
25
+ "pyproject.toml",
26
+ "spikesorted\\__init__.py",
27
+ "spikesorted\\greetings.py",
28
+ "spikesorted\\math.py",
29
+ "tests\\__init__.py",
30
+ "tests\\data\\README.md",
31
+ "tests\\data\\fetch_test_data.py",
32
+ "tests\\test_integration\\__init__.py",
33
+ "tests\\test_unit\\__init__.py",
34
+ "tests\\test_unit\\test_placeholder.py"
35
+ ]
36
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.1.0a3",
3
+ "distance": 0,
4
+ "node": "g03dfb32c6ff6752c804c5cff0344ae3754797f3c",
5
+ "dirty": false,
6
+ "branch": "main",
7
+ "node_date": "2026-10-20"
8
+ }
@@ -0,0 +1 @@
1
+ spikesorted