Skip to content
Snippets Groups Projects
Commit b2faf741 authored by Moul's avatar Moul Committed by Vincent Texier
Browse files

[doc] Improve Readme: add Silkaj, wording

parent 3f7aceda
No related branches found
No related tags found
2 merge requests!94Merge dev into master for release 0.56.0,!83#106 README in Markdown on PyPi
Pipeline #6907 passed
# Duniter Python API # Duniter Python API
Python implementation of [Duniter](https://git.duniter.org/nodes/typescript/duniter) BMA API Python implementation for [Duniter](https://git.duniter.org/nodes/typescript/duniter) BMA API
This is the most complete python library to communicate with Duniter nodes endpoints. This is the most complete Python library to communicate with Duniter nodes endpoints.
This library is used by [Sakia](http://sakia-wallet.org/), the rich client to manage your Duniter's wallets. This library is used by two clients:
- [Sakia](http://sakia-wallet.org/), the rich client to manage your Duniter's wallets.
- [Silkaj](https://silkaj.duniter.org/), the command line client.
## Features ## Features
- Support Duniter's [Basic Merkle API](https://git.duniter.org/nodes/typescript/duniter/blob/master/doc/HTTP_API.md) and [protocol](https://git.duniter.org/nodes/typescript/duniter/blob/master/doc/Protocol.md) - Support Duniter's [Basic Merkle API](https://git.duniter.org/nodes/typescript/duniter/blob/master/doc/HTTP_API.md) and [protocol](https://git.duniter.org/nodes/common/doc/blob/master/rfc/0009_Duniter_Blockchain_Protocol_V11.md)
- Asynchronous/synchronous without threads - Asynchronous/synchronous without threads
- Support HTTP, HTTPS and Web Socket transport for BMA API - Support HTTP, HTTPS and Web Socket transport for the BMA API
- Support [Elasticsearch Duniter4j](https://git.duniter.org/clients/java/duniter4j/blob/master/src/site/markdown/ES.md#request-the-es-node>) API - Support [Elasticsearch Duniter4j](https://git.duniter.org/clients/java/duniter4j/blob/master/src/site/markdown/ES.md#request-the-es-node>) API
- Duniter signing key - Duniter signing key
- Sign/verify and encrypt/decrypt messages with the Duniter credentials - Sign/verify and encrypt/decrypt messages with the Duniter credentials
## Requirements ## Requirements
- Python >= 3.5.2 - Python >= 3.5.3
- [aiohttp >= 0.19](https://pypi.org/pypi/aiohttp) - [aiohttp >= 3.6.1](https://pypi.org/pypi/aiohttp)
- [pylibscrypt](https://pypi.org/pypi/pylibscrypt) - [pylibscrypt](https://pypi.org/pypi/pylibscrypt)
- [libnacl](https://pypi.org/pypi/libnacl) - [libnacl](https://pypi.org/pypi/libnacl)
- [base58](https://pypi.org/pypi/base58) - [base58](https://pypi.org/pypi/base58)
- [attr](https://pypi.org/project/attr/) - [attr](https://pypi.org/project/attr/)
## Installation ## Installation
You can install duniter-python-api and all its dependencies via the following pip install You can install DuniterPy and its dependencies with the following command:
```bash ```bash
pip3 install duniterpy pip3 install duniterpy --user
``` ```
## Documentation ## Documentation
Online official autodoc documentation: https://clients.duniter.io/python/duniterpy/index.html Online official automaticaly generated documentation: https://clients.duniter.io/python/duniterpy/index.html
[Examples folder](https://git.duniter.org/clients/python/duniterpy/tree/master/examples) is full of scripts to help you! The [examples folder](https://git.duniter.org/clients/python/duniterpy/tree/master/examples) contains scripts to help you!
Please take a look at the document [HTTP API](https://git.duniter.org/nodes/typescript/duniter/blob/master/doc/HTTP_API.md) Please take a look at the document [HTTP API](https://git.duniter.org/nodes/typescript/duniter/blob/master/doc/HTTP_API.md) to learn more about the BMA API.
to learn more about the BMA API.
How to generate and read locally the autodoc: How to generate and read locally the autodoc:
...@@ -48,11 +49,11 @@ pip install -r requirements_dev.txt ...@@ -48,11 +49,11 @@ pip install -r requirements_dev.txt
make docs make docs
``` ```
- HTML Documentation is generated in `docs/_build/html` folder. - The HTML documentation is generated in `docs/_build/html` folder.
## Development ## Development
* When writing docstrings, use the reStructuredText format recommended by https://www.python.org/dev/peps/pep-0287/#docstring-significant-features * 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. * Use make commands to check the code and the format it correct.
The development tools require Python 3.6.x or higher. The development tools require Python 3.6.x or higher.
...@@ -66,13 +67,13 @@ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer ...@@ -66,13 +67,13 @@ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer
pip install -r requirements.txt pip install -r requirements.txt
``` ```
* Take a look at examples folder * Have a look at the examples folder
* Run examples from parent folder * Run examples from parent folder
```bash ```bash
PYTHONPATH=`pwd` python examples/request_data.py PYTHONPATH=`pwd` python examples/request_data.py
``` ```
* Before submit a merge requests, please check the static typing and tests. * Before submiting a merge requests, please check the static typing and tests.
* Install dev dependencies * Install dev dependencies
```bash ```bash
...@@ -84,19 +85,19 @@ pip install -r requirements_dev.txt ...@@ -84,19 +85,19 @@ pip install -r requirements_dev.txt
make check make check
``` ```
* Run all unit tests (builtin module unittest) with * Run all unit tests (builtin `unittest` module) with:
```bash ```bash
make tests make tests
``` ```
* Run only some unit tests by passing a special ENV variable * Run only some unit tests by passing a special ENV variable:
```bash ```bash
make tests TESTS_FILTER=tests.documents.test_block.TestBlock.test_fromraw make tests TESTS_FILTER=tests.documents.test_block.TestBlock.test_fromraw
``` ```
## Packaging and deploy ## Packaging and deploy
### Pypi ### PyPi
In the development pyenv environment, install the build and deploy tools In the development pyenv environment, install the tools to build and deploy
```bash ```bash
pip install --upgrade -r requirements_deploy.txt pip install --upgrade -r requirements_deploy.txt
``` ```
...@@ -106,22 +107,22 @@ Change and commit and tag the new version number (semantic version number) ...@@ -106,22 +107,22 @@ Change and commit and tag the new version number (semantic version number)
./release.sh 0.42.3 ./release.sh 0.42.3
``` ```
Build the Pypi package in the ``dist`` folder Build the PyPi package in the `dist` folder
```bash ```bash
make build make build
``` ```
Deploy the package on the Pypi test repository (use a space before make to not keep command with password in shell history) 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)
```bash ```bash
[SPACE]make deploy_test PYPI_TEST_LOGIN=xxxx PYPI_TEST_PASSWORD=xxxx [SPACE]make deploy_test PYPI_TEST_LOGIN=xxxx PYPI_TEST_PASSWORD=xxxx
``` ```
Install the package from Pypi test repository Install the package from PyPi test repository
```bash ```bash
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.python.org/simple/ duniterpy 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) 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)
```bash ```bash
[SPACE]make deploy PYPI_LOGIN=xxxx PYPI_PASSWORD=xxxx [SPACE]make deploy PYPI_LOGIN=xxxx PYPI_PASSWORD=xxxx
``` ```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment