py-umi

Python package to access Universa UMI API from python.


Keywords
Universa, UMI
License
MIT
Install
pip install py-umi==0.2.4

Documentation

py-umi

Build status PyPI Downloads Latest PyPI version License

This is an under-construction official Python package from Universa to facilitate access to the Java library using Universa's UMI protocol.

Installation

pip install py-umi

Usage

Prerequisites

You need to have UMI installed somewhere on your system. To run, UMI requires JVM v1.8.* (or newer) to be installed, too.

UMI can be used in one of three modes:

  • pipe – the UMI instance is dynamically executed in a subprocess, and a pipe is used for communication.
  • tcp – connect to an already running UMI instance via TCP socket.
  • unix – connect to an already running UMI instance via Unix socket.

By default it expects an umi binary to be installed an reachable via the shell $PATH, and will invoke it automatically in pipe mode. Use umi.transport.setupUMI method if you need to switch the connection method to some other.

Example

#!/usr/bin/env python3
from umi.transport import transport
from umi.types import PrivateKey, Contract, RevokePermission

if __name__ == '__main__':
    # The next line is not necessary if umi is reachable via the $PATH
    # transport.setupUMI('pipe', '/usr/local/bin/umi')

    # To connect to an already running UMI instance you may use one of this modes:
    # transport.setupUMI('tcp', host='127.0.0.1', port=12345)  # IPv6 is also ok
    # transport.setupUMI('unix', path='/path-to-the-socket')

    print(transport.version)

    private_key = PrivateKey(size=2048)
    contract = Contract()
    short_address = private_key.public_key.short_address
    owner_role = contract.set_owner_addresses(short_address)
    revoke_permission = RevokePermission(owner_role)
    contract.add_permission(revoke_permission)

Docs and resources

For more information see:

License

This package is available as open source under the terms of the MIT License.