Python package to access Universa UMI API from python.
Project description
py-umi
This is an under-construction official Python package from Universa to facilitate access to the Java library using Universa's UMI protocol.
Installation
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.