| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Scientific.Workflow.Internal.Builder
- node :: ToExpQ fun => PID -> fun -> State Attribute () -> Builder ()
- node' :: ToExpQ fun => PID -> fun -> State Attribute () -> Builder ()
- nodeS :: ToExpQ fun => PID -> fun -> State Attribute () -> Builder ()
- nodeP :: ToExpQ fun => Int -> PID -> fun -> State Attribute () -> Builder ()
- nodeP' :: ToExpQ fun => Int -> PID -> fun -> State Attribute () -> Builder ()
- nodePS :: ToExpQ fun => Int -> PID -> fun -> State Attribute () -> Builder ()
- nodeSharedP :: ToExpQ fun => Int -> PID -> fun -> State Attribute () -> Builder ()
- nodeSharedP' :: ToExpQ fun => Int -> PID -> fun -> State Attribute () -> Builder ()
- nodeSharedPS :: ToExpQ fun => Int -> PID -> fun -> State Attribute () -> Builder ()
- link :: [PID] -> PID -> Builder ()
- (~>) :: [PID] -> PID -> Builder ()
- path :: [PID] -> Builder ()
- namespace :: Text -> Builder () -> Builder ()
- buildWorkflow :: String -> Builder () -> Q [Dec]
- buildWorkflowPart :: FilePath -> String -> Builder () -> Q [Dec]
- mkDAG :: Builder () -> DAG
- mkProc :: (DBData a, DBData b, ToJSON config) => PID -> (a -> ProcState config b) -> Processor config a b
Documentation
Arguments
| :: ToExpQ fun | |
| => PID | Node id |
| -> fun | Template Haskell expression representing
functions with type |
| -> State Attribute () | Attribues |
| -> Builder () |
Declare an IO computational step.
Arguments
| :: ToExpQ fun | |
| => PID | |
| -> fun | Template Haskell expression representing
functions with type |
| -> State Attribute () | |
| -> Builder () |
Declare a pure computational step.
Arguments
| :: ToExpQ fun | |
| => PID | |
| -> fun | Template Haskell expression representing
functions with type " |
| -> State Attribute () | |
| -> Builder () |
Declare a stateful computational step.
Arguments
| :: ToExpQ fun | |
| => Int | Batch size for parallel execution. |
| -> PID | |
| -> fun | |
| -> State Attribute () | |
| -> Builder () |
Declare an IO and parallel computational step. This will turn functions
with type "a -> IO b" into functions with type "[a] -> IO [b]". And
[a] will be processed in parallel with provided batch size.
Note: Currently, parallelism is available only when "--remote" flag
is on.
nodeP' :: ToExpQ fun => Int -> PID -> fun -> State Attribute () -> Builder () Source #
Same as but work with pure functions.nodeP
nodePS :: ToExpQ fun => Int -> PID -> fun -> State Attribute () -> Builder () Source #
Same as but work with stateful functions.nodeP
Arguments
| :: ToExpQ fun | |
| => Int | |
| -> PID | |
| -> fun | Template Haskell expression representing
functions with type |
| -> State Attribute () | |
| -> Builder () |
Similar to but work with inputs that are associated with a
shared context. Turn nodeP into
ContextData context a -> IO b.ContextData context [a] -> IO [b]
link :: [PID] -> PID -> Builder () Source #
Declare the dependency between nodes. Example:
node' "step1" [| \() -> 1 :: Int |] $ return () node' "step2" [| \() -> 2 :: Int |] $ return () node' "step3" [| \(x, y) -> x * y |] $ return () link ["step1", "step2"] "step3"
namespace :: Text -> Builder () -> Builder () Source #
Add a prefix to IDs of nodes for a given builder, i.e.,
id becomes prefix_id.
Build the workflow. This function will first create functions defined in the builder. These pieces will then be assembled to form a function that will execute each individual function in a correct order, named $name$.
Build only a part of the workflow that has not been executed. This is used during development for fast compliation.