Skip to main content

DASF Logo

DOI PyPI version status

dasf-messaging-python

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 (https://www.digitalearth-hgf.de/).

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)


Service Desk

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.

eMail: gitlab+digital-earth-dasf-dasf-messaging-python-1576-issue-@git-issues.geomar.de

Documentation

see: https://digital-earth.pages.geomar.de/dasf/dasf-messaging-python/

PyPI Package demessaging

PyPI version

DASF: Messaging Python is released as a PyPI package called demessaging.

You may install it via:

pip install demessaging[backend]

Source Code Examples

see: https://git.geomar.de/digital-earth/dasf/dasf-messaging-python/-/blob/master/ExampleMessageConsumer.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

make html

The built HTML documentation can be access via docs/_build/html/index.html.

Contributing

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
cd dasf-messaging-python
pip install -e .[dev]

We use automated formatters (see their config in pyproject.toml and setup.cfg), namely

  • 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

pre-commit install

from the root of the repository. You can skip the pre-commit checks with 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 tox. Install tox via pip install tox and simply run

tox

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

License

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

    http://www.apache.org/licenses/LICENSE-2.0

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.

Contact

Dr.-Ing. Daniel Eggert
eMail: daniel.eggert@gfz-potsdam.de

Helmholtz Centre Potsdam GFZ German Research Centre for Geoscienes
Section 1.4 Remote Sensing & Geoinformatics
Telegrafenberg
14473 Potsdam
Germany

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

demessaging-0.3.1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

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

demessaging-0.3.1-py3-none-any.whl (46.0 kB view details)

Uploaded Python 3

File details

Details for the file demessaging-0.3.1.tar.gz.

File metadata

  • Download URL: demessaging-0.3.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for demessaging-0.3.1.tar.gz
Algorithm Hash digest
SHA256 20a022b944ac15cf9733bd22a97898f659a74273888c4fd820ef3cc2bc01270e
MD5 a85d2430da88bba3b357773c6c69c569
BLAKE2b-256 471c0a2e3a081c5a2b895640594a2048bc6888e0adb34a03b7aaaeefbb5d5fa7

See more details on using hashes here.

File details

Details for the file demessaging-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: demessaging-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 46.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for demessaging-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9f909b6fc7f61eefaba87a5eedec10aa9713670bf0430ea1988fb06bde5b319a
MD5 782ded0ccc5b7e446fe9af3361ecf0bf
BLAKE2b-256 66e894fdd1bd1fb57d9ce1a3e2bcecd0a108ce1781433e79e02ac416f32eb682

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 Sentry Error logging StatusPage Status page