Skip to content

Releases: amakelov/mandala

`ComputationFrame`s replace old queries, breaking interface changes, simpler internals

11 Jul 16:00
Compare
Choose a tag to compare

This version:

  • introduces ComputationFrame as the way to query storage
  • makes a number of breaking changes and improvements, most important of which are:
    • any function can be decorated with @op now (no need for type annotations for outputs or a fixed set of inputs/outputs)
    • you can use just with storage: instead of with storage.run(): now
    • @op decorator supports output_names for named outputs
    • to make collection inputs/outputs of @ops transparent to the storage, use the custom type annotation constructors MList, MDict, ...
  • rewrites and simplifies most of the memoization internals
  • introduces a much more detailed documentation

Version 0.1.0

21 Jun 20:35
Compare
Choose a tag to compare

A stable and well-tested version, mostly unchanged since approx. early 2023.

A preview of key differences from the current development version coming up next:

  • The query machinery in this version will be replaced in the next version by "computation frames", which provide a more flexible and natural way to declaratively explore storage. In particular:
    • The with storage.query(): context and related semantics will be removed
    • Related to that, functions like storage.similar and their internal mechanics will be removed
  • Many constraints on @ops in this version will be lifted in the next version:
    • variadic positional arguments or variable keyword arguments will be allowed;
    • variable number of outputs will be allowed
    • output annotations will no longer be required
  • with storage.run(): will be replaced by with storage:
  • lots of breaking changes to user-facing storage methods; see version docs when it comes out.