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-nightly-2022.8.3.tar.gz (155.7 kB view details)

Uploaded Source

Built Distributions

cyclonedds_nightly-2022.8.3-cp310-cp310-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.10 Windows x86-64

cyclonedds_nightly-2022.8.3-cp310-cp310-musllinux_1_1_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

cyclonedds_nightly-2022.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

cyclonedds_nightly-2022.8.3-cp310-cp310-macosx_11_0_arm64.whl (801.1 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

cyclonedds_nightly-2022.8.3-cp310-cp310-macosx_10_9_x86_64.whl (866.7 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

cyclonedds_nightly-2022.8.3-cp39-cp39-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.9 Windows x86-64

cyclonedds_nightly-2022.8.3-cp39-cp39-musllinux_1_1_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

cyclonedds_nightly-2022.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

cyclonedds_nightly-2022.8.3-cp39-cp39-macosx_11_0_arm64.whl (801.1 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

cyclonedds_nightly-2022.8.3-cp39-cp39-macosx_10_9_x86_64.whl (866.7 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

cyclonedds_nightly-2022.8.3-cp38-cp38-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.8 Windows x86-64

cyclonedds_nightly-2022.8.3-cp38-cp38-musllinux_1_1_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

cyclonedds_nightly-2022.8.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

cyclonedds_nightly-2022.8.3-cp38-cp38-macosx_11_0_arm64.whl (801.1 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

cyclonedds_nightly-2022.8.3-cp38-cp38-macosx_10_9_x86_64.whl (866.7 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

cyclonedds_nightly-2022.8.3-cp37-cp37m-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.7m Windows x86-64

cyclonedds_nightly-2022.8.3-cp37-cp37m-musllinux_1_1_x86_64.whl (6.5 MB view details)

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

cyclonedds_nightly-2022.8.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (6.5 MB view details)

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

cyclonedds_nightly-2022.8.3-cp37-cp37m-macosx_10_9_x86_64.whl (866.5 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file cyclonedds-nightly-2022.8.3.tar.gz.

File metadata

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

File hashes

Hashes for cyclonedds-nightly-2022.8.3.tar.gz
Algorithm Hash digest
SHA256 89dc5b53706496b85cf73448e39e7a82a9be6c7ba7a83633bb331d79ff572138
MD5 863da31ca00ba863788e11b322be4573
BLAKE2b-256 6238b62cca71e888fc6eee824e8b5934aaa4873be0b5dfe4513e65e280906cb7

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fd19c304715a016c3e09ad07cc15d85c0134c5df2c1d9c20af78e7276a0077aa
MD5 11c6fa5b2254e68fe21513d0502334f3
BLAKE2b-256 2fc7f5a6bef2264af0e38534ccb22dc4daaf86fd257b809bacea615d243057fc

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1f977ae9e912fe7bb98f2ce309bba5e46a9ef1bbd11dd1fa9c726fd79466e545
MD5 e7af788b827747bcaa6dd253f240fb84
BLAKE2b-256 e13e9268c1f7ab9e2beab2c7d8e0ccdd3a5d79d07c97193b32b99ee3dcea1b56

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b84b87659489046cbab7f9b2777598014359e055c660cf3367e23c34a8e8eae8
MD5 dbef1f347c4231ae3cd4e50ac60db69e
BLAKE2b-256 36e86103b8838d9a795016796d1c11ddb7f6e17c73051c0857d321c01b3a1010

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e846f5220c771843ff944b41cbd2dae9a879f471924abc6e9e98561e01ecf364
MD5 a6acd95edae81eace779333cf280280c
BLAKE2b-256 d5f18eacc73efe7ce0b1d85cfdea543de29dd45115d86618a116a202c95fa128

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b44d0de37704a98d497cd627232e53622e286d204dc559248a589d4311d2ee7f
MD5 3b6ae014976fabdf8b46071f379d12ae
BLAKE2b-256 88e8915b5a4f9d704306df15839b491fca573247fefe4e58798107bfe7cf901f

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0335c4eaf82de3a186a16782314c42e89f556c7fddb4d32d231445fa97840aa1
MD5 a83a642764fb41d720b7c60529be0ac1
BLAKE2b-256 0eacf5e0f0b62333574b214f7f388644cfe25a3740c4780446c338c07a337e73

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 cfacc885f9c73e37a4a10b41a4f6d2a765df6631c60ee4e44fc005a84c0d72d0
MD5 f7f4cb42e84c3c81c3970b126c9cc077
BLAKE2b-256 4333f0de642d1ea0c95efaebf2a31b99641b1c886879fe682a53e802cbfcef1a

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 424c042a8c17ec17fa8ec61b07b5c1067a9a482298b25d0f57530f0c033cd61c
MD5 302799c2275a4dc6bff475fff59ffcdf
BLAKE2b-256 399a9784d8a55c4ac645bc0e550f28edce30eef708ec0dda5f73485ba3889eb0

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5896f802316bc2e4450146bb60f798f51f653b720899b04087b6a9c26e8cdd43
MD5 9435bb4052133edd35a5f57d9158c0bf
BLAKE2b-256 4f27269136e431ed10f4f69937b3daa760e30ee7da2ad64c49b891b69cb74af6

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 30a48c4c0392e069ddd32a2964970b4e8a20be421dda518460c55a282605324b
MD5 7d4d7ac00170bcaa8678d0592e46adff
BLAKE2b-256 c75f3cedad41b673c7dcc5e704e29e4e64bd6260e9628f5816c23d9b63c1dbf9

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9d439147acc13b11355df4f1d7d33701ebb3f65fe04fd6d206730eb00596c9cd
MD5 14b93dafff5f084b47aea0475a9f2386
BLAKE2b-256 205a28845f094b4815b851f8aa62c422ec8bcd320fe76e1ff898e7de76d84190

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1910c05587495c1abd3ed2c6dcab268da1b34770d20863eb65a1335fc515b4a2
MD5 6c60dacf2d7ebe0e880b1cd26817f63b
BLAKE2b-256 25126ed18ac6a6c4b96b2b99d48596a65a120c1c81c63434e25711ec34380a8a

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 148089ed61e4e79379a8aecf57758df694a695007e0f5a0adf3f9791ebca991c
MD5 2335da13bd465677371e4b822c07db05
BLAKE2b-256 9837ef6194332999b92a46b6537fee40c22505b7295d943a7ab71849aa1d3aef

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 235a13f07dcee70fa1d98af7920ded542600b911a309d0667b922e857677a84f
MD5 c8a92d281a692af84c6adf7f2e3ed3e7
BLAKE2b-256 ac8aa1c6fb257ef0b17717263880eab233359e14b974f652152fbd0538223ea5

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ed48a8906cfe89976069d64c3c3ef012f9b871966a0f3ca8c6b68f4479874ec7
MD5 1a3b6f9c83ac86790d3e0ddab6c67211
BLAKE2b-256 1b2710ece7b380215c7c8ee1783d705ca91c34d3c9c2c0d0f9e1b1aaaec301fe

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 e2aae160050ee304939f9f7fa5fe4d31588032a5a0fd8cb2ed4dccfc20b4aa2d
MD5 2ae7455564cf324c99505d09788029c6
BLAKE2b-256 4971d685e15d001f186fff03d1630e9628558c73616b81dae03714c30e4e4ebf

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4487889351a7d42eece8159075c66c58dd73890918759039eca467ef523f8215
MD5 d366c7f8ffb587b84fdde414fc4d7fb5
BLAKE2b-256 fae7f25d33c2ac8823bba4158cfe4645e3c2bce5fb2aade62af099e34b41dfea

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c55e8f42402972afee66b5dcca645313287a0c4e8ff87373c2a0750930f17f0d
MD5 81e5aba9794eec5f32331243a57b6dc3
BLAKE2b-256 90ef3bf8e6874d773265009efaf94829d19c49fc60a54d9d4224debdbf5f0c67

See more details on using hashes here.

File details

Details for the file cyclonedds_nightly-2022.8.3-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for cyclonedds_nightly-2022.8.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 17c0fa03999ab384b914b1628b16ed2ff1a913d2098f9439941f8c0108304e20
MD5 7f9b6683a5861a9118ca0d4afe97e6a6
BLAKE2b-256 767053bb8a70a334a3f1871ab61f001821beeb9e1da822945ad9735f8ab77931

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