Skip to main content

Unofficial Aseba Python bindings

Project description

Pyaseba

Pyaseba provides Python bindings for Aseba using pybind11.

Aseba is a light-way communication protocol and scripting language which works from tiny micro-controllers to your fully feature 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 let 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 message

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

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

Documentation

The documentation is published online.

License and Dependencies

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

Aseba

Pyaseba can be build 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 include additional message 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 build 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.5-cp314-cp314-win_arm64.whl (1.2 MB view details)

Uploaded CPython 3.14Windows ARM64

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

Uploaded CPython 3.14Windows x86-64

pyaseba-0.0.5-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.5-cp314-cp314-manylinux_2_35_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ ARM64

pyaseba-0.0.5-cp314-cp314-macosx_15_0_x86_64.whl (919.9 kB view details)

Uploaded CPython 3.14macOS 15.0+ x86-64

pyaseba-0.0.5-cp314-cp314-macosx_15_0_arm64.whl (844.5 kB view details)

Uploaded CPython 3.14macOS 15.0+ ARM64

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

Uploaded CPython 3.13Windows ARM64

pyaseba-0.0.5-cp313-cp313-win_amd64.whl (984.1 kB view details)

Uploaded CPython 3.13Windows x86-64

pyaseba-0.0.5-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.5-cp313-cp313-manylinux_2_35_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ ARM64

pyaseba-0.0.5-cp313-cp313-macosx_15_0_x86_64.whl (919.6 kB view details)

Uploaded CPython 3.13macOS 15.0+ x86-64

