Skip to main content

Library to interact with analog computers and analog-digital hybrid computers, in particular the LUCIDAC and REDAC computers made by anabrid

Project description

pybrid-computing: The python hybrid computing code

pybrid is a code that provides an interface to configure and control analog computers, in particular the network-enabled LUCIDAC/REDAC analog-digital hybrid computers made by anabrid. The abstractions can be used by means of

  • a fully asyncio library
  • a framework (users providing callbacks in a clean class structure, however giving up most of the program flow control) called Read-Eval-Configure-Loop (RECL)
  • a command line interface using click

This python library provides the reference implementation for the LUCIDAC/REDAC communication protocol (a simple ASCII yet fully asynchronous RPC message passing protocol ontop of JSONL) by means of pydantic data type modeling. In particular, it is the reference implementation of a client communicating with a LUCIDAC hybrid controller MCU via USB Serial or TCP/IP.

The code is successfully used on modern day GNU/Linux, Mac OS X and MS Windows.

This code is written and maintained by anabrid GmbH. It is released as open source (dual licensed as MIT and GPL>=2). It is supposed to be released at Github (TODO).

Installation

Simply run pip install pybrid-computing. There is an explicit dependency to pybrid-computing-base released and maintained by the same authors, all other dependencies are widespread and thus relatively standard python packages.

Installation should make a command line executable pybrid available on your shell. You can explore it by calling pybrid on your shell, which gives you, for instance:

% pybrid redac 
Usage: pybrid redac [OPTIONS] COMMAND [ARGS]...

  Entrypoint for all REDAC commands.

  Use :code:`pybrid redac --help` to list all available sub-commands.

Options:
  -h, --host TEXT       Network name or address of the REDAC.
  -p, --port INTEGER    Network port of the REDAC.
  --reset / --no-reset  Whether to reset the REDAC after connecting.
                        [default: reset]
  --help                Show this message and exit.

Commands:
  display             Display the hardware structure of the REDAC.
  get-entity-config   Get the configuration of an entity.
  hack                Collects 'hack' commands, for development purposes...
  reset               Reset the REDAC to initial configuration.
  route               Route a signal on one cluster from one output of...
  run                 Start a run (computation) and wait until it is...
  set-alias           Define an alias for a path in an interactive...
  set-connection      Set one or multiple connections in a U-Block or...
  set-daq             Configure data acquisition of subsequent run commands.
  set-element-config  Set one ATTRIBUTE to VALUE of the configuration of...
  shell               Start an interactive shell and/or execute a REDAC...
  user-program

Documentation

You can read the documentation online at https://anabrid.dev/docs/pybrid/html/

It is generated by the Sphinx documentation which is part of this repository/package.

Getting started as developer

This project is managed via the poetry dependency manager for python. It allows for easy dependency installation, etc. You should make yourself comfortable with poetry (https://python-poetry.org/docs/basic-usage/).

Note that the code is distributed amongst the pybrid-computing and pybrid-computing-base repositories. If you enter poetry install while being in one of these repositories with your shell, you can work on that python package "life". If you want to work on both of them, go to the pybrid-computing and edit the path dependencies in the pyproject.toml, for instance by replacing the line

...
[tool.poetry.dependencies]
...
pybrid-computing-base = "^0, >=0.10.0"
...

with something as in

pybrid-computing-base = { path = "/path/to/where/you/checked/out/pybrid-computing-base", develop = true } # instead of "^0, >=0.10.0"

After this edit, run poetry install again to update the paths.

Some IDEs such as PyCharm can check this out by their own.

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

pybrid_computing-0.10.0.tar.gz (28.2 kB view hashes)

Uploaded Source

Built Distribution

pybrid_computing-0.10.0-py3-none-any.whl (37.3 kB view hashes)

Uploaded Python 3

Supported by

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