Skip to main content

Unofficial Aseba Python bindings

Project description

Pyaseba

Pyaseba provides Python bindings for Aseba using pybind11.

Aseba is a lightweight communication protocol and scripting language which works from tiny microcontrollers to your fully featured PC, developed at EPFL Lausanne. For the words of its authors:

Aseba is a set of tools which allow novices to program robots easily and efficiently. For these reasons, Aseba is well-suited for robotic education and research. Aseba is an open-source software created by Dr. Stéphane Magnenat with contributions from the community.

It is known as the scripting language of the educational Thymio robot. Programming it is normally done in a GUI client, like Aseba Studio or the Thymio VPL.

Pyaseba offers an alternative to GUI clients to interact with any robot that runs Aseba (or more generally with any Aseba network). With Pyaseba, you can perform common operations like reading and writing Aseba variables or loading Aseba scripts but also more low-level actions, like sending and receiving Aseba messages directly.

Pyaseba provides two interfaces: 1) a lower-level client API that lets you interact with a collection of Aseba nodes and 2) a higher-level client node API to interact with a single Aseba node, exposing to Python its native variables, events, and functions. The clients can connect to multiple Aseba networks at once, each comprising potentially multiple Aseba nodes.

Moreover, it comes with its own local Aseba network that runs Aseba nodes implemented in Python, i.e., nodes with Python native functions and Python control steps. Its primary motivation is to test the client interfaces, but it may be used to extend an Aseba network with custom nodes, for example, for teaching.

Installation

Build from source

pip install https://github.com/jeguzzi/pyaseba.git

or fetch pre-build wheels

pip install pyaseba

Example

Assuming a Thymio is connected to one of the serial ports, we can use pyaseba to interact with it from Python

>>> from pyaseba import Client
>>> client = Client()
>>> client.connect("ser:name=Thymio")
1
>>> node, _ = client.wait_node()

to read Aseba variables, like the proximity sensor readings,

>>> client.get_variable(node, "prox.horizontal")
[3860, 4339, 2546, 0, 0, 0, 0]

to set Aseba variables, e.g. to change LED colors

>>> client.set_variable(node, "leds.top", [0, 32, 0])

to load and run Aseba scripts, e.g. to play a sound

>>> client.load_script(node, "call sound.system(1)")
>>> client.cmd_run(node)

Pyaseba also exposes the Aseba low-level messaging protocol, for instance, to send

from pyaseba.client.msgs import ListNodes
>>> client.send_message(ListNodes())

and receive messages

>>> client.get_message()
(NodePresent(source=48069, version=9), 1)

The repository and the documentation contain an extensive collection of examples.

Documentation

The documentation is published online.

License and Dependencies

Pyaseba is distributed under MIT license. It makes use of the open source dependencies listed below without redistributing them.

Aseba

Pyaseba can be built using the version of Aseba maintained by the Aseba-community and distributed under LGPL-3.0 license or the version maintained by the Mobsya association, also distributed under LGPL-3.0 license.

The Mobsya version includes additional messages to interact with the latest version of the Thymio robot.

Pyaseba is using Aseba source code without redistributing it.

Dashel

Pyaseba uses the source code of Dashel, distributed under BSD-3-Clause license, without redistributing it.

Pybind11

Pyaseba is using Aseba source code without redistributing it.

Spdlog, {fmt} and pybind11_log

If pyaseba is built with logging support, it uses Spdlog, {fmt}, and pybind11_log without redistributing them.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pyaseba-0.0.6-cp314-cp314-win_arm64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows ARM64

pyaseba-0.0.6-cp314-cp314-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.14Windows x86-64

pyaseba-0.0.6-cp314-cp314-manylinux_2_35_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ x86-64

pyaseba-0.0.6-cp314-cp314-manylinux_2_35_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ ARM64

