packages feed

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