Skip to main content

Eclipse Cyclone DDS Python binding

Project description

License License Website PyPI - Python Version PyPI Community

Python binding for Eclipse Cyclone DDS

A Python binding for Eclipse Cyclone DDS.

Getting Started

Eclipse CycloneDDS Python requires Python version 3.7 or higher. You can install with included Cyclone DDS binaries or leveraging an existing Cyclone DDS installation by installing from source via PyPi.

Documentation can be found on the cyclonedds.io website: Python API docs

Installing with pre-built Cyclone DDS binaries

This is the most straightforward method to install Cyclone DDS Python, but there are a couple of caveats. The pre-built package:

  • has no support for DDS Security,
  • has no support for shared memory via Iceoryx,
  • comes with generic Cyclone DDS binaries that are not optimized per-platform.

If these are of concern, proceed with an installation from source. If not, running this installation is as simple as:

    $ pip install cyclonedds

Installing from source

When installing from source you can make use of the full list of features offered by Cyclone DDS. First install Cyclone DDS as normal. Then continue by setting the CYCLONEDDS_HOME environment variable to the installation location of Cyclone DDS, which is the same as what was used for CMAKE_INSTALL_PREFIX. You will have to have this variable active any time you run Python code that depends on cyclonedds so adding it to .bashrc on Linux, ~/bash_profile on MacOS or the System Variables in Windows can be helpful. This also allows you to switch, move or update Cyclone DDS without recompiling the Python package.

You'll need the Python development headers to complete the install. If using apt, try sudo apt install python3-dev. For other distributions, see this comment.

via PyPi

You can install the source from the latest release from Pypi, or use a tag to get a specific version. A full example (for linux) is shown below

$ git clone https://github.com/eclipse-cyclonedds/cyclonedds
$ cd cyclonedds && mkdir build install && cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=../install
$ cmake --build . --config RelWithDebInfo --target install
$ cd ..
$ export CYCLONEDDS_HOME="$(pwd)/install"
$ pip3 install cyclonedds --no-binary cyclonedds

via git

A full example installation of the quickest way to get started via git is shown below:

$ git clone https://github.com/eclipse-cyclonedds/cyclonedds
$ cd cyclonedds && mkdir build install && cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=../install
$ cmake --build . --config RelWithDebInfo --target install
$ cd ..
$ export CYCLONEDDS_HOME="$(pwd)/install"
$ pip3 install git+https://github.com/eclipse-cyclonedds/cyclonedds-python

Command line tooling

The Python package contains a suite of command line tools, all nested under the main entrypoint cyclonedds. The main help screen shows the commands available:

cyclonedds --help

cyclonedds ls

cyclonedds ls --help

The ls subcommand shows you the entities in your DDS system and their QoS settings. For example, here is the output when running the Vehicle example from this repo in the background:

cyclonedds ls --suppress-progress-bar --force-color-mode

cyclonedds ps

cyclonedds ps --help

The ps subcommand shows you the applications in your DDS system. Note that this depends on so called 'Participant Properties', tactfully named QoS properties in DDS participants. These were merged into CycloneDDS for version 0.10.0. Here is an example of the output when running the Vehicle example from this repo in the background on a single host:

cyclonedds ps --suppress-progress-bar --force-color-mode

cyclonedds typeof

cyclonedds typeof --help

The typeof subcommand shows you the type(s) of a topic in your system. With XTypes it can happen that more than one type for each topic exists and that they are still compatible. The types are represented in IDL. Here is an example of the output when running the Vehicle example:

cyclonedds typeof Vehicle --suppress-progress-bar --force-color-mode

cyclonedds subscribe

cyclonedds subscribe --help

The subscribe subcommand dynamically subscribes to a topic and shows you the data as it arrives. The type is discovered in a similar manner as typeof. Here is an example of the output when running the Vehicle example:

timeout -s INT 10s cyclonedds subscribe Vehicle --suppress-progress-bar --force-color-mode

cyclonedds performance

cyclonedds performance --help

The cyclonedds subcommand is a nicer frontend to ddsperf with four modes: publish, subscribe, ping and pong. The below performance run example is the subscribe mode rendered with cyclonedds performance publish running in the background.

cyclonedds performance --duration 21s --render-output-once-on-exit --force-color-mode subscribe --triggering-mode waitset

Contributing

We very much welcome all contributions to the project, whether that is questions, examples, bug fixes, enhancements or improvements to the documentation, or anything else really. When considering contributing code, it might be good to know that build configurations for Azure pipelines are present in the repository and that there is a test suite using pytest, along with flake8 code linting, and documentation built with sphinx. Be sure to install with the Extra dependencies if you're going to run tests, lints or build the docs.

