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
module Docker_image : sig ... end
module Singularity_image : sig ... end
type container_image =
  1. | Docker_image of Docker_image.t
  2. | Singularity_image of Singularity_image.t
val docker_image : ?tag:string -> ?registry:string -> account:string -> name:string -> unit -> container_image
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
  13. | Trywith : {
    1. id : string;
    2. w : 'a t;
    3. failsafe : 'a t;
    } -> 'a t
  14. | Ifelse : {
    1. id : string;
    2. cond : bool t;
    3. _then_ : 'a t;
    4. _else_ : 'a t;
    } -> 'a 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 = {
  1. cmd : token Command.t;
  2. images : container_image list;
}
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
val compare_token : token -> token -> int
module Any : sig ... end
val input : ?version:int -> string -> path t
val select : path t -> string list -> path t
val pure : id:string -> 'a -> 'b t
val data : 'a -> 'b t
val int : 'a -> 'a t
val string : 'a -> 'a t
val app : ('a -> 'b) t -> 'c t -> 'd t
val ($) : ('a -> 'b) t -> 'a t -> 'b t
val both : 'a t -> 'b t -> ('c * 'd) t
val add_mem_dep : 'a t option -> any list -> any list
val plugin : ?descr:string -> ?np:int -> ?mem:int t -> ?version:int -> (unit -> 'a) t -> 'b t
val path_plugin : ?descr:string -> ?np:int -> ?mem:int t -> ?version:int -> (string -> unit) t -> path t
val 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 -> ?img:container_image list -> token Command.t list -> path t
val list : 'a t list -> 'b list t
val independent_workflows_aux : (bool * Any.Set.t) Any.Map.t -> Any.Map.key -> from:any -> (bool * Any.Set.t) Any.Map.t
val independent_workflows : Any.Map.key -> from:any -> Any.Set.elt list
val spawn : 'a list t -> f:('b t -> 'c t) -> 'd list t
val list_nth : 'a list t -> int -> 'b t
val glob : ?pattern:string -> ?type_selection:[ `Directory | `File ] -> path t -> path list t
val trywith : 'a t -> 'b t -> 'c t
val ifelse : bool t -> 'a t -> 'b t -> 'c t