Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
fec6555
Update conf.py
bimac Oct 29, 2025
3f9750b
Update schema.rst
bimac Oct 29, 2025
228b952
Update publish.yaml
bimac Oct 30, 2025
d26eece
replaced unmaintained `appdirs` dependency with `platformdirs`
bimac Dec 18, 2025
3136091
use `user_config_path` instead of `user_config_dir`
bimac Dec 18, 2025
f7e1fe6
Update test_misc.py
bimac Dec 18, 2025
842b61d
simplify interface for `misc.SettingsDict`
bimac Dec 18, 2025
cbf32a5
switch to zero-based indexing for global counters, timers, and condit…
bimac Jan 13, 2026
5e0ea16
add FAQ section to documentation
bimac Jan 13, 2026
e5d19e3
fix: use one-based indexing for softcodes and app softcodes in event …
bimac Jan 13, 2026
017d7f4
update: refine FAQ section with detailed guidance for Linux Bpod conn…
bimac Jan 13, 2026
2c2056c
add: implement `find_ports` utility with flexible filtering and corre…
bimac Jan 15, 2026
0e8834c
refactor: streamline `Bpod._identify_bpod` and related logic, introdu…
bimac Jan 15, 2026
197e5ca
add: tests for `verify_serial_discovery` covering success, failure, t…
bimac Jan 15, 2026
f20d5a3
fix: adjust `verify_serial_discovery` test to handle proper exception…
bimac Jan 15, 2026
bd13ca0
add: integrate file locking for thread-safe `SettingsDict` operations…
bimac Jan 16, 2026
2e5cf7c
changed: `SettingsDict` skips writes for unchanged values
bimac Jan 16, 2026
c0ef3f3
refactor: rename `DeviceSettings` to `BpodSettings`, add `BpodInfo` s…
bimac Jan 18, 2026
ddb316a
add: `extend_packed` utility function with tests and integrate into s…
bimac Jan 19, 2026
6af7685
refactor: adjust `extend_packed` to use `Iterable` for flexibility an…
bimac Jan 19, 2026
cdfeb55
remove: tests for compiled `struct.Struct` usage in `extend_packed` s…
bimac Jan 19, 2026
abce293
refactor: replace `Iterable` with `Sequence` in `extend_packed` for s…
bimac Jan 19, 2026
c62ff0f
add: import example for `extend_packed` in docstring for clarity in u…
bimac Jan 19, 2026
65cd7cd
clarify: expand `extend_packed` docstring with detailed explanation, …
bimac Jan 19, 2026
1f5af9a
fix: handle empty `extend_packed` values gracefully, add test for no …
bimac Jan 19, 2026
64df0c0
remove: unused `lru_cache` import from `bpod_core/misc.py`
bimac Jan 19, 2026
dbe62bf
use zero indexing for global timers, global counters, conditions and …
bimac Jan 19, 2026
b41a728
refactor: replace `list` with `Iterable` for flexibility in `suggest_…
bimac Jan 19, 2026
ff9d0e8
clarify: add comments for empty state machine and unreachable state c…
bimac Jan 19, 2026
50177de
add: integer and boolean read/write methods in `ExtendedSerial` with …
bimac Jan 20, 2026
000b03b
refactor: reorder and restore `write_struct` and `read_struct` method…
bimac Jan 20, 2026
a2a2a9c
Update CHANGELOG.md
bimac Jan 20, 2026
b00c8d8
refactor: enhance typing annotations, streamline code, and improve co…
bimac Jan 21, 2026
04e47f4
refactor: simplify `_serial_number` handling by removing redundant `s…
bimac Jan 21, 2026
c3d6163
update: reorganize and clarify developer guide and FAQ sections, impr…
bimac Jan 27, 2026
4edaff2
clarify: add warning about bpod-core being under development in READM…
bimac Jan 27, 2026
7d6d24e
add: `DocstringInheritanceMixin` for automatic inheritance of method …
bimac Jan 27, 2026
286addb
Update uv.lock
bimac Jan 27, 2026
53ff8e8
pin sphinx to <= 8.2.3
bimac Jan 27, 2026
b72e1c7
update: bump `astral-sh/setup-uv` to v7 and add `python-version: 3.13…
bimac Jan 27, 2026
f5e09a6
update: migrate documentation workflow to use `upload-pages-artifact`…
bimac Jan 27, 2026
83efc07
add: define `AbstractBpod` base class, refactor `Bpod` and `RemoteBpo…
bimac Jan 27, 2026
cc66fa0
adding event type decoding to FSMThread
MathiasMahn Jan 8, 2026
3471d86
additional debugging and working global counter SM and run added
MathiasMahn Jan 9, 2026
df7a551
extended debug logging to include event_names. Fixed global counter i…
MathiasMahn Jan 9, 2026
0acc9d7
refactor `load_serial_message` and move to `bpod.Module` class
bimac Jan 27, 2026
9ba8467
please ruff
bimac Jan 27, 2026
c3d0d09
reorganize examples
bimac Jan 27, 2026
20f8714
refactor: remove redundant debug checks and logs
bimac Jan 27, 2026
231518f
Update CHANGELOG.md
bimac Jan 27, 2026
4d1be1c
Merge pull request #48 from int-brain-lab/pr/46_changes
bimac Jan 27, 2026
2be7a41
refactor: integrate `USBSerialDevice` as base for `Bpod`
bimac Feb 5, 2026
a181700
Update bpod.py
bimac Feb 5, 2026
6eef0f9
Update bpod.py
bimac Feb 5, 2026
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
31 changes: 23 additions & 8 deletions .github/workflows/documentation.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,37 @@ on:
- 'bpod_core/**'

