SciFlow-0.2.0: SciFlow.cabal
-- Initial SciFlow.cabal generated by cabal init. For further
-- documentation, see http://haskell.org/cabal/users-guide/
name: SciFlow
version: 0.2.0
synopsis: Scientific workflow management system
description:
SciFlow is to help programmers design complex workflows
with ease.
.
Feature includes:
.
1. Use "labeled" arrows to connect individual steps
and cache computational results.
.
2. 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
.
license: MIT
license-file: LICENSE
author: Kai Zhang
maintainer: kai@kzhang.org
copyright: (c) 2015 Kai Zhang
category: Control
build-type: Simple
-- extra-source-files:
cabal-version: >=1.10
library
exposed-modules:
Scientific.Workflow
Scientific.Workflow.Types
Scientific.Workflow.Builder
Scientific.Workflow.Builder.TH
Scientific.Workflow.Serialization
Scientific.Workflow.Serialization.Show
Scientific.Workflow.Serialization.Yaml
-- other-modules:
-- other-extensions:
build-depends:
base >=4.0 && <5.0
, bytestring
, data-default-class
, mtl
, shelly
, text
, template-haskell
, unordered-containers >=0.2
, yaml
hs-source-dirs: src
default-language: Haskell2010
source-repository head
type: git
location: https://github.com/kaizhang/SciFlow.git