Skip to main content

Python API for the PulsePal open-source pulse train generator

Project description

PyPulsePal

DOI PyPI Ruff

Python API for the PulsePal open-source pulse train generator.

→ Full documentation

Example usage

Load and apply a saved config file:

from pypulsepal import PulsePal
from pypulsepal.config_io import load_config

cfg = load_config("my_params.json")   # or .yaml
with PulsePal.from_config(cfg, serial_port="/dev/ttyACM0") as pp:
    pp.trigger_selected_channels(channel_1=True)

Standard instantiation:

import time
from pypulsepal import PulsePal

pp = PulsePal(serial_port="/dev/ttyACM0")
pp.channel_configs[0].phase1Voltage = 5.0
pp.channel_configs[0].pulseTrainDuration = 1.0
pp.sync_all_params()
pp.trigger_selected_channels(channel_1=True)
time.sleep(1)
pp.stop_all_outputs()
pp.close()

As a context manager (saves settings and closes on exit automatically):

import time
from pypulsepal import PulsePal

with PulsePal(serial_port="/dev/ttyACM0") as pp:
    pp.channel_configs[0].phase1Voltage = 5.0
    pp.channel_configs[0].pulseTrainDuration = 1.0
    pp.sync_all_params()
    pp.trigger_selected_channels(channel_1=True)
    time.sleep(1)
    pp.stop_all_outputs()

Installation

pip install pypulsepal

With YAML config file support:

pip install "pypulsepal[yaml]"

From source:

git clone https://github.com/murineshiftwork/pypulsepal.git
cd pypulsepal
pip install -e ".[yaml]"

Citation

To cite PyPulsePal:

Rollik, Lars B. (2022). PyPulsePal: Python API for the PulsePal open-source pulse train generator. doi: 10.5281/zenodo.6379627.

@misc{rollik2022pypulsepal,
    author    = {Lars B. Rollik},
    title     = {{PyPulsePal: Python API for the PulsePal open-source pulse train generator}},
    year      = {2022},
    publisher = {Zenodo},
    url       = {https://doi.org/10.5281/zenodo.6379627},
    doi       = {10.5281/zenodo.6379627},
}

Please also cite the original PulsePal hardware and PyBpod publications that this package builds on.

License & sources

This software is released under the GNU GPL v3.0.

This work is derived from the Sanworks PulsePal Python API (commit: 5bb189f).

src/pypulsepal/_arcom.py is vendored from pybpod-api 1.8.2 (MIT, Copyright © 2016 Champalimaud Foundation) with minor adaptations.

Useful references

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypulsepal-0.4.2.tar.gz (31.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pypulsepal-0.4.2-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file pypulsepal-0.4.2.tar.gz.

File metadata

  • Download URL: pypulsepal-0.4.2.tar.gz
  • Upload date:
  • Size: 31.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pypulsepal-0.4.2.tar.gz
Algorithm Hash digest
SHA256 a9c266a2ced1ec8aac5262450f76a04faff30d11e6652efa0d5caecd0c673306
MD5 53367f23e7d14324a02973f26abb8ead
BLAKE2b-256 037451cbeb07d167f00b125d1806adaa24c4abd842bdad5d3bbfec53dc2a2b73

See more details on using hashes here.

File details

Details for the file pypulsepal-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: pypulsepal-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 26.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pypulsepal-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fdf070d09d01e9e1961463a29cac19749a87cbe6e5e75f24de6cb04f00a4c078
MD5 a3a6a2515c1eeae23c69ae4eb2e68a98
BLAKE2b-256 16cc6a44c030b62581356db3a3d5627d0dd69c9fb04f66c0ab7f0dbdae269841

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page