pyaseba-0.0.6-cp314-cp314-macosx_15_0_x86_64.whl (921.4 kB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

pyaseba-0.0.6-cp314-cp314-macosx_15_0_arm64.whl (845.9 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

pyaseba-0.0.6-cp313-cp313-win_arm64.whl (1.2 MB view details)

Uploaded CPython 3.13Windows ARM64

pyaseba-0.0.6-cp313-cp313-win_amd64.whl (985.5 kB view details)

Uploaded CPython 3.13Windows x86-64

pyaseba-0.0.6-cp313-cp313-manylinux_2_35_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

pyaseba-0.0.6-cp313-cp313-manylinux_2_35_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ ARM64

pyaseba-0.0.6-cp313-cp313-macosx_15_0_x86_64.whl (921.0 kB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

pyaseba-0.0.6-cp313-cp313-macosx_15_0_arm64.whl (844.6 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pyaseba-0.0.6-cp312-cp312-win_arm64.whl (1.2 MB view details)

Uploaded CPython 3.12Windows ARM64

pyaseba-0.0.6-cp312-cp312-win_amd64.whl (985.6 kB view details)

Uploaded CPython 3.12Windows x86-64

pyaseba-0.0.6-cp312-cp312-manylinux_2_35_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

pyaseba-0.0.6-cp312-cp312-manylinux_2_35_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ ARM64

pyaseba-0.0.6-cp312-cp312-macosx_15_0_x86_64.whl (920.9 kB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

pyaseba-0.0.6-cp312-cp312-macosx_15_0_arm64.whl (844.4 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

File details

Details for the file pyaseba-0.0.6-cp314-cp314-win_arm64.whl.

File metadata

  • Download URL: pyaseba-0.0.6-cp314-cp314-win_arm64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.14, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyaseba-0.0.6-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 e7bd3b6232d74d5eb21fc35e783910da300593edcd049085ba7a1c22d9991617
MD5 1686c429359f86f2d739f143f18735e6
BLAKE2b-256 b697df99a257f237c5bf6e540f4c3003be4de3dcaca1a515b878805d9233ea28

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp314-cp314-win_arm64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyaseba-0.0.6-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyaseba-0.0.6-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 5cde71cc14fec1d1159e05aa35785256b28688825e03e8be6a233873b0e201c0
MD5 bf0c7d159b09940eb7c2ad7d932e73b7
BLAKE2b-256 328aaa972c2fcb3430e07e42beac7b059dedd7c3b653bbe145661d5bb8d02f8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp314-cp314-win_amd64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 6b09a46a36bcc01e3dc2d5d7a4b5207a5e243787067e74f7443b477e6d895b93
MD5 7dd2e5c44f94f79431cb36e99ac71d97
BLAKE2b-256 3c100ac14e24b78b269414f6770777eb8f8ca9449e3de2c054874cc04fe986d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp314-cp314-manylinux_2_35_x86_64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp314-cp314-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp314-cp314-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 b6d7eedd83913d051e722c2e8199da0c1559f4bc012fc41c985f27d567da62bf
MD5 84a924a8075a407846e75c3f00c9214a
BLAKE2b-256 bac9000ef3188bb0ff4fd2511eb5202343df9aaf73f10f870242707541f30ec2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp314-cp314-manylinux_2_35_aarch64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 202d27a39bd38ce2d87a827d10d5c0da9772d2a80371ae519c509d3b12ab864e
MD5 fffc2441cfda904fd5c7862e8cdf42dc
BLAKE2b-256 7d4838dde71bd4611f6c16fb5e225198835825256f4780941f10f6cd91b64b85

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp314-cp314-macosx_15_0_x86_64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 dbb629cec9f9f36926ccd887c0eafa3dd26219fbd1cfdb5517e1d87198ddfd6f
MD5 b31c5744923d1a9cfae74c3fbc7be8a3
BLAKE2b-256 1b0e9e4a6d3fdab1dc86fea0e793b546d8bebe0fe73b1dd7f1b81546d7c07231

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp314-cp314-macosx_15_0_arm64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: pyaseba-0.0.6-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyaseba-0.0.6-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 61e97fd6a81989acbfcc2077555ce93fbd4e836b03fe156821293e257f59f9f5
MD5 b44a0329e68a7b4d9f0dad28eee5aee2
BLAKE2b-256 ed02de4a1ae8c758147ab4333dfeada915618549acef237cc5a43fdbfd148807

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp313-cp313-win_arm64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyaseba-0.0.6-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 985.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyaseba-0.0.6-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d82c0add375a034558d2f2fd40f1b367d110b8d184f78bca180edd6ed0fac1fd
MD5 0aa77627a728c6724ca0d7f4980805db
BLAKE2b-256 f405cce52ddc8718c3611930311479a9b41682597572922e3cc337b07ed40df3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp313-cp313-win_amd64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 284f87ae1848dd26d506a83a2ec174e1c221fde53f886c8651b6b47a03bff962
MD5 1707e3f370b57f1caadf1bdd46cc4350
BLAKE2b-256 3c3c96612f9398b827dfe56adc6c39864baea943ba72f6499455d8997df97b3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp313-cp313-manylinux_2_35_x86_64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp313-cp313-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp313-cp313-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 7987e573969d6149d9cc48850c4f646bd399946f8e46494e90abdc9748d93919
MD5 66f8eb0fa7709997f474c31e80f084b9
BLAKE2b-256 2ec79f2767e27fbb9173630c00b91f3f0c4c1370aee0a7d85869b0e75974226f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp313-cp313-manylinux_2_35_aarch64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 3d452298456a915a21a1022b68206824362e8f4614c3aafacb111578d275de9d
MD5 22d5b33ab79a0b97b2c85c2f281097dc
BLAKE2b-256 18267766774039726d2c6cb205bdeb8d56c9ebb3091aea655f2b3e008aa32060

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp313-cp313-macosx_15_0_x86_64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 09cf2f4cad556384bd7bd82cac48d7720f01f66ce65189247af91ea2b9ce7d7b
MD5 755363cffbd45afd3441bb6d5fe08975
BLAKE2b-256 5c5fb7df24ee2dc06455a0cc142bcdb28b89419630baa99b3ae5b19194a3f7b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp313-cp313-macosx_15_0_arm64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: pyaseba-0.0.6-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyaseba-0.0.6-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 f80d327def2d41e8287349b7aecd34c3f3ebdd4725dac7f95ffcd18433efcc02
MD5 29216962473bffa0154f94803af49477
BLAKE2b-256 7e7760fdd69df1f2c663f46d2af7c46a926e82c1c40fe3cef00ac0654460be37

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp312-cp312-win_arm64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyaseba-0.0.6-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 985.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyaseba-0.0.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7269c82516f9a1d22eff9b3c91889e99199f19a3123a811b6547744988f1204e
MD5 e15e7685e618f29f2131683470175973
BLAKE2b-256 90a86e76a1425886857e35df5cda7c4e1aded3b4a152b224aee8c1c602bd7a8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp312-cp312-win_amd64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 aae021401c3ee7bbc5df77ec67685ea9a32c268081882932e20c4220a5872786
MD5 4d8b4912cf96e86c673eaff8862bd3a2
BLAKE2b-256 a3c13ed3e13cf206c0d7663654416a580e589ed015c7144dc9ee9aa34793834a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp312-cp312-manylinux_2_35_x86_64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp312-cp312-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp312-cp312-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 bf5b54a7d632189365236d5eacd17360c986825568baa91bf0d89c7a094c8fb8
MD5 59ac240477510d31d476791f697299b8
BLAKE2b-256 d4a8ab813f9e7bedcaee04f48a3a6382026624b0ea26aa04b03b7e24b04a1ceb

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp312-cp312-manylinux_2_35_aarch64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 83404a8197c856bb983201252166e7e183233b80c4ec371193bbe5a150ffb6cc
MD5 49f92de1b22b140036caf9cc3111bc0b
BLAKE2b-256 bde6a066d5753f0f49bd066681f18bb80ef7ce663617e662cfac0056afd486ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp312-cp312-macosx_15_0_x86_64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyaseba-0.0.6-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.6-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 97ea35da61884e46bbb083eaa41b0db35cf084684612338e85499d0fa6cec266
MD5 1d2dfa25f9c57eb1434d836edb620fcc
BLAKE2b-256 b104e894c515b00702833618dcf42001a2096bc3decb51af65e0e0af11a6a52a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.6-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: release.yaml on jeguzzi/pyaseba

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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