A DSL for scientific workflow construction.
Project description
oxiida
oxiida is a workflow interpreter for building and controlling processes running on remote resources.
It is opinioned on focusing at running scientific workflows in a high-throughput manner.
oxiidasupports construct and run tasks/jobs with different timespan from seconds to months.oxiidasupports run tasks/jobs on local machine, cloud or HPC.oxiidahas native support for Workflow Definition Language (WDL).oxiidaas a language can embed into Python, Julia and Lua to powerup and standard your current workflow setup.
Construct workflow in Python
Similar as using the arithmetic, now I need to run a function (let's say I want to do high school match with math.sin(x), and a customize function to compute some nonsense stuff).
And this function is defineded or imported in python.
I can run it from Oxiida and also surpass the GIL!
import oxiida
import math
from time import sleep, time
def super_complex_operation(x: float, y: float, z: float) -> float:
intermediate1 = math.sin(x) * math.log1p(abs(y))
intermediate2 = math.exp(-z) + x ** 2
# Sleep 2 sec to demostrat two of them can run concurrently without GIL limitation
sleep(2);
result = (intermediate1 + intermediate2) / (1 + abs(z - y))
print("time:", time.strftime("%Y-%m-%d %H:%M:%S"))
return result
# language = oxiida
workflow = """
require super_complex_operation;
require time, sleep;
para {
print "--anchor--";
seq {
print(super_complex_operation(10, 3, 6));
}
seq {
print(super_complex_operation(5.4, 3, 7));
}
}
"""
if __name__ == '__main__':
oxiida.run(workflow)
The powerfulness of running python function within Oxiida is you are not limited by the python GIL anymore.
Using para block syntax allow to call both functions to run concurrently in separate threadings.
Disclaimer
The name comes from oxiida is the oxidized (it is rusty :crab:) AiiDA, the workflow engine my team are developing.
It is not just another rewrite into rust project, instead I try to redesign it into a standard DSL.
License
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
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 Distributions
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 oxiida-0.1.0a1.tar.gz.
File metadata
- Download URL: oxiida-0.1.0a1.tar.gz
- Upload date:
- Size: 69.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0a73c5b99842bca8e369a7356b9f9aa1c78e683c48f7fbc8d3e9cc5e8bd5f6e
|
|
| MD5 |
a8b02fc2074dcf4d994a87df429dcd9a
|
|
| BLAKE2b-256 |
23aff9cc495605072a1a65ca58eef39a1f81768011b0137e51ae2abc0c461db9
|
File details
Details for the file oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18ef4bb7c374c537c906b1a3909f2fb2d5fe285afedcedd4faec7c5f04f41aa5
|
|
| MD5 |
fcbd86038a74e3cf1d308b280d917c05
|
|
| BLAKE2b-256 |
b595c42b3e5daa60cd1ad5e38da48e69c54a81070e4ed0f93df44b143df33774
|
File details
Details for the file oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_i686.whl.
File metadata
- Download URL: oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_i686.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9704b69c028bd59c7086d822d3dbe845e0a5b901741a4cf1389b9098fca0beb8
|
|
| MD5 |
6788c77bb1d7a84cfc6c71ffc5ff12af
|
|
| BLAKE2b-256 |
ca0b47aaaabd57a43ea18f1f358d3a557908c1c80c2cdf7da1e71c4058ac6ca8
|
File details
Details for the file oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_armv7l.whl.
File metadata
- Download URL: oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_armv7l.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f44815041de1b836a8084ca3cffc6f0c640364a103f1cbf1958ab48f1e5fc5d
|
|
| MD5 |
c8be5bd3364f47c90cedb8b01bd53d67
|
|
| BLAKE2b-256 |
c7b11d1a1bdae1ffb769d6987049103f859fa1321716a5d9cbc2a79ccae48825
|
File details
Details for the file oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_aarch64.whl.
File metadata
- Download URL: oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_aarch64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10+, musllinux: musl 1.2+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07756d7d5e01de70ddf73f3eb2881fcfae1875199e0672685a2f568d734627c7
|
|
| MD5 |
ca536d35da31c183b283d479db49c80a
|
|
| BLAKE2b-256 |
87f1092fb794d36ba25679fed77f7462b8d2c9042c8c49ec0870219495ebf846
|
File details
Details for the file oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e5e8273bd5ca0fcaeee91985f875b5b8a77d830ac834cde57869258cbebf91a
|
|
| MD5 |
fc6fbd3bb8f5ce5d7995edfc258eb98c
|
|
| BLAKE2b-256 |
74a051ef1b00ca8f5a1f745208849414568885f6e9523394cbaa4975cbeab3af
|
File details
Details for the file oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.
File metadata
- Download URL: oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ppc64le
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26ec99aa16fcc83f52792885b06070e36f398360306cb9a1ea5e56cbdf950226
|
|
| MD5 |
76f3286f298ecd7a46b397fed9a1302c
|
|
| BLAKE2b-256 |
f3ade514b5a0dccb28537e72f53c51d1ea6ccebf8e574b3220df7130632a1246
|
File details
Details for the file oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71b24a8b2a56c4ef8e608fde5dec246ba9a9865a35a857a12955656ecf722c0c
|
|
| MD5 |
85e9ff88a8606b7f6ef4dbb7ecfcd787
|
|
| BLAKE2b-256 |
27acdede108b5d1b17523ffe56c8f054c3e1d9e9b9ea1169eb01a6dd9dd8900c
|
File details
Details for the file oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.
File metadata
- Download URL: oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARMv7l
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4cbd4f1ec6bcb2e15680073294c3daab221f43cd63b84a94466f9e8aaf26b687
|
|
| MD5 |
7b74bcdd3339fafeb8cd068dce10f67d
|
|
| BLAKE2b-256 |
39cd16b029796a24f4b6e48254246dd670480d1f64b63f212f09cf58ccbc2a84
|
File details
Details for the file oxiida-0.1.0a1-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: oxiida-0.1.0a1-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 958.8 kB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9b27cfa756cf66b643d35faf37b4e06f524a8df7fd1e2ef48fb47a0f8b1443f
|
|
| MD5 |
09542a93f86aa9b2b989d9200dff62c0
|
|
| BLAKE2b-256 |
18d1fc3cac398af28c15689227fa65b3dd6a2dcd0a66a9171b932fe836ab25bf
|
File details
Details for the file oxiida-0.1.0a1-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: oxiida-0.1.0a1-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 970.1 kB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.8.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b800d913b7158035e78e0458084bac849e91a7fb4b16b7e9b17acf065b8aaae4
|
|
| MD5 |
81c0738958c68dc0cf48d1eee2f24b98
|
|
| BLAKE2b-256 |
beffd4192843cd13e164f4f20a7f0bd8b6eac137354e831bdaa3d266217d73d2
|