Skip to content

Commit add3360

Browse files
committed
Complete Phase 5 & 6: Docs Fixes, CI/CD, and Examples Restructure
1 parent 0f1f73b commit add3360

73 files changed

Lines changed: 255 additions & 10111 deletions

Some content is hidden

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

.github/workflows/publish.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Upload Python Package
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
deploy:
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Set up Python
18+
uses: actions/setup-python@v4
19+
with:
20+
python-version: "3.10"
21+
22+
- name: Install dependencies
23+
run: |
24+
python -m pip install --upgrade pip
25+
pip install -U uv
26+
27+
- name: Build package
28+
run: uv build
29+
30+
- name: Publish to PyPI
31+
uses: pypa/gh-action-pypi-publish@release/v1
32+
with:
33+
user: __token__
34+
password: ${{ secrets.PYPI_API_TOKEN }}

.github/workflows/test.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [ main, dev ]
6+
pull_request:
7+
branches: [ main, dev ]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
python-version: ["3.10"]
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Set up Python ${{ matrix.python-version }}
20+
uses: actions/setup-python@v4
21+
with:
22+
python-version: ${{ matrix.python-version }}
23+
24+
- name: Install dependencies
25+
run: |
26+
python -m pip install --upgrade pip
27+
pip install .[ml,gui]
28+
pip install pytest pytest-cov
29+
30+
- name: Run tests
31+
run: |
32+
pytest tests/

README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Python Open-Ephys
1+
# Python OEphys
22

33
A comprehensive Python toolkit for working with Open Ephys devices, featuring signal processing, machine learning, and real-time visualization tools. This package seamlessly integrates with the Open Ephys GUI via ZMQ.
44

@@ -87,9 +87,11 @@ print(results) # Status (Good/Bad) per channel
8787

8888
## Examples
8989
Check the `examples/` directory for complete scripts:
90-
- `examples/ml/train_cnn_lstm.py`: Train a gesture classifier.
91-
- `examples/integration/sync_multimodal_data.py`: Align EMG with 3D hand landmarks.
92-
- `examples/processing/run_channel_qc.py`: Run quality control checks.
90+
- `examples/gesture_classifier/2v2_train_model.py`: Train a gesture classifier.
91+
- `examples/synchronization/sync_multimodal_data.py`: Align EMG with 3D hand landmarks.
92+
- `examples/analysis/run_channel_qc.py`: Run quality control checks.
93+
- `examples/interface/zmq_client.py`: Real-time ZMQ client example.
94+
- `examples/read_files/example_load_oebin_file.py`: Load Open Ephys data.
9395

9496
## License
9597
MIT License. See [LICENSE](LICENSE) for details.

docs/source/conf.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Configuration file for the Sphinx documentation builder.
2+
3+
import os
4+
import sys
5+
sys.path.insert(0, os.path.abspath('../../src'))
6+
7+
project = 'python-oephys'
8+
copyright = '2025, Jonathan Shulgach'
9+
author = 'Jonathan Shulgach'
10+
release = '0.0.1'
11+
12+
extensions = [
13+
'sphinx.ext.autodoc',
14+
'sphinx.ext.napoleon',
15+
'sphinx.ext.viewcode',
16+
'sphinx_autodoc_typehints',
17+
'myst_parser',
18+
]
19+
20+
autodoc_mock_imports = [
21+
'open_ephys',
22+
'pylsl',
23+
'PyQt5',
24+
'pyqtgraph',
25+
'zmq'
26+
]
27+
28+
templates_path = ['_templates']
29+
exclude_patterns = []
30+
31+
html_theme = 'alabaster'
32+
html_static_path = ['_static']
33+
34+
autodoc_member_order = 'bysource'

docs/source/index.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
Welcome to python-oephys's documentation!
2+
=========================================
3+
4+
**python-oephys** is a comprehensive Python toolkit for working with Open Ephys devices, featuring signal processing, machine learning, and real-time visualization tools.
5+
6+
.. toctree::
7+
:maxdepth: 2
8+
:caption: Contents:
9+
10+
modules
11+
12+
Indices and tables
13+
==================
14+
15+
* :ref:`genindex`
16+
* :ref:`modindex`
17+
* :ref:`search`

docs/source/modules.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
pyoephys
2+
========
3+
4+
.. toctree::
5+
:maxdepth: 4
6+
7+
pyoephys
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
pyoephys.applications package
2+
=============================
3+
4+
.. automodule:: pyoephys.applications
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

docs/source/pyoephys.interface.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
pyoephys.interface package
2+
==========================
3+
4+
.. automodule:: pyoephys.interface
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

docs/source/pyoephys.io.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
pyoephys.io package
2+
===================
3+
4+
.. automodule:: pyoephys.io
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

docs/source/pyoephys.ml.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
pyoephys.ml package
2+
===================
3+
4+
.. automodule:: pyoephys.ml
5+
:members:
6+
:undoc-members:
7+
:show-inheritance:

0 commit comments

Comments
 (0)