Metadata-Version: 2.3
Name: bpod-core
Version: 0.1.0a11
Summary: Python package for interfacing with the Bpod finite state machine
Author: Florian Rau
Author-email: Florian Rau <bimac@users.noreply.github.com>
License: MIT
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering
Classifier: Typing :: Typed
Requires-Dist: numpy
Requires-Dist: pydantic>=2.0
Requires-Dist: pyserial>=3.5
Requires-Dist: graphviz>=0.20.0
Requires-Dist: pyzmq>=27.0.0
Requires-Dist: zeroconf>=0.147.0
Requires-Dist: msgspec>=0.19.0
Requires-Dist: packaging>=25.0
Requires-Dist: pyyaml>=6.0.0
Requires-Dist: platformdirs>=4.4.0
Requires-Dist: filelock>=3.20.0
Requires-Dist: psutil>=7.0.0
Requires-Dist: polars>=1.38.0
Requires-Dist: xxhash>=3.6.0
Requires-Dist: cachetools>=7.0.0
Requires-Dist: typing-extensions>=4.0
Requires-Python: >=3.10
Project-URL: Changelog, https://github.com/int-brain-lab/bpod-core/blob/main/CHANGELOG.md
Project-URL: Documentation, https://int-brain-lab.github.io/bpod-core/
Project-URL: Homepage, https://github.com/int-brain-lab/bpod-core
Project-URL: Issues, https://github.com/int-brain-lab/bpod-core/issues
Project-URL: Repository, https://github.com/int-brain-lab/bpod-core.git
Description-Content-Type: text/markdown

<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 [*Bpod Finite State
Machines*](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/).

## 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/)
