napkin-1.0.0
Safe HaskellSafe-Inferred
LanguageGHC2021

Napkin.Spec.Graph.TasksDAGGraph

Synopsis

Documentation

newtype YAMLTask #

Constructors

YAMLTask 

Fields

Instances

Instances details
Generic YAMLTask # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Associated Types

type Rep YAMLTask :: Type -> Type #

Methods

from :: YAMLTask -> Rep YAMLTask x #

to :: Rep YAMLTask x -> YAMLTask #

Show YAMLTask # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Eq YAMLTask # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Ord YAMLTask # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

type Rep YAMLTask # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

type Rep YAMLTask = D1 ('MetaData "YAMLTask" "Napkin.Spec.Graph.TasksDAGGraph" "napkin-1.0.0-B79azc00rn1K8mj00hwhwG" 'True) (C1 ('MetaCons "YAMLTask" 'PrefixI 'True) (S1 ('MetaSel ('Just "unYAMLTask") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

data TableTaskType #

Constructors

CreateAction [UpdateStrategy] 
Entry [TaskId]

subgraph tasks Ids

Exit 
PreHook Int 
PostHook Int 

Instances

Instances details
Generic TableTaskType # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Associated Types

type Rep TableTaskType :: Type -> Type #

Show TableTaskType # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Eq TableTaskType # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Ord TableTaskType # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

type Rep TableTaskType # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

data TaskType #

Instances

Instances details
Generic TaskType # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Associated Types

type Rep TaskType :: Type -> Type #

Methods

from :: TaskType -> Rep TaskType x #

to :: Rep TaskType x -> TaskType #

Eq TaskType # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Ord TaskType # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

type Rep TaskType # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

data Label #

Instances

Instances details
Generic Label # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Associated Types

type Rep Label :: Type -> Type #

Methods

from :: Label -> Rep Label x #

to :: Rep Label x -> Label #

Eq Label # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Methods

(==) :: Label -> Label -> Bool #

(/=) :: Label -> Label -> Bool #

Ord Label # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Methods

compare :: Label -> Label -> Ordering #

(<) :: Label -> Label -> Bool #

(<=) :: Label -> Label -> Bool #

(>) :: Label -> Label -> Bool #

(>=) :: Label -> Label -> Bool #

max :: Label -> Label -> Label #

min :: Label -> Label -> Label #

type Rep Label # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

data ForceTable #

Constructors

Force 
Skip 
ForceHook 
SkipHook 

Instances

Instances details
Show ForceTable # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Eq ForceTable # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

data Task payload #

Instances

Instances details
Generic (Task payload) # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Associated Types

type Rep (Task payload) :: Type -> Type #

Methods

from :: Task payload -> Rep (Task payload) x #

to :: Rep (Task payload) x -> Task payload #

type Rep (Task payload) # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

hasNodeLabel :: (Label -> Bool) -> Task payload -> Bool #

newtype TasksDAG kind b #

Constructors

TasksDAG 

Fields

Instances

Instances details
Generic (TasksDAG kind b) # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Associated Types

type Rep (TasksDAG kind b) :: Type -> Type #

Methods

from :: TasksDAG kind b -> Rep (TasksDAG kind b) x #

to :: Rep (TasksDAG kind b) x -> TasksDAG kind b #

Default (TasksDAG kind b) # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Methods

def :: TasksDAG kind b #

type Rep (TasksDAG kind b) # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

type Rep (TasksDAG kind b) = D1 ('MetaData "TasksDAG" "Napkin.Spec.Graph.TasksDAGGraph" "napkin-1.0.0-B79azc00rn1K8mj00hwhwG" 'True) (C1 ('MetaCons "TasksDAG" 'PrefixI 'True) (S1 ('MetaSel ('Just "nodes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map TaskId (Task (Executable b))))))

data Exec #

data Table #

data Full #

data HookResult bk #

Constructors

HookError (NonEmpty AssertionEntry)

Fatal Assertions

HookOk [AssertionEntry]

Warning Assertions

data TaskResult bk #

Instances

Instances details
Generic (TaskResult bk) # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

Associated Types

type Rep (TaskResult bk) :: Type -> Type #

Methods

from :: TaskResult bk -> Rep (TaskResult bk) x #

to :: Rep (TaskResult bk) x -> TaskResult bk #

type Rep (TaskResult bk) # 
Instance details

Defined in Napkin.Spec.Graph.TasksDAGGraph

type Rep (TaskResult bk) = D1 ('MetaData "TaskResult" "Napkin.Spec.Graph.TasksDAGGraph" "napkin-1.0.0-B79azc00rn1K8mj00hwhwG" 'False) (C1 ('MetaCons "TableResult" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (CreateQueryStats bk))) :+: (C1 ('MetaCons "HookResult" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HookResult bk)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (HookQueryStats bk))) :+: C1 ('MetaCons "NullResult" 'PrefixI 'False) (U1 :: Type -> Type)))

isOkTaskResult :: forall {k} {bk :: k}. TaskResult bk -> Bool #

type TasksDAGGraph kind b = Gr (Task (Executable b)) () #

tasksToGraph :: TasksDAG kind b -> TasksDAGGraph kind b #

topsort :: TasksDAG kind b -> [Task (Executable b)] #

topological graph nodes sort

subgraph :: TasksDAG Full b -> TaskId -> Maybe (Task (Executable b) -> Bool) -> [TaskId] #

transverse Entry node lists of tasks ids checking given property

tags :: Task (Executable b) -> [Text] #

entryNode :: Task (Executable b) -> Maybe [TaskId] #

if is entry node returns subgraph Ids

taskTypeDescription :: TaskType -> Text #

Node type description: Action, Pre Hook, Post Hook, Global Hook, Unmanaged

getDependenciesWithProp :: (Task (Executable b) -> Bool) -> TasksDAG k b -> Task (Executable b) -> Set TaskId #

transverse DAG upstream collecting first node's occurrences satisfying the given property

tablesGraph :: TasksDAG a b -> TasksDAG Table b #

just table tasks nodes graph, data dependencies and global hooks

tablesGraph' :: TasksDAG Full b -> TasksDAG Table b #

table and unmanaged tasks

cleanupGraph :: TasksDAG Full b -> TasksDAG Exec b #

clean up no runnable nodes, remove NullProgram or not #shouldRun nodes, modifying accordingly edges (optional step)