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 . --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 . --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.2rc1.tar.gz (156.9 kB view details)

Uploaded Source

Built Distributions

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

cyclonedds-0.10.2rc1-cp310-cp310-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.10Windows x86-64

cyclonedds-0.10.2rc1-cp310-cp310-musllinux_1_1_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

cyclonedds-0.10.2rc1-cp310-cp310-macosx_11_0_arm64.whl (797.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cyclonedds-0.10.2rc1-cp310-cp310-macosx_10_9_x86_64.whl (862.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

cyclonedds-0.10.2rc1-cp39-cp39-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.9Windows x86-64

cyclonedds-0.10.2rc1-cp39-cp39-musllinux_1_1_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

cyclonedds-0.10.2rc1-cp39-cp39-macosx_11_0_arm64.whl (797.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

cyclonedds-0.10.2rc1-cp39-cp39-macosx_10_9_x86_64.whl (862.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

cyclonedds-0.10.2rc1-cp38-cp38-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.8Windows x86-64

cyclonedds-0.10.2rc1-cp38-cp38-musllinux_1_1_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

cyclonedds-0.10.2rc1-cp38-cp38-macosx_11_0_arm64.whl (797.6 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

cyclonedds-0.10.2rc1-cp38-cp38-macosx_10_9_x86_64.whl (862.5 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

cyclonedds-0.10.2rc1-cp37-cp37m-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.7mWindows x86-64

cyclonedds-0.10.2rc1-cp37-cp37m-musllinux_1_1_x86_64.whl (6.6 MB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

cyclonedds-0.10.2rc1-cp37-cp37m-macosx_10_9_x86_64.whl (862.4 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

Details for the file cyclonedds-0.10.2rc1.tar.gz.

File metadata

  • Download URL: cyclonedds-0.10.2rc1.tar.gz
  • Upload date:
  • Size: 156.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for cyclonedds-0.10.2rc1.tar.gz
Algorithm Hash digest
SHA256 497b6e17c9270b21eb9e07be0d180c49f1728d235f085660f84b2e765330278e
MD5 76bbb9e231677e88577621ef90a119e8
BLAKE2b-256 46782c04c33c27df3d1a2837af0c5073d094b67357dd474411e0de0344af1e5c

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b10c5b302fbda3faa280a981436676679dc6e680cbc41ced861f3ef716e3ec1e
MD5 5ddc016eea44f95e05fc2d0a287e3d58
BLAKE2b-256 9feda6fba8556cff08ce54ea672c69d17a93a8722a68bc5eb5ee8c1ee1fb11d8

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4aedfa39ec4cf0ace14f4501bd0998feb22ad747b90b0f6444d22361137656ac
MD5 5bf60f4dcbfa9fe1aed1cb0393ee9fae
BLAKE2b-256 0408411b415154157930102e2b389ea0958e56e43c2d624bbfa4988bbc5d9ea7

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 229e9cb28c35500a61f399a39d5b1b8568fa8aa2d60b006f77f84c12eb4eba7f
MD5 373ca0caac659caf199fc58a98534ca8
BLAKE2b-256 1406ec57a24aa318430eb0184d8d1b6cc7d7a09aa5e968ab4c5aa47a5f620f7f

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3250da463950b48d9c59240055ce15511153eb9d9e8bc6e48f26f7871be082af
MD5 ae2cb9abef76199ab964bbb1faa9b33a
BLAKE2b-256 b7ffc353b34fcd3cf65764d4af4b372ee0b041e78381a84747e793c3d46d87c7

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 61930321010e355feebac54f7b097e33588aea8d49674833dc36c174b8808d30
MD5 64313cb477f174d35b93f26cf463a580
BLAKE2b-256 00a40cd0d4fb12b094bb95f900eda684bf7dae9a2ef07d0890b6c54f74ef9321

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 cdf12174d4d2a37247130b423d3e5e594108caeafe32bfff5873df3956b8cff3
MD5 6eef42271dc1065a2dbe10bce70cc6e8
BLAKE2b-256 f02eb32745a4c0c30665c5330258b5d8d151c727aa4da550d2b1e217636f7a0e

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d89a64e7b140d40668f84aa85a6796b2f8739a8091c6ac81b3fc21a194ae1e2f
MD5 c1a7b17aaf6dcd7d118bab5391d0158d
BLAKE2b-256 52f74b16eea0110a2872e11c7c49e9b722116964e7fa6948ca9f7519faec010d

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 35d48eaebc8270dd4c83188b02d7aefa9898d95ca008a137fe740fd9b4c75da5
MD5 5c0cb2976f4494505c7ca746085cd960
BLAKE2b-256 05954f32d24b59116b16c1131f105c7669311eae14ce7583ce45437a77d3fabc

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 763d8648b9c8cde7d8cbcb4c5fc27fbc4aa272aa04f4883a3101151d00fbc30f
MD5 6208029eb2b45c3e95894c97ac6de51e
BLAKE2b-256 c0c1ca02e5b41c7f11094b6d85076376189cbc4bc98636bece97f7b90e73fe81

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c3deccf992ad4599b21afab7f33ccd7c43fea91eaead96766400650928c0f334
MD5 054c31d48ca6c3bd31e72de83f842408
BLAKE2b-256 b8ad8f30a0479ec959f7af844acba54e1e95ab0e809a7ca73301bf52a040f3e4

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 e06432fe113f529b4a2be8ddff521709df53cdfbcea473804f731a13dbd7ab4c
MD5 ebfb2150a95e183e66b94f4c0d26572a
BLAKE2b-256 b506e99ea6d009ac77d41c563cc5a400ab5869e8125bc43a459f4ad466e41ad7

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 49afa150d10b56fa4d82c91de1571119f817bf9d04b43cbf1feb2a06dfe2e35d
MD5 11b7aa51a32b30663eec3138a87ed0dc
BLAKE2b-256 9c2504fb04dee6066c57d2da2a822397e6abeee3042e4b64ae5721333bff643f

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8876bd7cd30b739366ee48f090efc4724da46c9419d5fae9b54e8dbbf50cf8ba
MD5 1c3def4c8744ed8aa2a6a1889198c056
BLAKE2b-256 9dd0bb8e57a71c7a16ac95e8849b78036766b3574f9d76e7598e7fa0dceb8532

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a72f4ed4fe04eaebedd6b63f9b27f6b488188fba0fec4bd9d7150b3208a1d784
MD5 b0492a6afd560ba100c2ef92650d4555
BLAKE2b-256 c684b2f1b646fb8f7aa4cfc990f1807ae7e5447c4dbd7bd6fd36a01cd5b166a0

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 80abfba7321dc81e7df298335eab4a95446ba3038d9ef4ed933b802ff32d2ab6
MD5 f4bcc874ee24cf204b1a44052cb86dd7
BLAKE2b-256 ecefe2bebe8451a7e529e9c544720e0e29696b73b97717eff913b2b1b4451be7

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 e8f5b64c99a91811aecd84bf34b591c505d7eb7dd7798fdfed867df1425e02f0
MD5 354f23877f50d258f6ef2885a0f043cc
BLAKE2b-256 14992b308598d740084ff5ac313881398fd2acac6f212aeceb297c00749c1fd3

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9e6519ec3c3c51b2902b332af0e8f7aa74542d0c646845af5ccb71bbc9a13a70
MD5 118d6811e0ba1dec38d3490087a0022e
BLAKE2b-256 24d4068fe955b5c21d8ecd409ce0dd725cb5ede3024b182c30090f44f1ec5a94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 252b6d90f376ceb3321ee3fe8c626260db25269f6b6cd8b79edbf023d1ec1ba0
MD5 e0ffefdd485fa067578469039c6bc47b
BLAKE2b-256 eb91b37b7e3029160c1d30e44ac2942f84b1a80362aea94cce6f601f30cf736d

See more details on using hashes here.

File details

Details for the file cyclonedds-0.10.2rc1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds-0.10.2rc1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9111178579b9fbfece58697a5de8d2e0df99ec1ec0896032b72098b70f80968e
MD5 524b0e7ddb17a7e67189be81654b211a
BLAKE2b-256 825877d0d9bfa2f1d3ee0368b94de7b9808614cdd30e74fa76388212c7781761

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