duniterpy


Nameduniterpy JSON
Version 1.2.0 PyPI version JSON
download
home_pagehttps://git.duniter.org/clients/python/duniterpy
SummaryPython library for developers of Duniter clients
upload_time2024-01-31 21:02:53
maintainervit
docs_urlNone
authorinso
requires_python>=3.8.0,<4.0.0
licenseGPL-3.0-or-later
keywords g1 duniter cryptocurrency librecurrency library
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # DuniterPy

Most complete client oriented Python library for [Duniter](https://git.duniter.org/nodes/typescript/duniter)/Ğ1 ecosystem.

This library was originally developed for [Sakia](https://git.duniter.org/clients/python/sakia) desktop client which is now discontinued.
It is currently used by following programs:

- [Tikka](https://git.duniter.org/clients/python/tikka), the desktop client.
- [Silkaj](https://silkaj.duniter.org/), command line client.
- [Jaklis](https://git.p2p.legal/axiom-team/jaklis), command line client for Cs+/Gchange pods.
- [Ğ1Dons](https://git.duniter.org/matograine/g1pourboire), Ğ1Dons, paper-wallet generator aimed at giving tips in Ğ1.

## Features

### Network

- APIs support: BMA, GVA, WS2P, and CS+:
  - [Basic Merkle API](https://git.duniter.org/nodes/typescript/duniter/-/blob/dev/doc/HTTP_API.md), first Duniter API to be deprecated
  - GraphQL Verification API, Duniter API in developement meant to replace BMA. Based on GraphQL.
  - Websocket to Peer, Duniter inter-nodes (servers) API
  - Cesium+, non-Duniter API, used to store profile data related to the blockchain as well as ads for Cesium and Ğchange.
- Non-threaded asynchronous/synchronous connections
- Support HTTP, HTTPS, and WebSocket transport for the APIs
- Endpoints management

### Blockchain

- Support [Duniter blockchain protocol](https://git.duniter.org/documents/rfcs#duniter-blockchain-protocol-dubp)
- Duniter documents management: transaction, block and WoT documents
- Multiple authentication methods
- Duniter signing key
- Sign/verify and encrypt/decrypt messages with Duniter credentials

## Requirements

- Python >= 3.8.0
- [graphql-core](https://pypi.org/project/graphql-core)
- [websocket-client](https://pypi.org/project/websocket-client)
- [jsonschema](https://pypi.org/project/jsonschema)
- [pyPEG2](https://pypi.org/project/pyPEG2)
- [base58](https://pypi.org/project/base58)
- [libnacl](https://pypi.org/project/libnacl)
- [pyaes](https://pypi.org/project/pyaes)
- [mnemonic](https://pypi.org/project/mnemonic)

## Installation

You will require following dependencies:

```bash
sudo apt install python3-pip python3-dev python3-wheel libsodium23
```

You can install DuniterPy and its dependencies with following command:

```sh
pip install --user duniterpy
```

Once you want to add DuniterPy to your Python project, you can add it as a dependency to your Python development environment: `pyproject.toml`, `requirements.txt`, `setup.py`.
We recommend [Poetry](https://python-poetry.org) usage.

## Documentation

[Online official automaticaly generated documentation](https://clients.pages.duniter.org/python/duniterpy/index.html)

## Examples

The [examples folder](https://git.duniter.org/clients/python/duniterpy/tree/master/examples) contains scripts to help you!

- Have a look at the `examples` folder
- Run examples from parent folder directly

```bash
python examples/request_data.py
```

Or from Python interpreter:

```bash
python
>>> import examples
# To list available examples
>>> help(examples)
# Run example
>>> examples.create_public_key()
```

`request_data_async` example requires to be run with `asyncio`:

```bash
>>> import examples, asyncio
>>> asyncio.get_event_loop().run_until_complete(examples.request_data_async())
```

## Contributing

- Checkout the [contributing guide](CONTRIBUTING.md).

## Packaging status

[![Packaging status](https://repology.org/badge/vertical-allrepos/python:duniterpy.svg)](https://repology.org/project/python:duniterpy/versions)

            

Raw data

            {
    "_id": null,
    "home_page": "https://git.duniter.org/clients/python/duniterpy",
    "name": "duniterpy",
    "maintainer": "vit",
    "docs_url": null,
    "requires_python": ">=3.8.0,<4.0.0",
    "maintainer_email": "vit@free.fr",
    "keywords": "g1,duniter,cryptocurrency,librecurrency,library",
    "author": "inso",
    "author_email": "insomniak.fr@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/a9/22/e6062d0250decdd90de297b78766aa95a06b4d889950c3a469b82e15eae7/duniterpy-1.2.0.tar.gz",
    "platform": null,
    "description": "# DuniterPy\n\nMost complete client oriented Python library for [Duniter](https://git.duniter.org/nodes/typescript/duniter)/\u011e1 ecosystem.\n\nThis library was originally developed for [Sakia](https://git.duniter.org/clients/python/sakia) desktop client which is now discontinued.\nIt is currently used by following programs:\n\n- [Tikka](https://git.duniter.org/clients/python/tikka), the desktop client.\n- [Silkaj](https://silkaj.duniter.org/), command line client.\n- [Jaklis](https://git.p2p.legal/axiom-team/jaklis), command line client for Cs+/Gchange pods.\n- [\u011e1Dons](https://git.duniter.org/matograine/g1pourboire), \u011e1Dons, paper-wallet generator aimed at giving tips in \u011e1.\n\n## Features\n\n### Network\n\n- APIs support: BMA, GVA, WS2P, and CS+:\n  - [Basic Merkle API](https://git.duniter.org/nodes/typescript/duniter/-/blob/dev/doc/HTTP_API.md), first Duniter API to be deprecated\n  - GraphQL Verification API, Duniter API in developement meant to replace BMA. Based on GraphQL.\n  - Websocket to Peer, Duniter inter-nodes (servers) API\n  - Cesium+, non-Duniter API, used to store profile data related to the blockchain as well as ads for Cesium and \u011echange.\n- Non-threaded asynchronous/synchronous connections\n- Support HTTP, HTTPS, and WebSocket transport for the APIs\n- Endpoints management\n\n### Blockchain\n\n- Support [Duniter blockchain protocol](https://git.duniter.org/documents/rfcs#duniter-blockchain-protocol-dubp)\n- Duniter documents management: transaction, block and WoT documents\n- Multiple authentication methods\n- Duniter signing key\n- Sign/verify and encrypt/decrypt messages with Duniter credentials\n\n## Requirements\n\n- Python >= 3.8.0\n- [graphql-core](https://pypi.org/project/graphql-core)\n- [websocket-client](https://pypi.org/project/websocket-client)\n- [jsonschema](https://pypi.org/project/jsonschema)\n- [pyPEG2](https://pypi.org/project/pyPEG2)\n- [base58](https://pypi.org/project/base58)\n- [libnacl](https://pypi.org/project/libnacl)\n- [pyaes](https://pypi.org/project/pyaes)\n- [mnemonic](https://pypi.org/project/mnemonic)\n\n## Installation\n\nYou will require following dependencies:\n\n```bash\nsudo apt install python3-pip python3-dev python3-wheel libsodium23\n```\n\nYou can install DuniterPy and its dependencies with following command:\n\n```sh\npip install --user duniterpy\n```\n\nOnce you want to add DuniterPy to your Python project, you can add it as a dependency to your Python development environment: `pyproject.toml`, `requirements.txt`, `setup.py`.\nWe recommend [Poetry](https://python-poetry.org) usage.\n\n## Documentation\n\n[Online official automaticaly generated documentation](https://clients.pages.duniter.org/python/duniterpy/index.html)\n\n## Examples\n\nThe [examples folder](https://git.duniter.org/clients/python/duniterpy/tree/master/examples) contains scripts to help you!\n\n- Have a look at the `examples` folder\n- Run examples from parent folder directly\n\n```bash\npython examples/request_data.py\n```\n\nOr from Python interpreter:\n\n```bash\npython\n>>> import examples\n# To list available examples\n>>> help(examples)\n# Run example\n>>> examples.create_public_key()\n```\n\n`request_data_async` example requires to be run with `asyncio`:\n\n```bash\n>>> import examples, asyncio\n>>> asyncio.get_event_loop().run_until_complete(examples.request_data_async())\n```\n\n## Contributing\n\n- Checkout the [contributing guide](CONTRIBUTING.md).\n\n## Packaging status\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/python:duniterpy.svg)](https://repology.org/project/python:duniterpy/versions)\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": "Python library for developers of Duniter clients",
    "version": "1.2.0",
    "project_urls": {
        "Changelog": "https://git.duniter.org/clients/python/duniterpy/-/blob/main/CHANGELOG.md",
        "Documentation": "https://clients.pages.duniter.org/python/duniterpy/index.html",
        "Homepage": "https://git.duniter.org/clients/python/duniterpy",
        "Repository": "https://git.duniter.org/clients/python/duniterpy"
    },
    "split_keywords": [
        "g1",
        "duniter",
        "cryptocurrency",
        "librecurrency",
        "library"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "38b3d41fa204804040e053e302d2489ab8390283d8ec033707d02463deb80f9a",
                "md5": "cb1b45eb0f81bdee8780b43b5b50dec0",
                "sha256": "073e661ab784d2f929b9f1999f44f932be853facfa8e3870ae29b75912c81321"
            },
            "downloads": -1,
            "filename": "duniterpy-1.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cb1b45eb0f81bdee8780b43b5b50dec0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8.0,<4.0.0",
            "size": 136347,
            "upload_time": "2024-01-31T21:02:51",
            "upload_time_iso_8601": "2024-01-31T21:02:51.160880Z",
            "url": "https://files.pythonhosted.org/packages/38/b3/d41fa204804040e053e302d2489ab8390283d8ec033707d02463deb80f9a/duniterpy-1.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a922e6062d0250decdd90de297b78766aa95a06b4d889950c3a469b82e15eae7",
                "md5": "391cc2523e60bebc2f70628db7d6a7aa",
                "sha256": "9826f410b292b79fd83be624c4eee4db68e568239564183626787667f4b2a506"
            },
            "downloads": -1,
            "filename": "duniterpy-1.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "391cc2523e60bebc2f70628db7d6a7aa",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8.0,<4.0.0",
            "size": 72404,
            "upload_time": "2024-01-31T21:02:53",
            "upload_time_iso_8601": "2024-01-31T21:02:53.560177Z",
            "url": "https://files.pythonhosted.org/packages/a9/22/e6062d0250decdd90de297b78766aa95a06b4d889950c3a469b82e15eae7/duniterpy-1.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-31 21:02:53",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "duniterpy"
}
        
Elapsed time: 0.18518s