pyaseba-0.0.5-cp313-cp313-macosx_15_0_arm64.whl (843.4 kB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Uploaded CPython 3.12Windows ARM64

pyaseba-0.0.5-cp312-cp312-win_amd64.whl (984.2 kB view details)

Uploaded CPython 3.12Windows x86-64

pyaseba-0.0.5-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.5-cp312-cp312-manylinux_2_35_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ ARM64

pyaseba-0.0.5-cp312-cp312-macosx_15_0_x86_64.whl (919.5 kB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

pyaseba-0.0.5-cp312-cp312-macosx_15_0_arm64.whl (843.1 kB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

File details

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

File metadata

  • Download URL: pyaseba-0.0.5-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.5-cp314-cp314-win_arm64.whl
Algorithm Hash digest
SHA256 d41677e6ee31b3bc093719ae559c68503b0711b3f53a11031a34852755370952
MD5 867ec0cbc4d0282541f5cfe55bbc4513
BLAKE2b-256 8b02eef9201fde111dccfba5635b7a5e43b227f0a08c9a7c5c54ffd12e056cb4

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: pyaseba-0.0.5-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.5-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 bad88d748930a6eb627d9909f993401c320713f93abcabd97a0273c5d48c52df
MD5 ce3c0c410e6f953468f0886f570ce6cc
BLAKE2b-256 b37dd2f4f88bad3a6a0af365751c2192e3e7dc3b3dce1074432d11d13b8ea469

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 2477ab01fe9a316b0cd1f53c326e12c846ffe3e4b6ba8173226299b0f4a0adcb
MD5 125caef60163171744dcfb1787ba97bb
BLAKE2b-256 4645ce0a20182eaff9fdf963d9955b1e3a9c0e567b977e860e27a623be039558

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp314-cp314-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp314-cp314-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 966f7ab89427ca1406fae0929a5184439dbc26ee25c901e1987e70a2388c8b9e
MD5 74e53ce8335aa907f98ee7e939e6caeb
BLAKE2b-256 9ce3a6f10add60779470a2635f1594dce841a4684a5bea3bc7b6a7cd83865965

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp314-cp314-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp314-cp314-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 4331155ca4430d2da3cc362c13bfb95a02f6bf5f525e436caf5ab46414095c08
MD5 1079f5dfe010ad5ecea2617b09836f35
BLAKE2b-256 d2dbdc4c5bb4f6c5cc63145703e786bce1aa2fc4d3030384f261750138ef6736

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp314-cp314-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp314-cp314-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4742024e77940da4f265761bf422a2bfbf8ba2c86bb46519704136acf8f2683a
MD5 123a85a31cc7ff695c3efcf7297bfddb
BLAKE2b-256 02361a93bd7e6ea1689077d65b3aa08baf55f9bba4f44da8998b429ebd8bb05b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: pyaseba-0.0.5-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.5-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 bbb564b5e28601373af1365c52631edfc66f00ab83307b059c12dcc3fac68376
MD5 74b56b86132e3f87b0a8f5db957546ee
BLAKE2b-256 f0fd044043725a46784fd4006ce3806c13b2bd5519e94fb4659a3f98496cfce1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pyaseba-0.0.5-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 984.1 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.5-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4018aee058a8a3009bcdb4118910ee64513e3e83468f188c4815821591270a20
MD5 dd57de91f4cd067cd6674f05b19b0192
BLAKE2b-256 9d9b22d31e763c10fd675900ecc9dfd7aaee3450896578d52fee6923db3de0a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp313-cp313-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 5de4d252aead7b3a04c54e0669ea9127f912052629536134854a67f637738b09
MD5 6d1ff4e719f5430f383f8da8b6c9263f
BLAKE2b-256 4d5ee83465d06d5eca4bad78c4d4e21d98062e366bb72b9a464c2aa9c2b4bc25

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp313-cp313-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp313-cp313-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 cc07ee16fe51ef94874af341640852170b6f36bebbabf368e81661bb6affbef1
MD5 bcb2c2baa520e70d612b139aba834548
BLAKE2b-256 e15dfa3059bffacc0a697bfa63866c7a7eea78b0788d86bfcdb93360b498e058

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp313-cp313-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp313-cp313-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 ae291f69e55d244dbdc613395dae242ba354b03f88fd63198089d8ad4b03702f
MD5 3e43542a0c4a241e9f34a17c970ad564
BLAKE2b-256 d542ef04eb8ae5555f93156394b78cede78ca1fe9d62d2e25468a2157abaab72

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 9258a1e447c6eceab5e95c63dd5e95dfa9ab0c740da0b8212318e2d43cdb0eae
MD5 3d56453a0d1eb360aae953d42f1e22a8
BLAKE2b-256 3ed7678af856576145fd2f5569f134c6f27f0e77aa660d0271f10d375dbd54ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: pyaseba-0.0.5-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.5-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 50340c87fc0a4fb889fad55fe25d8cb91e1b3ce3061b844867e5398fc05fd1d9
MD5 27711cc2bdab7b49e0c92042f8ddae8d
BLAKE2b-256 474eea32f24ff7d340332c0303f4e610f0bd1cfb893736953b19650dc075aed7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pyaseba-0.0.5-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 984.2 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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a223935699849eed5cf7535a718e3e335d038548a54e4064a4618db8382eb8b8
MD5 ba3b848b0f107db9abb64d450015c816
BLAKE2b-256 bc0c4db3cdfd42fa772f8e7d9ab9bfd5a90647f3fb03f9abcff738d0158c8901

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp312-cp312-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 6961fc539843e826b85c961569640fa94a76632fc22b706993dd73c73e5bdac9
MD5 3c01c945cde9301ca0986f4bc2a82549
BLAKE2b-256 0b40149cec36c2538b733edb8e49cd0f10a700c1e85dde338ab91cdc7a389a71

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp312-cp312-manylinux_2_35_aarch64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp312-cp312-manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 9f35b09f2e21768ea18d110db957edc4ae01419f6b9264cb628d7985d40bab5d
MD5 e62e945260b899ca9736260d8e5bc62e
BLAKE2b-256 9528c35d5a5e3af58c91b28ed185b2ac5afcb8f1edc4f934ca34294017076926

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 b9f5202a2498af267b86c6735ca48d0909f6bfd8d81929ac25f2172489137d47
MD5 c357f53b6e0677683f9feea1a7aef2db
BLAKE2b-256 aa072e3e931a183768633062026502dd2938dcc1444b61608f378dad0d16afa1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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.5-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyaseba-0.0.5-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f9e5c2405dbeea4c2caf305f10d235ef6579ae6521e790563d7aaab58fc883f3
MD5 a9a18e943a793d6ec230c55e1f99b50a
BLAKE2b-256 f07759de999804cc1c9315101a9b2b4c60cfb5ac4e022bc9fd1cba2260fc12f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyaseba-0.0.5-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