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.4.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.4-cp310-cp310-win_amd64.whl (1.2 MB view details)

Uploaded CPython 3.10Windows x86-64

cyclonedds-0.10.4-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.4-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.4-cp310-cp310-macosx_11_0_arm64.whl (798.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

cyclonedds-0.10.4-cp310-cp310-macosx_10_9_x86_64.whl (863.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9Windows x86-64

cyclonedds-0.10.4-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.4-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.4-cp39-cp39-macosx_11_0_arm64.whl (798.8 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

cyclonedds-0.10.4-cp39-cp39-macosx_10_9_x86_64.whl (863.7 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

cyclonedds-0.10.4-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.4-cp38-cp38-macosx_11_0_arm64.whl (798.8 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

cyclonedds-0.10.4-cp38-cp38-macosx_10_9_x86_64.whl (863.7 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

cyclonedds-0.10.4-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.4-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.4-cp37-cp37m-macosx_10_9_x86_64.whl (863.6 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: cyclonedds-0.10.4.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.4.tar.gz
Algorithm Hash digest
SHA256 f53aa4d7e8d7af6e91e3a291345d6cbb8bd2d629083202f4031bd912a2861f6b
MD5 7b9fcb4a164f477ad5a3c46c703b41e5
BLAKE2b-256 e7cd97d7073f7438faf42b3dd6f382b78dfe4d3bd7f41bead366d098dfbf8d2f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 10a3500d5a3c735e4fbc1a61136b83a0bb5ae34fd01fecbacbd02f72b3b6c082
MD5 cb5c77bd1b35a318233a053001f04e78
BLAKE2b-256 1cb0b0412c8a27861bc2eb05a22268bf2c9f3d0a1dd1d6346bce90815690071e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 949b1a29099e18b2ce2afa5588f2496d8da074d057ca82f785eac7027ef564e1
MD5 bbec081d2bbc214cb498e5c985980aa8
BLAKE2b-256 339fa20d9dba588777046fcb4e7946304c241959f20553c7b5c25c3c939dec00

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eeaf8cfa31cefcf38bebc7820e0e2dc8fa653deab9944c276944fb106ee37d21
MD5 fa584e7e31da05cb1e2cf6939c1ec449
BLAKE2b-256 62adbaf586d5c43535b02e7012566bfe9da4d09c64f06a799a9a9a1909934308

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4f22276b7049c48bf18ac581f62fffec725c7b3db8e1dabde01068aaecf3b9d7
MD5 00147daba5e6b226f8e5d54ccdf7251b
BLAKE2b-256 c1ec0a97ee0a376acaa0ebedb47b6a73d370f40e759391dcc829aa282d7f81fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e87f5d26daea543704185e455248b3dbece0065a0de1e5815227dd662e75d02d
MD5 0644a32259b888b1daaf1e536ca0a7a8
BLAKE2b-256 317e39207e2f6daf603990bb3f915e48c5a2586e1dc2cc2424ce590a260c5a18

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cyclonedds-0.10.4-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for cyclonedds-0.10.4-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 43e9ae09269fd9f3db14f6b4f1b1accfabe4a6978ea147592a1c4ae389cde51c
MD5 4629fcc653bac57222e1bdbefa7bc146
BLAKE2b-256 f0f00a3408c77bf34bf943f77abb40610b39d6fe6abdabb09a39ca4f98f37471

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c6c413cea82096a8c4b50152c18355a3eaa3662f799f38628595fa071adc3f1a
MD5 02422e1c55f82ac402386f478f5a0de4
BLAKE2b-256 96e063549356a630033ed24d43d6526e5e75848df72ec6a25c734885a7847bc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0b0649a675868f1d2bfd2dee0e065d8c3ffcac9b0cce0a3fc312da4f166541ee
MD5 f9099c22c07116eb7534bb06ab26fb79
BLAKE2b-256 c1ffb6122eeeb2ec1354513815b8db73fd0561e5b90c2c17a8a3ba99297c48ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3b4b935e7fbcd57b28f11b4b09debc212c7c4c01758a88fc5d662779d5bb1e6d
MD5 62a9fde83bf47496f2608faf7d9b7106
BLAKE2b-256 91d79cab0d9c519aa5881e2c5d9c3f417c5b199e378cefcebdec4bb7826393f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a42221a2eb51e2a5b5cae45de86d7526dc6aa4906559a0ba3d97a552ddff8fc9
MD5 cd23f5fdcbc21cc820f2e3b79c8e2df3
BLAKE2b-256 674a0e9c118faff44538e5bfc216d75f3c3945fe8db6a79229ba2aa9e0667a4b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cyclonedds-0.10.4-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for cyclonedds-0.10.4-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 bed683ff73de0edd822dece9109a9b20cf18072671b7bc9a0384a649fce5bd64
MD5 8c48793dc8de23fe751cf389f981fba8
BLAKE2b-256 48e23ffb35dd9e2e663db35495fbdf8297e7e622e13767c225eccda6c3fd1a3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c02437ce701255a23dbd95a4405e1dbff7dccc57dfb2da8c663a31a3df6012aa
MD5 ce1d5072f162cd372ae177fcd7cb0941
BLAKE2b-256 eb01f834f043b77cc7ce74e282052b779aa74b310e962e3dad3af6f91c87610b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e27160fb982b032aba36d78c3225f366764cdfdf0f188a40d7dd742c325221cd
MD5 71b79c6819855201906d9e543936d501
BLAKE2b-256 8d44e1844cf540fddd1ad34d437cc6646381ecc4eae98a39539b12c9facdf5a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e493eed96ea2ed298ceafb01ad9dee3a6d99d7ad2a2b22759dab360fe9fa91ba
MD5 329615677f9e1f25cb7267fa2c69f474
BLAKE2b-256 2e01b46bdee3ff397530269a9a3453405cfc9cb89d04d2d7360d0c7a89092144

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 55a8fcf8d13107cb446ac1bccfa0cd48b4b799b3dc8ea6d8df16eb1f977e40b8
MD5 4463f7270128adfc39ae4835255e572b
BLAKE2b-256 39a30b97d20e2cb11f7ffa76921404e2f05ec76552d0714d043d85268f53d90a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cyclonedds-0.10.4-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for cyclonedds-0.10.4-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ea24716e90903ea61c866992d138d32017929122423367acb8dec52555af2875
MD5 11ae18824b4c45fb568f34adda2d23d5
BLAKE2b-256 835f58f59e8f4df4393883dbd0a6c10f86447341eb98382268fd75149c68bdc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f45277b87dd118a5f80d775692ad39315a9b3b61486ce0720fd717abc09187b0
MD5 9f79fc6e7f09e36c9cc2db450a5b4a4e
BLAKE2b-256 1aa35228e79159a03d2a3c8110f8dbe68335af30fb669d70318b2b501acc3b7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e1dcd9e6447742a42165506314c4421fe0e651938814da97c562c02ef0318706
MD5 fc539d4a6b42d6c8d1fc23877f37b235
BLAKE2b-256 b084066852dd8ef7d37edda2b0eb3044ee30405bed75df727efda61b2f91b480

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cyclonedds-0.10.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 00fc7a28bba2cd72ad7a7b3aef1ab70c632510f314756c995d3225b733e86774
MD5 e672a5108ad9adb7618ec04d773ac974
BLAKE2b-256 a474a5b6039a348fb5411ac5ccc45725a4b5e2f31c0f08790acc0faf8d13911f

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