Calculation framework
Project description
Mona
Mona is a calculation framework that provides persistent memoization and turns the Python call stack into a task dependency graph. The graph contains three types of edges: a task input depending on outputs of other tasks, a task creating new tasks, and a task output referencing outputs of other tasks.
Installing
Install and update using Pip.
pip install -U mona
A simple example
from mona import Mona, Rule
app = Mona()
@Rule
async def total(xs):
return sum(xs)
@app.entry('fib', int)
@Rule
async def fib(n):
if n <= 2:
return 1
return total([fib(n - 1), fib(n - 2)])
$ export MONA_APP=fib:app
$ mona init
Initializing an empty repository in /home/mona/fib/.mona.
$ mona run fib 5
7c3947: fib(5): will run
0383f6: fib(3): will run
b0287d: fib(4): will run
f47d51: fib(1): will run
9fd61c: fib(2): will run
45c92d: total([fib(2), fib(1)]): will run
2c136c: total([fib(3), fib(2)]): will run
521a8b: total([fib(4), fib(3)]): will run
Finished
$ mona graph
from fib import app, fib
with app.create_session() as sess:
assert sess.eval(fib(5)) == sum(sess.eval([fib(4), fib(3)]))
Links
- Documentation: https://azag0.github.io/mona
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mona-0.2.6.tar.gz.
File metadata
- Download URL: mona-0.2.6.tar.gz
- Upload date:
- Size: 51.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.7 CPython/3.7.0 Darwin/18.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
719f129431d4e244610882374f330476773da979cc29b18d8318ceb9a3ad19bc
|
|
| MD5 |
8bb82616fef1a958ab69ce7018f92a34
|
|
| BLAKE2b-256 |
552e19fe563dc5a210684bf2de23c294da775205ade3205f14501c7656ee307a
|
File details
Details for the file mona-0.2.6-py3-none-any.whl.
File metadata
- Download URL: mona-0.2.6-py3-none-any.whl
- Upload date:
- Size: 181.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/0.12.7 CPython/3.7.0 Darwin/18.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9daa7e965f5189935fb17dff881fdcac5ed2dc749fd255f714c6eef5cce8a75
|
|
| MD5 |
7b75aee674da7f631f6269dcb9752885
|
|
| BLAKE2b-256 |
0a02b0e3f05890b569da1629581e967dc0fc47c97f2f3efd996e38f53227e94d
|