Safe Haskell | None |
---|---|
Language | Haskell2010 |
- 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
:: ToExpQ fun | |
=> PID | Node id |
-> fun | Template Haskell expression representing
functions with type |
-> State Attribute () | Attribues |
-> Builder () |
Declare an IO computational step.
:: ToExpQ fun | |
=> PID | |
-> fun | Template Haskell expression representing
functions with type |
-> State Attribute () | |
-> Builder () |
Declare a pure computational step.
:: ToExpQ fun | |
=> PID | |
-> fun | Template Haskell expression representing
functions with type " |
-> State Attribute () | |
-> Builder () |
Declare a stateful computational step.
:: 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
:: 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.