Skip to main content

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

    make tests test_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.

Source Distribution

duniterpy-0.53.1.tar.gz (70.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

duniterpy-0.53.1-py3-none-any.whl (110.6 kB view details)

Uploaded Python 3

File details

Details for the file duniterpy-0.53.1.tar.gz.

File metadata

  • Download URL: duniterpy-0.53.1.tar.gz
  • Upload date:
  • Size: 70.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.5

File hashes

Hashes for duniterpy-0.53.1.tar.gz
Algorithm Hash digest
SHA256 4b4683c6d3f3efd31bff9e930f4d1361d906ea8aa405536af4f1421d2c39f8af
MD5 ff9f4db2de5d204372a11ac4ac8fefbc
BLAKE2b-256 99f5b202d930fd949fb84b2f20d8f23e80f4213751e9a2c7d39a5ed87a9146da

See more details on using hashes here.

File details

Details for the file duniterpy-0.53.1-py3-none-any.whl.

File metadata

  • Download URL: duniterpy-0.53.1-py3-none-any.whl
  • Upload date:
  • Size: 110.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.5.5

File hashes

Hashes for duniterpy-0.53.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5c9f5142d5d7e88aba489c12b6206cea8db92ac6f20c74758018a8afe5c4901a
MD5 a6a77c73ff6726f0e5476d9768eeff94
BLAKE2b-256 2231b55bfe113abecf093f79fe2805ee9575d920d53a5e871b96b6c8e966f8d0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page