Skip to content
Snippets Groups Projects
Select Git revision
  • 5d71487d9d407420cf8fa98c690a514cfe390bae
  • 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

duniterpy

Moul's avatar
[enh] CI: #100: Use extends instead of Yaml anchors
Moul authored
- `extends` feature comes with GitLab 12.0
- https://docs.gitlab.com/ee/ci/yaml/#extends
5d71487d
History

Duniter Python API

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

Documentation

Examples folder is full of scripts to help you!

But you can also generate and read the autodoc:

  • Install Sphinx:

    pip install -r requirements_dev.txt
  • Generate documentation:

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

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

Development

Warning

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

Packaging and deploy

Pypi

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

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 on the Pypi test repository (use a space before make to not keep command with password in shell history):

[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 (use a space before make to not keep command with password in shell history):

[SPACE]make deploy PYPI_LOGIN=xxxx PYPI_PASSWORD=xxxx