permissions:
contents: write
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: true

jobs:
docs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v6
- uses: astral-sh/setup-uv@v7
with:
python-version: 3.13
- uses: ts-graphviz/setup-graphviz@v2
- name: sync dependencies
run: uv sync --no-default-groups --group doc
- name: build documentation
run: uv run sphinx-build docs/source docs/build
- uses: peaceiris/actions-gh-pages@v4
- uses: actions/upload-pages-artifact@v3
with:
publish_branch: gh-pages
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/build/
force_orphan: true
path: docs/build/

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- id: deployment
uses: actions/deploy-pages@v4
2 changes: 1 addition & 1 deletion .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ on:
workflow_dispatch:
push:
tags:
- '[0-9]+.[0-9]+.[0-9][abrc]?[0-9]*' # Matches semantic version tags
- '[0-9]+\\.[0-9]+\\.[0-9](?:(?:a|b|rc)[0-9]+)?' # Matches semantic version tags

jobs:
build:
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,9 @@ target/
profile_default/
ipython_config.py

# LLM files
.repotomdrc

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
Expand Down
20 changes: 20 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,23 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.0a7]

### Added
- `com.find_ports` for finding serial ports that match given filter criteria.
- `com.verify_serial_discovery` for checking if a serial device sends an expected
discovery message.
- convenience functions for reading and writing integers in `com.ExtendedSerial`.
- `misc.extend_packed` for extending a bytearray by multiple values of the same format.
- `misc.DocstringInheritanceMixin` for inheriting docstrings from base classes.
- more examples.

### Changed
- more verbose debug logging during state machine runs.
- replace unmaintained `appdirs` dependency with `platformdirs`.
- switch to zero-based indexing for global counters, timers, conditions and soft-codes.
- added file locking to `misc.SettingsDict`.

## [0.1.0a6] - 2025-10-29

### Added
Expand All @@ -19,6 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `com.to_bytes`
- dependency on Pandas


## [0.1.0a5] - 2025-09-03

### Added
Expand Down Expand Up @@ -87,6 +105,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

First alpha release. Nothing works.

[0.1.0a7]: https://github.com/int-brain-lab/bpod-core/releases/tag/0.1.0a7
[0.1.0a6]: https://github.com/int-brain-lab/bpod-core/releases/tag/0.1.0a6
[0.1.0a5]: https://github.com/int-brain-lab/bpod-core/releases/tag/0.1.0a5
[0.1.0a4]: https://github.com/int-brain-lab/bpod-core/releases/tag/0.1.0a4
[0.1.0a3]: https://github.com/int-brain-lab/bpod-core/releases/tag/0.1.0-alpha.3
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@

A Python library for communicating with the [*Bpod Finite State Machine*](https://sanworks.io/).

> [!WARNING]
> bpod-core is under development and not yet ready for production use.

This project is maintained by the software development team at the
[*International Brain Lab*](https://internationalbrainlab.org/).

Expand Down
Loading