A python library for [duniter](https://git.duniter.org/nodes/typescript/duniter) client developers
Project description
Python implementation of Duniter BMA API
This is the most complete python library to communicate with Duniter nodes endpoints.
This library is used by Sakia, the rich client to manage your Duniter’s wallets.
Features
Support Duniter’s Basic Merkle API and protocol
Asynchronous/synchronous without threads
Support HTTP, HTTPS and Web Socket transport for BMA API
Support Elasticsearch Duniter4j API
Duniter signing key
Sign/verify and encrypt/decrypt messages with the Duniter credentials
Requirements
Python >= 3.5.2
Installation
You can install duniter-python-api and all its dependencies via the following pip install:
pip3 install duniterpy
Documentation
Examples folder is full of scripts to help you!
But you can also generate and read the autodoc:
Install Sphinx:
pip install -r requirements_dev.txt
Generate documentation:
make docs
HTML Documentation is generated in docs/_build/html folder.
Please take a look at the document HTTP API to learn more about the BMA API.
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 your code and format it correctly.
Create a python virtual environment with pyenv
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash`
Install dependencies:
pip install -r requirements.txt
Take a look at examples folder
Run examples from parent folder:
PYTHONPATH=`pwd` python examples/request_data.py
Before submit a merge requests, please check the static typing and tests.
Install dev dependencies:
pip install -r requirements_dev.txt
Check static typing with mypy:
make check
Run all unit tests (builtin module unittest) 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
In the development pyenv environment, install the build and deploy tools:
pip install --upgrade -r requirements_deploy.txt
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 on the Pypi test repository (use a space before make to not keep command with password in shell history):
[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 (use a space before make to not keep command with password in shell history):
[SPACE]make deploy PYPI_LOGIN=xxxx PYPI_PASSWORD=xxxx
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.55.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c70f220ec324e4e566321f640b602d53a0c942cfbf3ba1ba30270ed7418f2aea |
|
MD5 | 5943e645ba17f608ab5626489577d00d |
|
BLAKE2b-256 | 2f9191e52b55ba53f85e7ccce267789fec6ebf8b43faa46225e3d75eb6077898 |