Package: demessaging
dasf-messaging-pythonDASF: Messaging Pythonis 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 Pythonis 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 DeskFor 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.deDocumentationsee:https://digital-earth.pages.geomar.de/dasf/dasf-messaging-python/PyPI PackagedemessagingDASF: Messaging Pythonis released as a PyPI package calleddemessaging.You may install it via:pipinstalldemessaging[backend]Source Code Examplessee:https://git.geomar.de/digital-earth/dasf/dasf-messaging-python/-/blob/master/ExampleMessageConsumer.pygenerate the counterpart viapython ExampleMessageConsumer.py generate > ExampleMessageProducerGen.pycall the consumer module via the generated producer,
seehttps://git.geomar.de/digital-earth/dasf/dasf-messaging-python/-/blob/master/ExampleMessageProducer.pyHowto make the docsFirst, make sure you havegraphvizinstalled, and runpip install -r docs/requirements.txt.Then change directories into thedocssubfolder and executemakehtmlThe built HTML documentation can be access viadocs/_build/html/index.html.ContributingWe 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.gitclonehttps://git.geomar.de/digital-earth/dasf/dasf-messaging-python.gitcddasf-messaging-python
pipinstall-e.[dev]We use automated formatters (see their config inpyproject.tomlandsetup.cfg), namelyBlackfor standardized
code formattingblackdocfor
standardized code formatting in documentationFlake8for general code
qualityisortfor standardized
order in imports.mypyfor static type checking ontype
hintsWe highly recommend that you setuppre-commit hooksto automatically run all the above tools every time you make a git commit. This
can be done by runningpre-commit installfrom the root of the repository. You can skip the pre-commit checks
withgit commit --no-verifybut note that the CI will fail if it encounters
any formatting errors.You can also run the pre-commit step manually by invokingpre-commit run --all-filesRunning the test suiteTests can be run viatox. Installtoxviapip install toxand simply runtoxfrom the root of the repository.Recommended Software CitationEggert, 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.005LicenseCopyright 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.ContactDr.-Ing. Daniel EggerteMail:daniel.eggert@gfz-potsdam.deHelmholtz Centre Potsdam GFZ German Research Centre for GeoscienesSection 1.4 Remote Sensing & GeoinformaticsTelegrafenberg14473 PotsdamGermany