<p align="center">
  <img src="https://raw.githubusercontent.com/int-brain-lab/bpod-core/refs/heads/main/docs/source/_static/bpod-core.svg" />
</p>

# bpod-core

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

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

## Goals
* **Interface to Bpod Devices:** Provides an interface for interacting with Bpod devices.
* **State Machine Management:** Offers capabilities to define, validate, and run state machines.
* **Standalone or Library Use:** Can function independently or be integrated as a library within other projects.
* **Performance-Oriented:** Designed to be lean and fast.
* **Quality Assurance:** Typed, tested, and documented.

## Non-Goals
* **No GUI:** Does not include a graphical user interface.
* **Limited High-Level Functionality:** Does not provide features such as data management, configuration, or calibration.
* **No Specific Module Support:** Does not implement support for specific Bpod modules.

## Links
* [Documentation and API reference](https://int-brain-lab.github.io/bpod-core)
* [Bpod Wiki](https://sanworks.github.io/Bpod_Wiki) - maintained by [*Sanworks*](https://sanworks.io/)
* [PyBpod](https://pybpod.readthedocs.io) - another Python project for Bpod devices

---
[![CI](https://github.com/int-brain-lab/bpod-core/actions/workflows/main.yaml/badge.svg)](https://github.com/int-brain-lab/bpod-core/actions/workflows/main.yaml)
[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
[![Coverage Status](https://coveralls.io/repos/github/int-brain-lab/bpod-core/badge.svg?branch=main)](https://coveralls.io/github/int-brain-lab/bpod-core?branch=main)
[![License](https://img.shields.io/github/license/int-brain-lab/bpod-core)](https://github.com/int-brain-lab/bpod-core/blob/main/LICENSE)
[![GitHub tag](https://img.shields.io/github/v/tag/int-brain-lab/bpod-core)](https://github.com/int-brain-lab/bpod-core/tags)
[![PyPI](https://img.shields.io/pypi/v/bpod-core)](https://pypi.org/project/bpod-core/)
