Releases: amakelov/mandala
Releases · amakelov/mandala
`ComputationFrame`s replace old queries, breaking interface changes, simpler internals
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 ofwith storage.run():
now @op
decorator supportsoutput_names
for named outputs- to make collection inputs/outputs of
@op
s transparent to the storage, use the custom type annotation constructorsMList
,MDict
, ...
- any function can be decorated with
- rewrites and simplifies most of the memoization internals
- introduces a much more detailed documentation
Version 0.1.0
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
- The
- Many constraints on
@op
s 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 bywith storage:
- lots of breaking changes to user-facing
storage
methods; see version docs when it comes out.