Dazl

Latest version: v7.12.0

Safety actively analyzes 681844 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 10 of 17

7.3.1

Expose a new Network configuration, enable_http_proxy that allows for configuring whether or not the underlying gRPC library uses HTTP proxies (specifically, this flag: https://grpc.github.io/grpc/core/group__grpc__arg__keys.html#gaa3f69f6e1e789e36d2d9c6083fec0257)

To use it:

py
network = Network()
network.set_config(url='...', enable_http_proxy=False)

7.3.0

Fix a race condition when package uploading and ACS fetching happen at around the same time. In previous versions of dazl 7.2.0, if _another_ Ledger API client uploaded a DAR and created a contract while dazl was fetching the ACS, the call would fail because dazl wouldn't have a chance to read metadata for that package. Performance has also been increased for `dazl ls` as it now only loads the minimal set of packages that are required, as opposed to all of them.

Fixing this bug required substantial changes to the way that command serialization and ACS/transaction event parsing work in order to allow these operations to be interrupted and retried if a package happens to be missing. As a result, there are a number of deprecations in dazl 7.3.0.

*If you are _not_ using type information directly, these deprecations will not affect you.*

These are the symbols that are now deprecated; they will be dropped in 8.0.0:

* `dazl.model.types.Type` and related classes have been replaced with `dazl.damlast.daml_lf_1.Type`.
* `dazl.model.types_store.PackageStore` has been replaced by a combination of `dazl.client.pkg_loader.PackageLoader` (responsible for fetching packages) and `dazl.damlast.lookup.SymbolLookup` (responsible for providing matching symbols statically). Calls that may refer to symbols that are known on the server but not yet known on the client can wrap themselves in `PackageLoader.do_with_retry` to ensure that they are safe.
* `dazl.protocols` parsing and serialization routines have been largely replaced by `dazl.values.ValueMapper` and related classes; these classes define the mapping between DAML-LF values and different representations in Python (native types, JSON-compatible types, and Protobuf).
* `dazl.util.prim_types` has largely moved to `dazl.prim`, which centralizes the simple conversions between various Python types.

The default behavior of loading all packages on startup will be CHANGED in dazl 8.0.0 to be more on-demand; code that assumes that all packages are loaded will need to use the new APIs to ensure that they are compatible going forward.

7.2.0

python: Improve performance of reading only package IDs from a DAR. In particular do not fully parse a DAR's constituent DALFs when all that is requested is the set of package IDs (which, ironically, is used to optimize whether or not to fetch and parse DARs from the PackageService).

python: Make dazl properly respect the `use_acs_service` setting. This configuration should have been applied per-`Party`, but inadvertently dazl used a `use_acs_service` value of False regardless of what it was set to.

*NOTE*:
This may be a breaking change for applications that rely on `record_time` for contracts, but this is a relatively uncommon use case. If you require `record_time` to be available through the ACS, set `use_acs_service` to `False`. Note that this will result in a much slower startup time (equivalent to how long it would have taken in dazl 7.1.2 and earlier) as it reads through the ledger's transaction stream from the beginning.

7.1.2

go: Add low-level Ledger API and DAML-LF bindings.
python: No changes.

7.1.1

python: Fix a bug where trying to read a transaction stream with filtered packages on empty ledgers would result in an exception instead of an empty set of transactions.

7.1.0

Page 10 of 17

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.