python module wrapper for the data analytics software framework DASF
DASF: Messaging Python is part of the Data Analytics Software Framework (DASF, https://git.geomar.de/digital-earth/dasf),
developed at the GFZ German Research Centre for Geosciences (https://www.gfz-potsdam.de).
It is funded by the Initiative and Networking Fund of the Helmholtz Association through the Digital Earth project
DASF: Messaging Python is a RPC (remote procedure call) wrapper library for the python programming language. As part of the data analytics software framework DASF, it implements the DASF RPC messaging protocol. This message broker based RPC implementation supports the integration of algorithms and methods implemented in python in a distributed environment. It utilizes pydantic (https://pydantic-docs.helpmanual.io/) for data and model validation using python type annotations. DASF distributes messages via a central message broker. Currently we support a self-developed message broker called dasf-broker-django, as well as an ‘off-the-shelf’ solution called Apache Pulsar. (also see: Message Broker)
For everyone without a Geomar Gitlab account, we setup the Service Desk feature for this repository. It lets you communicate with the developers via a repository specific eMail address. Each request will be tracked via the Gitlab issuse tracker. In order to send a follow-up message, simply reply to the corresponding notification eMail.
DASF: Messaging Python is released as a PyPI package called
You may install it via:
pip install demessaging[backend]
Source Code Examples
- generate the counterpart via
python ExampleMessageConsumer.py generate > ExampleMessageProducerGen.py
- call the consumer module via the generated producer, see https://git.geomar.de/digital-earth/dasf/dasf-messaging-python/-/blob/master/ExampleMessageProducer.py
Howto make the docs
First, make sure you have graphviz
installed, and run
pip install -r docs/requirements.txt.
Then change directories into the
docs subfolder and execute
The built HTML documentation can be access via
We are working on a more detailed contributing guide, but here is the short version:
When you want to contribute to the code, please do clone the source code
repository and install it with the
[dev] extra, i.e.
git clone https://git.geomar.de/digital-earth/dasf/dasf-messaging-python.git
pip install -e .[dev]
We use automated formatters (see their config in
- Black for standardized code formatting
- blackdoc for standardized code formatting in documentation
- Flake8 for general code quality
- isort for standardized order in imports.
- mypy for static type checking on type hints
We highly recommend that you setup pre-commit hooks to automatically run all the above tools every time you make a git commit. This can be done by running
from the root of the repository. You can skip the pre-commit checks
git commit --no-verify but note that the CI will fail if it encounters
any formatting errors.
You can also run the pre-commit step manually by invoking
pre-commit run --all-files
Running the test suite
Tests can be run via
pip install tox and simply run
from the root of the repository.
Recommended Software Citation
Eggert, Daniel; Sommer, Philipp; Dransch, Doris (2021): DASF: Messaging Python: A python RPC wrapper for the data analytics software framework. GFZ Data Services. https://doi.org/10.5880/GFZ.1.4.2021.005
Copyright 2021 Helmholtz Centre Potsdam GFZ German Research Centre for Geosciences, Potsdam, Germany / DASF Data Analytics Software Framework
Licensed under the Apache License, Version 2.0 (the "License");
you may not use these files except in compliance with the License.
You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Dr.-Ing. Daniel Eggert
Helmholtz Centre Potsdam GFZ German Research Centre for Geoscienes
Section 1.4 Remote Sensing & Geoinformatics
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for demessaging-0.3.3-py3-none-any.whl