Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

A python implementation of [duniter](https://git.duniter.org/nodes/typescript/duniter) API

Project description

https://coveralls.io/repos/duniter/duniter-python-api/badge.svg?branch=master&service=github

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

Installation

You can install duniter-python-api and all its dependencies via the following pip install:

pip3 install duniterpy

Please take a look at the document HTTP API to learn about the API.

Development

  • 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
    

Documentation

When writing docstrings, use the rst format recommended by https://www.python.org/dev/peps/pep-0287/#docstring-significant-features

  • Install Sphinx:

    pip install -r requirements_dev.txt
    
  • Generate documentation:

    make docs
    
  • HTML Documentation is generated in docs/_build/html folder.

  • Examples are more fun than a TLTR doc

Packaging and deploy

Pypi

In the development pyenv environment, install the following tools:

pip install --upgrade pip setuptools wheel

pip install twine

Change the version number (semantic version number):

./release.sh 0.42.3

Build the Pypi package in the dist folder:

python setup.py sdist bdist_wheel

Deploy the package on the Pypi repository:

twine upload dist/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
duniterpy-0.54.3-py3-none-any.whl (111.3 kB) Copy SHA256 hash SHA256 Wheel py3
duniterpy-0.54.3.tar.gz (71.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page