Comments (3)
Another idea is that this could just be a special store (wrapper):
interface Listable {
contents(): Array<{ path: AbsolutePath, kind: "array" | "group" }>;
}
async function withConsolidated<Store extends Readable>(store: Store) Pick<Store, "get"> & Listable {
const known_metadata = await try_consolidated(store);
return {
get(...args: Parameters<Store["get"]>) {
let [key, opts] = args;
if (key in known_metadata) return known_metadata[key];
let maybe_bytes = await store.get(key, opts);
if (is_meta_key(key) && maybe_bytes) { // add to known_metadata
return maybe_bytes;
},
contents() {
return list_nodes(known_metadata);
}
}
}
The reason I chose to use contents
over keys
is because keys for Map
would list all contents (including chunks).
Then openConsolidated
could wrap withConslidated
. Wonder what you think @keller-mark.
import { withConsolidated, FetchStore, open } from "zarrita";
let store = await withConsolidated(new FetchStore("http://localhost:8080"));
let contents = store.contents() // [ {path: "/", kind: "group" }, { path: "/foo", kind: "array" }, ...]
let foo = await open(contents[1].path, { kind: "array" });
from zarrita.js.
I am experimenting with the second option.
from zarrita.js.
Added in #119
from zarrita.js.
Related Issues (20)
- [bug]: setting for F-order arrays with builtin setter
- Move ops to same namespace
- [idea]: Web API `Response` for `Store`? HOT 1
- Support float16 data type
- Support sharding HOT 1
- camelCase for public APIs HOT 1
- Replace deno fmt with dprint
- Add documentation on slicing API
- more descriptive `FetchStore` overrides HOT 1
- BoolArray fails to get HOT 4
- add linter
- Reading a single group/dataset from azure blob storage or s3 HOT 1
- Explore biome for formatting/linting
- Transpose with explicit permutation HOT 3
- `bigint` for `zarr.slice` (and maybe elsewhere) indexing HOT 5
- zarr v3 reading expects chunk_key_encoding.configuration
- Indexing with get "Cannot read properties of undefined (reading 'TypedArray')" HOT 2
- Non-async store creation for ReferenceStore
- Separate package for FileSystemStore HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zarrita.js.