Skip to main content

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.

  • oxiida supports construct and run tasks/jobs with different timespan from seconds to months.
  • oxiida supports run tasks/jobs on local machine, cloud or HPC.
  • oxiida has native support for Workflow Definition Language (WDL).
  • oxiida as 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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oxiida-0.1.0a1.tar.gz (69.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_i686.whl (1.3 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_armv7l.whl (1.3 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (1.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ i686

oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

oxiida-0.1.0a1-cp310-abi3-macosx_11_0_arm64.whl (958.8 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

oxiida-0.1.0a1-cp310-abi3-macosx_10_12_x86_64.whl (970.1 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

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

Hashes for oxiida-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 f0a73c5b99842bca8e369a7356b9f9aa1c78e683c48f7fbc8d3e9cc5e8bd5f6e
MD5 a8b02fc2074dcf4d994a87df429dcd9a
BLAKE2b-256 23aff9cc495605072a1a65ca58eef39a1f81768011b0137e51ae2abc0c461db9

See more details on using hashes here.

File details

Details for the file oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 18ef4bb7c374c537c906b1a3909f2fb2d5fe285afedcedd4faec7c5f04f41aa5
MD5 fcbd86038a74e3cf1d308b280d917c05
BLAKE2b-256 b595c42b3e5daa60cd1ad5e38da48e69c54a81070e4ed0f93df44b143df33774

See more details on using hashes here.

File details

Details for the file oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 9704b69c028bd59c7086d822d3dbe845e0a5b901741a4cf1389b9098fca0beb8
MD5 6788c77bb1d7a84cfc6c71ffc5ff12af
BLAKE2b-256 ca0b47aaaabd57a43ea18f1f358d3a557908c1c80c2cdf7da1e71c4058ac6ca8

See more details on using hashes here.

File details

Details for the file oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 1f44815041de1b836a8084ca3cffc6f0c640364a103f1cbf1958ab48f1e5fc5d
MD5 c8be5bd3364f47c90cedb8b01bd53d67
BLAKE2b-256 c7b11d1a1bdae1ffb769d6987049103f859fa1321716a5d9cbc2a79ccae48825

See more details on using hashes here.

File details

Details for the file oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for oxiida-0.1.0a1-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 07756d7d5e01de70ddf73f3eb2881fcfae1875199e0672685a2f568d734627c7
MD5 ca536d35da31c183b283d479db49c80a
BLAKE2b-256 87f1092fb794d36ba25679fed77f7462b8d2c9042c8c49ec0870219495ebf846

See more details on using hashes here.

File details

Details for the file oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7e5e8273bd5ca0fcaeee91985f875b5b8a77d830ac834cde57869258cbebf91a
MD5 fc6fbd3bb8f5ce5d7995edfc258eb98c
BLAKE2b-256 74a051ef1b00ca8f5a1f745208849414568885f6e9523394cbaa4975cbeab3af

See more details on using hashes here.

File details

Details for the file oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 26ec99aa16fcc83f52792885b06070e36f398360306cb9a1ea5e56cbdf950226
MD5 76f3286f298ecd7a46b397fed9a1302c
BLAKE2b-256 f3ade514b5a0dccb28537e72f53c51d1ea6ccebf8e574b3220df7130632a1246

See more details on using hashes here.

File details

Details for the file oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 71b24a8b2a56c4ef8e608fde5dec246ba9a9865a35a857a12955656ecf722c0c
MD5 85e9ff88a8606b7f6ef4dbb7ecfcd787
BLAKE2b-256 27acdede108b5d1b17523ffe56c8f054c3e1d9e9b9ea1169eb01a6dd9dd8900c

See more details on using hashes here.

File details

Details for the file oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for oxiida-0.1.0a1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 4cbd4f1ec6bcb2e15680073294c3daab221f43cd63b84a94466f9e8aaf26b687
MD5 7b74bcdd3339fafeb8cd068dce10f67d
BLAKE2b-256 39cd16b029796a24f4b6e48254246dd670480d1f64b63f212f09cf58ccbc2a84

See more details on using hashes here.

File details

Details for the file oxiida-0.1.0a1-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxiida-0.1.0a1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f9b27cfa756cf66b643d35faf37b4e06f524a8df7fd1e2ef48fb47a0f8b1443f
MD5 09542a93f86aa9b2b989d9200dff62c0
BLAKE2b-256 18d1fc3cac398af28c15689227fa65b3dd6a2dcd0a66a9171b932fe836ab25bf

See more details on using hashes here.

File details

Details for the file oxiida-0.1.0a1-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for oxiida-0.1.0a1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b800d913b7158035e78e0458084bac849e91a7fb4b16b7e9b17acf065b8aaae4
MD5 81c0738958c68dc0cf48d1eee2f24b98
BLAKE2b-256 beffd4192843cd13e164f4f20a7f0bd8b6eac137354e831bdaa3d266217d73d2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page