package bistro

  1. Overview
  2. Docs
type path =
  1. | FS_path of string
  2. | Cache_id of string
  3. | Cd of path * string list
val cd : path -> string list -> path
type _ t =
  1. | Pure : {
    1. id : string;
    2. value : 'a;
    } -> 'a t
  2. | App : {
    1. id : string;
    2. f : ('a -> 'b) t;
    3. x : 'a t;
    } -> 'b t
  3. | Both : {
    1. id : string;
    2. fst : 'a t;
    3. snd : 'b t;
    } -> ('a * 'b) t
  4. | List : {
    1. id : string;
    2. elts : 'a t list;
    } -> 'a list t
  5. | Eval_path : {
    1. id : string;
    2. workflow : path t;
    } -> string t
  6. | Spawn : {
    1. id : string;
    2. elts : 'a list t;
    3. f : 'a t -> 'b t;
    4. deps : any list;
    } -> 'b list t
  7. | List_nth : {
    1. id : string;
    2. elts : 'a list t;
    3. index : int;
    } -> 'a t
  8. | Input : {
    1. id : string;
    2. path : string;
    3. version : int option;
    } -> path t
  9. | Select : {
    1. id : string;
    2. dir : path t;
    3. sel : string list;
    } -> path t
  10. | Plugin : ('a plugin, any) step -> 'a t
  11. | Shell : (shell_command, any) step -> path t
  12. | Glob : {
    1. id : string;
    2. pattern : string option;
    3. type_selection : [ `File | `Directory ] option;
    4. dir : path t;
    } -> path list t
and ('a, 'b) step = {
  1. id : string;
  2. descr : string;
  3. task : 'a;
  4. np : int;
    (*

    Required number of processors

    *)
  5. mem : int t option;
    (*

    Required memory in MB

    *)
  6. version : int option;
    (*

    Version number of the wrapper

    *)
  7. deps : 'b list;
}
and 'a plugin =
  1. | Value_plugin : (unit -> 'a) t -> 'a plugin
  2. | Path_plugin : (string -> unit) t -> path plugin
and shell_command = token Command.t
and token =
  1. | Path_token of path t
  2. | Path_list_token of {
    1. elts : path list t;
    2. sep : string;
    3. quote : char option;
    }
  3. | String_token of string t
and any =
  1. | Any : _ t -> any
val digest : 'a -> string
val id : 's. 's t -> string
val any : 'a t -> any
module Any : sig ... end
val input : ?version:int -> string -> path t
val select : path t -> string list -> path t
val pure : id:string -> 'a -> 'a t
val pure_data : 'a -> 'a t
val int : 'a -> 'a t
val string : 'a -> 'a t
val app : ('a -> 'b) t -> 'a t -> 'b t
val ($) : ('a -> 'b) t -> 'a t -> 'b t
val both : 'a t -> 'b t -> ('a * 'b) t
val add_mem_dep : 'a t option -> any list -> any list
val cached_value : ?descr:string -> ?np:int -> ?mem:int t -> ?version:int -> (unit -> 'a) t -> 'a t
val cached_path : ?descr:string -> ?np:int -> ?mem:int t -> ?version:int -> (string -> unit) t -> path t
val eval_path : path t -> string t
val digestible_cmd : token Command.t -> string Command.t
val shell : ?descr:string -> ?mem:int t -> ?np:int -> ?version:int -> token Command.t list -> path t
val list : 'a t list -> 'a list t
module Set : sig ... end
module Table : sig ... end
module Map : sig ... end
val independent_workflows_aux : (bool * Set.t) Map.t -> Map.key -> from:any -> (bool * Set.t) Map.t
val independent_workflows : Map.key -> from:any -> Set.elt list
val spawn : 'a list t -> f:('a t -> 'b t) -> 'b list t
val list_nth : 'a list t -> int -> 'a t
val glob : ?pattern:string -> ?type_selection:[ `Directory | `File ] -> path t -> path list t