Python library for developers of Duniter clients
Duniter Python API
Python implementation for Duniter BMA API
This is the most complete Python library to communicate with Duniter nodes endpoints.
This library is used by two clients:
- Support Duniter's Basic Merkle API and protocol
- Asynchronous/synchronous without threads
- Support HTTP, HTTPS and Web Socket transport for the BMA API
- Support Elasticsearch Duniter4j API
- Duniter signing key
- Sign/verify and encrypt/decrypt messages with the Duniter credentials
You can install DuniterPy and its dependencies with the following command:
pip3 install duniterpy --user
Install the development environment
- Install Poetry:
curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python - --preview
Online official automaticaly generated documentation: https://clients.duniter.io/python/duniterpy/index.html
The examples folder contains scripts to help you!
Please take a look at the document HTTP API to learn more about the BMA API.
How to generate and read locally the autodoc:
- Install Sphinx
poetry install -E sphinx
- Generate documentation
poetry run make docs
- The HTML documentation is generated in
- When writing docstrings, use the reStructuredText format recommended by https://www.python.org/dev/peps/pep-0287/#docstring-significant-features
- Use make commands to check the code and the format.
Black, the formatting tool, requires Python 3.6 or higher.
- Install runtime dependencies
poetry install --no-dev
- Have a look at the examples folder
- Run examples from parent folder
poetry run python examples/request_data.py
Before submitting a merge requests, please check the static typing and tests.
Install dev dependencies
- Check static typing with mypy
- Run all unit tests (builtin
- Run only some unit tests by passing a special ENV variable:
make tests TESTS_FILTER=tests.documents.test_block.TestBlock.test_fromraw
Packaging and deploy
Change and commit and tag the new version number (semantic version number)
Build the PyPi package in the
Deploy the package to PyPi test repository (prefix the command with a space in order for the shell not to save in its history system the command containing the password)
[SPACE]make deploy_test PYPI_TEST_LOGIN=xxxx PYPI_TEST_PASSWORD=xxxx
Install the package from PyPi test repository
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.python.org/simple/ duniterpy
Deploy the package on the PyPi repository (prefix the command with a space in order for the shell not to save in its history system the command containing the password)
[SPACE]make deploy PYPI_LOGIN=xxxx PYPI_PASSWORD=xxxx
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.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size duniterpy-0.58.0-py3-none-any.whl (79.1 kB)||File type Wheel||Python version py3||Upload date||Hashes View|
|Filename, size duniterpy-0.58.0.tar.gz (58.6 kB)||File type Source||Python version None||Upload date||Hashes View|
Hashes for duniterpy-0.58.0-py3-none-any.whl