Skip to content
Snippets Groups Projects
Select Git revision
  • 09562d41b61d0747ce2c38b154df5f18c695a07d
  • main default protected
  • release/1.1
  • encrypt_comments
  • mnemonic_dewif
  • authors_rules
  • 0.14
  • rtd
  • 1.2.1 protected
  • 1.2.0 protected
  • 1.1.1 protected
  • 1.1.0 protected
  • 1.0.0 protected
  • 1.0.0rc1 protected
  • 1.0.0rc0 protected
  • 1.0.0-rc protected
  • 0.62.0 protected
  • 0.61.0 protected
  • 0.60.1 protected
  • 0.58.1 protected
  • 0.60.0 protected
  • 0.58.0 protected
  • 0.57.0 protected
  • 0.56.0 protected
  • 0.55.1 protected
  • 0.55.0 protected
  • 0.54.3 protected
  • 0.54.2 protected
28 results

README.md

Blame
  • 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:

    • Sakia, the rich client to manage your Duniter's wallets.
    • Silkaj, the command line client.

    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

    Installation

    You can install DuniterPy and its dependencies with the following command:

    pip3 install duniterpy --user

    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
    pip install -r requirements_dev.txt
    • Generate documentation
    make docs
    • The HTML documentation is generated in docs/_build/html folder.

    Development

    The development tools require Python 3.6.x or higher.

    • 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
    • Have a look at the examples folder
    • Run examples from parent folder
    PYTHONPATH=`pwd` python examples/request_data.py
    • Before submiting 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 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

    In the development pyenv environment, install the tools to build and deploy

    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 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