libzarr
Header-only C++17 Zarr v2/v3, WASM-compatible
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
zarr::Group Class Reference

A Zarr group bound to a Store. More...

#include <group.hpp>

Public Member Functions

const std::string & path () const
 Node path within the store ("" = root).
 
const jsonattributes () const
 User attributes (.zattrs).
 
void set_attributes (json attributes)
 
Group create_group (const std::string &name)
 
Array create_array (const std::string &name, ArraySpec spec)
 
Group open_group (const std::string &name) const
 Opens a child (possibly nested) group.
 
Array open_array (const std::string &name) const
 Opens a child (possibly nested) array.
 
GroupChildren children () const
 Lists immediate children, classified by their metadata documents.
 

Static Public Member Functions

static Group create (std::shared_ptr< Store > store, const std::string &path="", ZarrFormat format=ZarrFormat::v2)
 
static Group open (std::shared_ptr< Store > store, const std::string &path="", OpenOptions options={})
 

Detailed Description

A Zarr group bound to a Store.

Member Function Documentation

◆ create()

static Group zarr::Group::create ( std::shared_ptr< Store store,
const std::string &  path = "",
ZarrFormat  format = ZarrFormat::v2 
)
inlinestatic

Creates a group at path ("" = store root) in the requested format, including any missing ancestor groups (writers that skip intermediate group documents are a known interop hazard). Existing group documents along the chain are left untouched. Not [[nodiscard]]: creating writes the group metadata as a side effect, so discarding the returned handle (create-and-forget) is a legitimate use.

◆ create_array()

Array zarr::Group::create_array ( const std::string &  name,
ArraySpec  spec 
)
inline

Creates a child (possibly nested) array, writing ancestor groups first. The group's format governs; spec.format is ignored.

◆ create_group()

Group zarr::Group::create_group ( const std::string &  name)
inline

Creates a child (possibly nested, e.g. "a/b") group in this group's format.

◆ open()

static Group zarr::Group::open ( std::shared_ptr< Store store,
const std::string &  path = "",
OpenOptions  options = {} 
)
inlinestatic

Opens the group at path, probing v3 (zarr.json) first, then v2. Consolidated metadata — v2 .zmetadata at the store root, or the v3 inline convention — is used when present and shared with every node opened through this group.

◆ set_attributes()

void zarr::Group::set_attributes ( json  attributes)
inline

Replaces the user attributes and persists them. For v3, the stored zarr.json is patched in place, preserving any extension members.


The documentation for this class was generated from the following file: