Python library for developers of Duniter clients
Project description
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:
Features
- 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
Requirements
- Python >= 3.5.3
- aiohttp >= 3.6.1
- pylibscrypt
- libnacl
- base58
- attr
Installation
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
Documentation
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
docs/_build/html
folder.
Development
- 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
poetry install
- Check static typing with mypy
make check
- Run all unit tests (builtin
unittest
module) with:
make tests
- 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
PyPi
Change and commit and tag the new version number (semantic version number)
./release.sh 0.42.3
Build the PyPi package in the dist
folder
make build
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
Packaging status
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for duniterpy-0.58.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d1dda72e7a25ce693d4fb180230b8fe1df53c7ff34cbc2eacb24ae25e79f042 |
|
MD5 | cc2da5235951531647cb1d5fbc6ab0da |
|
BLAKE2b-256 | dac74dfe8e273f5782b25126b84b37814673746cd3070f34320e35eadfc5d393 |