high-level Ledger API client for DAML ledgers
Project description
dazl
Copyright (c) 2017-2021 Digital Asset (Switzerland) GmbH and/or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0
Rich Python bindings for accessing Ledger API-based applications.
Documentation
The user documentation is available online here.
Installation
If you just want to use the library, you can install it locally with pip
:
pip install --user dazl
Requirements
- Python 3.6+
- Daml Connect
- Python gRPC libraries (1.32.0 or later) and Protobuf
WARNING: The next major version of dazl (v8.0.0) will require Python 3.7 or later.
Examples
All of the examples below assume you imported dazl
, and are running a ledger with the default scenario generated with daml new
.
Connect to the ledger and submit a single command:
import asyncio
import dazl
async def main():
async with dazl.connect('http://localhost:6865', act_as='Alice') as client:
contract = { 'issuer' : 'Alice', 'owner' : 'Alice', 'name' : 'hello world!' }
await client.create('Main:Asset', contract)
# Python 3.7+
asyncio.run(main())
# Python 3.6+
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Connect to the ledger as a single party, print all contracts, and close:
import asyncio
import dazl
from dazl.ledgerutil import ACS
async def main():
async with dazl.connect('http://localhost:6865', read_as='Alice') as conn:
async with ACS(conn, {"*": {}}) as acs:
snapshot = await acs.read()
print(snapshot)
# Python 3.7+
asyncio.run(main())
# Python 3.6+
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
Building locally
You will need additional dependencies to build locally:
- GNU Make
- Poetry for build/dependency management
Once you have these prerequisites in place:
make build
If you see errors about incompatible python versions, switch your environment to python3 using poetry env use python3
, for instance.
Tests
Tests in dazl are written using pytest. You can run them by doing:
make test
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.