You can run the test suite and linting using the local-ci.py script in this repo.

$ python local-ci.py

Or lint a single file/directory (as the whole repo can be a little noisey) using:

$ python -m flake8 path/to/some_file.py

You can build and serve the documentation (at http://localhost:8000/) using:

cd docs
python -m sphinx source/ _build/
# Serve the HTML files to view at localhost:8000
python -m http.server -d _build

Extra dependencies

The cyclonedds package defines two sets of optional dependencies, dev and docs, used for developing cyclonedds and building the documentation, respectively. If you want to install with development tools add the component to your installation, for example:

$ pip3 install --user "cyclonedds[dev] @ git+https://github.com/eclipse-cyclonedds/cyclonedds-python"

Or when installing from a local git clone, which is recommended when developing or building the docs:

$ cd /path/to/git/clone
# for development:
$ pip3 install --user ".[dev]"
# for documentation generation
$ pip3 install --user ".[docs]"
# or for both
$ pip3 install --user ".[dev,docs]"

For more information see the packaging guide information on optional dependencies.

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

cyclonedds-0.10.5.tar.gz (156.9 kB view details)

Uploaded Source

Built Distributions

cyclonedds-0.10.5-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

cyclonedds-0.10.5-cp310-cp310-musllinux_1_1_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

cyclonedds-0.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

cyclonedds-0.10.5-cp310-cp310-macosx_11_0_arm64.whl (799.6 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

cyclonedds-0.10.5-cp310-cp310-macosx_10_9_x86_64.whl (864.6 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

cyclonedds-0.10.5-cp39-cp39-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.9 Windows x86-64

cyclonedds-0.10.5-cp39-cp39-musllinux_1_1_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

cyclonedds-0.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

cyclonedds-0.10.5-cp39-cp39-macosx_11_0_arm64.whl (799.6 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

cyclonedds-0.10.5-cp39-cp39-macosx_10_9_x86_64.whl (864.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

cyclonedds-0.10.5-cp38-cp38-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

cyclonedds-0.10.5-cp38-cp38-musllinux_1_1_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

cyclonedds-0.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

cyclonedds-0.10.5-cp38-cp38-macosx_11_0_arm64.whl (799.6 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

cyclonedds-0.10.5-cp38-cp38-macosx_10_9_x86_64.whl (864.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

cyclonedds-0.10.5-cp37-cp37m-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.7m Windows x86-64

cyclonedds-0.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl (6.7 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

cyclonedds-0.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

cyclonedds-0.10.5-cp37-cp37m-macosx_10_9_x86_64.whl (864.5 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file cyclonedds-0.10.5.tar.gz.

File metadata

  • Download URL: cyclonedds-0.10.5.tar.gz
  • Upload date:
  • Size: 156.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for cyclonedds-0.10.5.tar.gz
Algorithm Hash digest
SHA256 63fc4d6fdb2fd35181c40f4e90757149f2def5f570ef19fb71edc4f568755f8a
MD5 38a6e401c322823649e25a9d517a2dff
BLAKE2b-256 91cf28eb9c823dfc245c540f5286d71b44aeee2a51021fc85b25bb9562be78cc

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 103a681e9490229f12c151a125e00c4db8fdb344c8e12e35ee515cd9d5d1ecd7
MD5 01d14f30f34739649d074b018d3e510c
BLAKE2b-256 07abacaa119f552019bdb2b06478553cf712967672f5970be80ecc9b4ca805f4

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8276b2bc347540e3ca892adf976421dbce4c6d2672934a32409db121a1431b86
MD5 19e3a154e1f9e3b13febb52e7fce1dae
BLAKE2b-256 e42bd8fff5008c2c62882c2ffc185bdb0d4d1c9caf7bc5aaaef77bd9739bdc12

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 861d2ffd9513126d6a62ad9f842e85122518a7db1fb0a11d6e4fa86e3cacf61c
MD5 887817841b6b3f7aba74a2d706e4ab46
BLAKE2b-256 990d02da52ffd27b92b85b64997cc449106479456648da17aa44a09124e8ebe5

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4a0d9fa8747827dc9bd678d73ed6f12b0ab9853b2cb7ebadbf3d8d89625f0e34
MD5 5bfaed1c8ba86fd57cd2a1684809de65
BLAKE2b-256 cf9808508aff65c87bcef473e23a51506a100fb35bf70450c40eb227a576a018

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 03644e406d0c1cac45887b378d35054a0033c48f2e29d9aab3bfc1ee6c4b9aa6
MD5 f3cec9d6bfd4b90fe71d80d99cea8ebe
BLAKE2b-256 cbc369ba063a51c06ba24fa4fd463157d4cc2bc54ab1a2ab8ebdf88e8f3dde25

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 6dc5ccd2c3b2fbb45375c4a50e0fc8c9334fe72c5f2ba6237a5fd411303617f6
MD5 293f700e6713ef2447eef09c40f763b3
BLAKE2b-256 b8ed6f94e436a7a99998ffd898320b20d24f7d372375c912573c319083838614

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5cdbfa0f51bf78981bc13a1b45043c0aeb836f0ae24e9731b5f20f80ecc28ec9
MD5 1ce3f608cda6da6d1fa6b5ae53aa2dc0
BLAKE2b-256 4ee6d18bfb1d4dba909e6a71ea07d030bdcba53c4698e2481f07a0947b86e9c9

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 87e9d31ae7f4b1f64d7e3cef93e2b094e457c42d4541235d997afc5f2049e925
MD5 a9d071a14bb0da565ae691280eb68898
BLAKE2b-256 1e6027151865031ee5432c52e86e0289502c7d392a3d6ee2e639d1281a5072ed

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f46b444f15dc9791ee784b2d815dbf78c88b72fc16c0f94d4ce9aa25572b66fc
MD5 93f1326bca0e298b88eda63b765c5917
BLAKE2b-256 7286aad7e6c6fc2ebed128a97aa10503ee4c91e5d2960dcf8e3b0359f2803778

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e491724e91c0129a980aa898aff6438a3ebbabc45e814da948aa6d98c248dc90
MD5 f7a1850a6affe9d17b99f183d82b0bda
BLAKE2b-256 56e55969c8b4d40961fedfc93169a91e291835c006cfd8d876c8659edaa89da5

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 eb9d329c455ba66ca415c890f28c2f2c467e13661f9ddb9e11cd2018d3533e2c
MD5 79ca9b5704ed22832030897d00438318
BLAKE2b-256 742bb438a73446a477db77a0cb1303fa4b6b79e09d1619a0110834ccced791fe

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3a2e87429b3b2fd06a10e76a91e8ab0721b6e4181ae455fa509cc74598437602
MD5 43c0c659c076249edbab4940b484be12
BLAKE2b-256 4d849b9c14a239269a62b25b69dcc1c5521333a707a48099bdff8eeaa9bdcaab

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d4492388f63d2d4dc6f26994c6ba716e75e01f577d033a40c077aac2796c86e8
MD5 726791e6ea0588c035b7d5e523211832
BLAKE2b-256 24b84868d5da9b95f4da6f7c0cc551d6cd4ade83e50ae252d958f6e4fcb4d8ba

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e44371c8217e31273a3eaebf7f38898500e45d555b906c1de7dd91b9031f449c
MD5 7ddbc4194c643f3d13cda7f9de9cb86b
BLAKE2b-256 c791e617b0dc1c61a3e84c8af7e73980dc81a2fecca684ce8bfd4ce60fc45719

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e991e66d47be1272af268d662157d982c0e355825c20bd4b611a880a2a2b617d
MD5 0ca1d16e4533af9326cb6cfcfead3747
BLAKE2b-256 4020918c4ece03aa19c305786de7792f49ba8a70450a0ccf28761d1472f6d993

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 7519bd86ec21e0c0edfd87e8c0080c849e9ad2a3201ac47df3de0ab561df116e
MD5 641d820416dea0cd87a0b50554639110
BLAKE2b-256 1e4c02b18165cf426d3b72ae36faf346da1d35260d0ead5fe23faad735d14b2e

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 dc33a49ccd3cb65377729aad4fada39965450408a1bb3dbba7ec42d44366b916
MD5 d989c16f167f0a5d573043e3157967b2
BLAKE2b-256 4f80aed944f55ef6ff1bfb2536942b795827df966bb6e7c40b7ac1779c30ca13

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0149a7dc28d5bdd8b279060be656b0fe43282bc2e3909151d82a5b59b03c602e
MD5 fe5f0fc9f0a01f74b680120f20130685
BLAKE2b-256 493c371178f4d624f27e8b2a8827119c2133489a0105398a486c65b605ed92c5

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.5-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.5-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 73fb02d49071fe657d85149e77e26f0aff03c67b5ef09bb5330bb957dba50f5c
MD5 09c09520b755493091d0e2e221422d15
BLAKE2b-256 266ecd382bb32d15776acb887a0d5f6ea3882faa8e1b226a1f146887e0af1e1b

See more details on using hashes here.

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