Skip to main content

high-level Ledger API client for DAML ledgers

Project description

dazl

License

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

This version

7.5.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dazl-7.5.1.tar.gz (321.3 kB view hashes)

Uploaded Source

Built Distribution

dazl-7.5.1-py3-none-any.whl (449.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page