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.0a2.tar.gz (70.4 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.0a2-cp310-abi3-musllinux_1_2_x86_64.whl (1.3 MB view details)

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

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

Uploaded CPython 3.10+musllinux: musl 1.2+ i686

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

Uploaded CPython 3.10+musllinux: musl 1.2+ ARMv7l

oxiida-0.1.0a2-cp310-abi3-musllinux_1_2_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

oxiida-0.1.0a2-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.0a2-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.0a2-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (1.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ i686

oxiida-0.1.0a2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

oxiida-0.1.0a2-cp310-abi3-macosx_11_0_arm64.whl (986.3 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

oxiida-0.1.0a2-cp310-abi3-macosx_10_12_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file oxiida-0.1.0a2.tar.gz.

File metadata

  • Download URL: oxiida-0.1.0a2.tar.gz
  • Upload date:
  • Size: 70.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.3

File hashes

Hashes for oxiida-0.1.0a2.tar.gz
Algorithm Hash digest
SHA256 4c58ace78aa21bd146a1da29e52f417aa96b54fcdd1f3d2339f733530b8a7b6e
MD5 da622d7ab144aa84273eee38d93a3644
BLAKE2b-256 9e9dd74676a8cc61979d2ed2ee0e852391ba9ce00b74c86b6626e6a624f0b6e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxiida-0.1.0a2-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3a932f13b50bfb36713cf1e17992f7bcbed1c2f682120e1b8ed7cae7de0b034b
MD5 5c32fd50297399c643798dd56cd5926c
BLAKE2b-256 d8a3bf0cf5210e81702cad4411a1088442a6eaae9a3b2e54294021d45a75ecd3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxiida-0.1.0a2-cp310-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 488d45cc3d781534043a1fd999c543235bf73c6590cb25507df40d8f2bd1c62b
MD5 e88180dc5f780fb13d2460fe9da46516
BLAKE2b-256 63830300f215fb815bfcdba58a3a267c91c8caf91de0312424e54506ddcf15c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxiida-0.1.0a2-cp310-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 31a2d93da78609c9a51e845318358152223272a2f951d11b274aa4111cf5da7b
MD5 c29ac322ff2786e71e5618886eca70ed
BLAKE2b-256 abebd2fce2dc04ade83a82d3b0794e212be4fe5f100f70dce193cc192daea389

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxiida-0.1.0a2-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 10bcc6043ae553fc1ca32c60d7f9344ffa26e7f48bea335177f6be796241cb6b
MD5 101d3a3145e228e649c8351c596624e8
BLAKE2b-256 268c584d15f9032ab8c1c5de87e49d3a683bd6e815c463faeca7faf358da776d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxiida-0.1.0a2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2feb4dec6dd23c7dae62bbbe6c460d948005d7562aaba5f0904a5a6d8b9c767d
MD5 f1ab928850a2aa48d8247dc290e63126
BLAKE2b-256 9e163a7ab6a8d2441422beb8fedc9fdf769c2bcde07317c8b359b7842e56e217

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxiida-0.1.0a2-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 e9dce50a0c09ad24d2c5ac2d4d55d79edb3b84c9900218dfe0976f0d91a1866b
MD5 fb4f46b12d3ff06ec42c226fa112f646
BLAKE2b-256 d47d83380b33da12c23d3ba30ab6f7b9f33376954553e6984ed0ce699fad81f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxiida-0.1.0a2-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bd60e41c0da891f0051f90da7af4d6001f3231b74c4203075586d66561402def
MD5 8130b16f76b2c20b2341be106262fed4
BLAKE2b-256 8739fbf5f1233a61cdb0e88daaa07e629ee9b1090b4d489a43f8521a3955b4ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxiida-0.1.0a2-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 84508653815e97bd74bc89f7f3093928fd2f216d4065fa3a0dd2bcdae47d5816
MD5 e8ac10fd0953b6e100f1cd21b49ac209
BLAKE2b-256 517091865d2d905783833f84b8bfd6999fc09177c5f0ab64242a059ba6aa8389

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxiida-0.1.0a2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9aeceaa80795c59f1c7be931737586697d9328a27b30bd96a9fa708553fc2283
MD5 be6de7e15b075b02a7fb0cb6a9fdd250
BLAKE2b-256 71dfd40ff050d9f539d0260c95ae6b6c4500112a4fdf7298e9b94f47cf05c22c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oxiida-0.1.0a2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8ec96749c3badc87c899ae844e15e325b1d67b49fdbba0d95aed0df8ee1d2953
MD5 da46ed680ca406a920d7d00e2a7b9a50
BLAKE2b-256 79b3c9b2909a4ee5f03d0c925fd29c56feb55b5e19e87eb2f6c930c98977e6fd

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