Skip to main content

A python library for [duniter](https://git.duniter.org/nodes/typescript/duniter) client developers

Project description

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

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.56.0.tar.gz (46.1 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.56.0-py3-none-any.whl (78.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: duniterpy-0.56.0.tar.gz
  • Upload date:
  • Size: 46.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for duniterpy-0.56.0.tar.gz
Algorithm Hash digest
SHA256 bf6852fbc15841f16910424c6a89ddf7374afc1728238f19e1ba4c932d430dc1
MD5 4ff14642976efae066783dec4d9f73b4
BLAKE2b-256 5b52ad19c2bbb808a2ed9264ab04b20d7a8605f8c917381479be0362ac4fef70

See more details on using hashes here.

File details

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

File metadata

  • Download URL: duniterpy-0.56.0-py3-none-any.whl
  • Upload date:
  • Size: 78.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for duniterpy-0.56.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4027cf3820f479e0adad8d111e6d9e5745213c5736d91217aae8864ec6879e49
MD5 17ef86036fe2ec8faaf269a934e28e5d
BLAKE2b-256 f39dc00200dd079804346e62d4195c678c256510ce6ffcbfa9d91595c4e76600

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