zarr-metadata 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -7
- package/dist/chunk-grid/index.d.ts +27 -0
- package/dist/chunk-grid/index.d.ts.map +1 -0
- package/dist/chunk-grid/index.js +21 -0
- package/dist/chunk-grid/index.js.map +1 -0
- package/dist/chunk-grid/rectilinear.d.ts +14 -0
- package/dist/chunk-grid/rectilinear.d.ts.map +1 -0
- package/dist/{chunk-grids.js → chunk-grid/rectilinear.js} +3 -60
- package/dist/chunk-grid/rectilinear.js.map +1 -0
- package/dist/chunk-grid/regular.d.ts +7 -0
- package/dist/chunk-grid/regular.d.ts.map +1 -0
- package/dist/chunk-grid/regular.js +36 -0
- package/dist/chunk-grid/regular.js.map +1 -0
- package/dist/codec/index.d.ts +34 -0
- package/dist/codec/index.d.ts.map +1 -0
- package/dist/codec/index.js +35 -0
- package/dist/codec/index.js.map +1 -0
- package/dist/codec/sharding-indexed.d.ts +26 -0
- package/dist/codec/sharding-indexed.d.ts.map +1 -0
- package/dist/codec/sharding-indexed.js +80 -0
- package/dist/codec/sharding-indexed.js.map +1 -0
- package/dist/codec/transpose.d.ts +19 -0
- package/dist/codec/transpose.d.ts.map +1 -0
- package/dist/codec/transpose.js +66 -0
- package/dist/codec/transpose.js.map +1 -0
- package/dist/data-type/bool.d.ts +4 -0
- package/dist/data-type/bool.d.ts.map +1 -0
- package/dist/data-type/bool.js +7 -0
- package/dist/data-type/bool.js.map +1 -0
- package/dist/data-type/bytes.d.ts +11 -0
- package/dist/data-type/bytes.d.ts.map +1 -0
- package/dist/data-type/bytes.js +18 -0
- package/dist/data-type/bytes.js.map +1 -0
- package/dist/data-type/complex128.d.ts +3 -0
- package/dist/data-type/complex128.d.ts.map +1 -0
- package/dist/data-type/complex128.js +4 -0
- package/dist/data-type/complex128.js.map +1 -0
- package/dist/data-type/complex64.d.ts +3 -0
- package/dist/data-type/complex64.d.ts.map +1 -0
- package/dist/data-type/complex64.js +4 -0
- package/dist/data-type/complex64.js.map +1 -0
- package/dist/data-type/descriptor.d.ts +44 -0
- package/dist/data-type/descriptor.d.ts.map +1 -0
- package/dist/data-type/descriptor.js +57 -0
- package/dist/data-type/descriptor.js.map +1 -0
- package/dist/data-type/float16.d.ts +3 -0
- package/dist/data-type/float16.d.ts.map +1 -0
- package/dist/data-type/float16.js +4 -0
- package/dist/data-type/float16.js.map +1 -0
- package/dist/data-type/float32.d.ts +3 -0
- package/dist/data-type/float32.d.ts.map +1 -0
- package/dist/data-type/float32.js +4 -0
- package/dist/data-type/float32.js.map +1 -0
- package/dist/data-type/float64.d.ts +3 -0
- package/dist/data-type/float64.d.ts.map +1 -0
- package/dist/data-type/float64.js +4 -0
- package/dist/data-type/float64.js.map +1 -0
- package/dist/data-type/index.d.ts +23 -0
- package/dist/data-type/index.d.ts.map +1 -0
- package/dist/data-type/index.js +92 -0
- package/dist/data-type/index.js.map +1 -0
- package/dist/data-type/int16.d.ts +3 -0
- package/dist/data-type/int16.d.ts.map +1 -0
- package/dist/data-type/int16.js +4 -0
- package/dist/data-type/int16.js.map +1 -0
- package/dist/data-type/int32.d.ts +3 -0
- package/dist/data-type/int32.d.ts.map +1 -0
- package/dist/data-type/int32.js +4 -0
- package/dist/data-type/int32.js.map +1 -0
- package/dist/data-type/int64.d.ts +3 -0
- package/dist/data-type/int64.d.ts.map +1 -0
- package/dist/data-type/int64.js +4 -0
- package/dist/data-type/int64.js.map +1 -0
- package/dist/data-type/int8.d.ts +3 -0
- package/dist/data-type/int8.d.ts.map +1 -0
- package/dist/data-type/int8.js +4 -0
- package/dist/data-type/int8.js.map +1 -0
- package/dist/data-type/numpy-datetime64.d.ts +18 -0
- package/dist/data-type/numpy-datetime64.d.ts.map +1 -0
- package/dist/data-type/numpy-datetime64.js +14 -0
- package/dist/data-type/numpy-datetime64.js.map +1 -0
- package/dist/data-type/numpy-timedelta64.d.ts +4 -0
- package/dist/data-type/numpy-timedelta64.d.ts.map +1 -0
- package/dist/data-type/numpy-timedelta64.js +4 -0
- package/dist/data-type/numpy-timedelta64.js.map +1 -0
- package/dist/data-type/raw.d.ts +10 -0
- package/dist/data-type/raw.d.ts.map +1 -0
- package/dist/data-type/raw.js +26 -0
- package/dist/data-type/raw.js.map +1 -0
- package/dist/data-type/string.d.ts +6 -0
- package/dist/data-type/string.d.ts.map +1 -0
- package/dist/data-type/string.js +7 -0
- package/dist/data-type/string.js.map +1 -0
- package/dist/data-type/struct.d.ts +17 -0
- package/dist/data-type/struct.d.ts.map +1 -0
- package/dist/data-type/struct.js +44 -0
- package/dist/data-type/struct.js.map +1 -0
- package/dist/data-type/uint16.d.ts +3 -0
- package/dist/data-type/uint16.d.ts.map +1 -0
- package/dist/data-type/uint16.js +4 -0
- package/dist/data-type/uint16.js.map +1 -0
- package/dist/data-type/uint32.d.ts +3 -0
- package/dist/data-type/uint32.d.ts.map +1 -0
- package/dist/data-type/uint32.js +4 -0
- package/dist/data-type/uint32.js.map +1 -0
- package/dist/data-type/uint64.d.ts +3 -0
- package/dist/data-type/uint64.d.ts.map +1 -0
- package/dist/data-type/uint64.js +4 -0
- package/dist/data-type/uint64.js.map +1 -0
- package/dist/data-type/uint8.d.ts +3 -0
- package/dist/data-type/uint8.d.ts.map +1 -0
- package/dist/data-type/uint8.js +4 -0
- package/dist/data-type/uint8.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/semantics.d.ts +4 -4
- package/dist/semantics.d.ts.map +1 -1
- package/dist/semantics.js +9 -15
- package/dist/semantics.js.map +1 -1
- package/package.json +4 -2
- package/src/chunk-grid/index.ts +40 -0
- package/src/{chunk-grids.ts → chunk-grid/rectilinear.ts} +5 -75
- package/src/chunk-grid/regular.ts +42 -0
- package/src/codec/index.ts +76 -0
- package/src/codec/sharding-indexed.ts +113 -0
- package/src/codec/transpose.ts +80 -0
- package/src/data-type/bool.ts +8 -0
- package/src/data-type/bytes.ts +26 -0
- package/src/data-type/complex128.ts +4 -0
- package/src/data-type/complex64.ts +4 -0
- package/src/data-type/descriptor.ts +115 -0
- package/src/data-type/float16.ts +4 -0
- package/src/data-type/float32.ts +4 -0
- package/src/data-type/float64.ts +4 -0
- package/src/data-type/index.ts +129 -0
- package/src/data-type/int16.ts +4 -0
- package/src/data-type/int32.ts +4 -0
- package/src/data-type/int64.ts +4 -0
- package/src/data-type/int8.ts +4 -0
- package/src/data-type/numpy-datetime64.ts +33 -0
- package/src/data-type/numpy-timedelta64.ts +9 -0
- package/src/data-type/raw.ts +31 -0
- package/src/data-type/string.ts +11 -0
- package/src/data-type/struct.ts +55 -0
- package/src/data-type/uint16.ts +4 -0
- package/src/data-type/uint32.ts +4 -0
- package/src/data-type/uint64.ts +4 -0
- package/src/data-type/uint8.ts +4 -0
- package/src/index.ts +14 -3
- package/src/semantics.ts +9 -15
- package/dist/chunk-grids.d.ts +0 -40
- package/dist/chunk-grids.d.ts.map +0 -1
- package/dist/chunk-grids.js.map +0 -1
- package/dist/codecs.d.ts +0 -37
- package/dist/codecs.d.ts.map +0 -1
- package/dist/codecs.js +0 -182
- package/dist/codecs.js.map +0 -1
- package/dist/data-types.d.ts +0 -12
- package/dist/data-types.d.ts.map +0 -1
- package/dist/data-types.js +0 -70
- package/dist/data-types.js.map +0 -1
- package/src/codecs.ts +0 -214
- package/src/data-types.ts +0 -81
package/src/data-types.ts
DELETED
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The core data types this package interprets: fill-value syntax per type,
|
|
3
|
-
* in one place per family. Extension data types are skipped — their shapes
|
|
4
|
-
* are registry-schema facts, and the name space is open.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
/** A float fill value: a JSON number, a non-finite sentinel, or a hex string. */
|
|
8
|
-
export type FloatFillValue = number | "NaN" | "Infinity" | "-Infinity" | string;
|
|
9
|
-
|
|
10
|
-
/** A complex fill value: `[real, imaginary]`, each a float fill form. */
|
|
11
|
-
export type ComplexFillValue = [FloatFillValue, FloatFillValue];
|
|
12
|
-
|
|
13
|
-
const INT_RANGES: Record<string, readonly [number, number]> = {
|
|
14
|
-
int8: [-128, 127],
|
|
15
|
-
int16: [-32768, 32767],
|
|
16
|
-
int32: [-2147483648, 2147483647],
|
|
17
|
-
int64: [-9223372036854775808, 9223372036854775807],
|
|
18
|
-
uint8: [0, 255],
|
|
19
|
-
uint16: [0, 65535],
|
|
20
|
-
uint32: [0, 4294967295],
|
|
21
|
-
uint64: [0, 18446744073709551615],
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
const FLOAT_HEX_DIGITS: Record<string, number> = {
|
|
25
|
-
float16: 4,
|
|
26
|
-
float32: 8,
|
|
27
|
-
float64: 16,
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
/** Hex digit width of each complex type's component floats. */
|
|
31
|
-
const COMPLEX_COMPONENT_HEX_DIGITS: Record<string, number> = {
|
|
32
|
-
complex64: 8,
|
|
33
|
-
complex128: 16,
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
function isFloatFill(value: unknown, hexDigits: number): boolean {
|
|
37
|
-
if (typeof value === "number") return true;
|
|
38
|
-
if (typeof value !== "string") return false;
|
|
39
|
-
if (value === "NaN" || value === "Infinity" || value === "-Infinity") return true;
|
|
40
|
-
return new RegExp(`^0x[0-9a-fA-F]{${hexDigits}}$`).test(value);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function floatFillMessage(name: string, hexDigits: number): string {
|
|
44
|
-
return (
|
|
45
|
-
`expected a number, "NaN", "Infinity", "-Infinity", or a ` +
|
|
46
|
-
`${hexDigits}-hex-digit "0x..." string for data type ${JSON.stringify(name)}`
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/** The fill_value issue for a KNOWN core data type, if any; undefined otherwise. */
|
|
51
|
-
export function fillValueIssue(dataTypeName: string, fill: unknown): string | undefined {
|
|
52
|
-
if (dataTypeName === "bool") {
|
|
53
|
-
return typeof fill === "boolean"
|
|
54
|
-
? undefined
|
|
55
|
-
: 'expected a boolean fill value for data type "bool"';
|
|
56
|
-
}
|
|
57
|
-
const intRange = INT_RANGES[dataTypeName];
|
|
58
|
-
if (intRange !== undefined) {
|
|
59
|
-
const [low, high] = intRange;
|
|
60
|
-
return Number.isInteger(fill) && (fill as number) >= low && (fill as number) <= high
|
|
61
|
-
? undefined
|
|
62
|
-
: `expected an integer in [${low}, ${high}] for data type ${JSON.stringify(dataTypeName)}`;
|
|
63
|
-
}
|
|
64
|
-
const floatDigits = FLOAT_HEX_DIGITS[dataTypeName];
|
|
65
|
-
if (floatDigits !== undefined) {
|
|
66
|
-
return isFloatFill(fill, floatDigits)
|
|
67
|
-
? undefined
|
|
68
|
-
: floatFillMessage(dataTypeName, floatDigits);
|
|
69
|
-
}
|
|
70
|
-
const complexDigits = COMPLEX_COMPONENT_HEX_DIGITS[dataTypeName];
|
|
71
|
-
if (complexDigits !== undefined) {
|
|
72
|
-
const ok =
|
|
73
|
-
Array.isArray(fill) &&
|
|
74
|
-
fill.length === 2 &&
|
|
75
|
-
fill.every((part) => isFloatFill(part, complexDigits));
|
|
76
|
-
return ok
|
|
77
|
-
? undefined
|
|
78
|
-
: `expected a two-element [real, imaginary] array for data type ${JSON.stringify(dataTypeName)}`;
|
|
79
|
-
}
|
|
80
|
-
return undefined; // unrecognized data type: no verdict
|
|
81
|
-
}
|