Metadata-Version: 2.1
Name: dazl
Version: 5.6.1
Summary: high-level Ledger API client for DAML ledgers
Home-page: https://digitalasset.com
Author: Digital Asset (Switzerland) GmbH
Author-email: support@digitalasset.com
License: UNKNOWN
Keywords: dazl daml blockchain dlt distribute ledger digital asset da
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Requires-Dist: grpcio (>=1.20.1)
Requires-Dist: protobuf (>=3.7.1)
Requires-Dist: PyYAML
Requires-Dist: semver
Requires-Dist: toposort
Requires-Dist: dataclasses ; python_version < "3.7"
Provides-Extra: prometheus_client
Requires-Dist: prometheus-client ; extra == 'prometheus_client'
Provides-Extra: pygments
Requires-Dist: pygments ; extra == 'pygments'

dazl
====

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/digital-asset/daml/blob/master/LICENSE)
<a href="https://circleci.com/gh/DACH-NY/dazl">
<img src="https://circleci.com/gh/DACH-NY/dazl.svg?style=svg&circle-token=db89890646f1ac65e0b8bb682222599964196b01">
</a>

Rich Python bindings for accessing Ledger API-based applications.

Requirements
------------
* Python 3.6+
* [Pipenv](https://pipenv.readthedocs.io/en/latest/)
* Although not strictly required for building, you'll probably want the [DAML SDK](https://www.daml.com)

Examples
--------

All of the examples below assume you imported `dazl`.

Connect to the ledger and submit a single command:

```py
with dazl.simple_client('http://localhost:7600', 'Alice') as client:
    client.submit_create('Alice', 'My.Template', { someField: 'someText' })
```

Connect to the ledger as a single party, print all contracts, and close:

```py
with dazl.simple_client('http://localhost:7600', 'Alice') as client:
    # wait for the ACS to be fully read
    client.ready()
    contract_dict = client.find_active('*')
print(contract_dict)
```

Connect to the ledger as multiple parties:

```py
network = dazl.Network()
network.set_config(url='http://localhost:7600')

alice = network.simple_party('Alice')
bob = network.simple_party('Bob')

@alice.ledger_ready()
def set_up(event):
    currency_cid, _ = await event.acs_find_one('My.Currency', {"currency": "USD"})
    return dazl.create('SomethingOf.Value', {
        'amount': 100,
        'currency': currency_cid,
        'from': 'Accept',
        'to': 'Bob' })

@bob.ledger_created('SomethingOf.Value')
def on_something_of_value(event):
    return dazl.exercise(event.cid, 'Accept', { 'message': 'Thanks!' })

network.start()
```


Building locally
----------------
```sh
cd python && pipenv run package
```

Tests
-----

```sh
cd python && pipenv run test
```

License
-------
Copyright 2014-2019 Digital Asset


