SciFlow: Scientific workflow management system
SciFlow is to help programmers design complex workflows with ease.
Feature includes:
Use "labeled" arrows to connect individual steps and cache computational results.
Use monad and template haskell to automate the process of building DAGs.
Here is a trivial example. Since we use template haskell, we need to divide this small program into two files.
-- File 1: MyModule.hs
module MyModule where
import Control.Arrow
import Scientific.Workflow
input :: Actor () Int
input = arr $ const 10
plus1 :: Actor Int Int
plus1 = arr (+1)
mul2 :: Actor Int Int
mul2 = arr (*2)
combine :: Actor (Int, Int) Int
combine = arr $ \(a,b) -> a + b
-- builder monad
builder :: Builder ()
builder = do
node "id000" "input" "this is input"
node "id001" "plus1" "add 1 to the input"
node "id002" "mul2" "double the input"
node "id003" "combine" "combine two input"
"id000" ~> "id001"
"id000" ~> "id002"
link2 ("id001", "id002") "id003"
--------------------------------------------
-- File 2: main.hs
import Scientific.Workflow
import MyModule
import Data.Default
-- assemble workflow using template haskell
$(mkWorkflow "myWorkflow" builder)
main = do result <- runWorkflow myWorkflow def
print result
Modules
[Index]
Downloads
- SciFlow-0.1.0.tar.gz [browse] (Cabal source package)
- Package description (revised from the package)
Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 0.1.0, 0.2.0, 0.3.0, 0.4.0, 0.4.1, 0.5.0, 0.5.1, 0.5.3.1, 0.6.0, 0.6.1, 0.6.2, 0.7.0 |
|---|---|
| Dependencies | base (>=4.0 && <5.0), bytestring, data-default-class, mtl, shelly, template-haskell, text, unordered-containers (>=0.2), yaml [details] |
| License | MIT |
| Copyright | (c) 2015 Kai Zhang |
| Author | Kai Zhang |
| Maintainer | kai@kzhang.org |
| Revised | Revision 2 made by kaizhang at 2015-04-16T18:30:44Z |
| Category | Control |
| Source repo | head: git clone https://github.com/kaizhang/SciFlow.git |
| Uploaded | by kaizhang at 2015-04-16T17:55:39Z |
| Distributions | |
| Reverse Dependencies | 2 direct, 0 indirect [details] |
| Downloads | 8753 total (23 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs available [build log] Last success reported on 2015-04-18 [all 1 reports] |