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

duniterpy

  • Clone with SSH
  • Clone with HTTPS
  • Moul's avatar
    [ci] #118: Split mypy and pylint jobs for more clarity and atomicity
    Moul authored
    Move pylint job to 'tests' stage since it is as slow as tests jobs
    Add 'redshift' label since redshift is a bit faster than mille
    9805fdba
    History

    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

    Install the development environment

    curl -sSL https://raw.githubusercontent.com/sdispater/poetry/master/get-poetry.py | python - --preview

    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
    poetry install -E sphinx
    • Generate documentation
    poetry run make docs
    • The HTML documentation is generated in docs/_build/html folder.

    Development

    Black, the formatting tool, requires Python 3.6 or higher.

    • Install runtime dependencies
    poetry install --no-dev
    • Have a look at the examples folder
    • Run examples from parent folder
    poetry run python examples/request_data.py
    • Before submitting a merge requests, please check the static typing and tests.

    • Install dev dependencies

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

    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

    Packaging status

    Packaging status