Module STORE.Array

val create : ?sep:[< `Dot | `Slash Slash ] -> ?dimension_names:string option list -> ?attributes:Yojson.Safe.t -> codecs:Codecs.codec_chain -> shape:int array -> chunks:int array -> 'a Ndarray.dtype -> 'a -> Node.Array.t -> t -> unit Deferred.t

create ~sep ~dimension_names ~attributes ~codecs ~shape ~chunks kind fill node t creates an array node in store t where:

  • Separator sep is used in the array's chunk key encoding.
  • Dimension names dimension_names and user attributes attributes are included in it's metadata document.
  • A codec chain defined by codecs.
  • The array has shape shape and chunk shape chunks.
  • The array has data kind kind and fill value fv.
  • raises Codecs.Bytes_to_bytes_invariant

    if codecs contains more than one bytes->bytes codec.

metadata node t returns the metadata of array node node.

val delete : t -> Node.Array.t -> unit Deferred.t

delete t n erases array node n from store t. If node n is not a member of store t then this is a no-op.

val exists : t -> Node.Array.t -> bool Deferred.t

exists t n returns true if array node n is a member of store t and false otherwise.

val write : t -> Node.Array.t -> Ndarray.Indexing.index array -> 'a Ndarray.t -> unit Deferred.t

write t n s x writes n-dimensional array x to the slice s of array node n in store t.

  • raises Invalid_data_type

    if the kind of x is not compatible with node n's data type as described in its metadata document.

read t n s k reads an n-dimensional array of size determined by slice s from array node n.

  • raises Invalid_data_type

    if kind k is not compatible with node n's data type as described in its metadata document.

val reshape : t -> Node.Array.t -> int array -> unit Deferred.t

reshape t n shape resizes array node n of store t into new size shape.

val rename : t -> Node.Array.t -> string -> unit Deferred.t

rename t n name changes the name of array node n in store t to name.

  • raises Renaming_root

    if g is the store's root node.

  • raises Node_invariant

    if name is an invalid node name.