Skip to content

Commit c6e1438

Browse files
committed
Auto-generated commit
1 parent ca53628 commit c6e1438

File tree

8 files changed

+60
-77
lines changed

8 files changed

+60
-77
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
### Features
1212

13+
- [`8dbfe60`](https://github.com/stdlib-js/stdlib/commit/8dbfe608b990c4e12c729daa01489de8f6b56ac3) - add support for dtype instances
1314
- [`28d3e7d`](https://github.com/stdlib-js/stdlib/commit/28d3e7d6b05b312ebf14896cb0d8593902e443cb) - update `ndarray/base` TypeScript declarations [(#11166)](https://github.com/stdlib-js/stdlib/pull/11166)
1415
- [`364e294`](https://github.com/stdlib-js/stdlib/commit/364e294fbd4ebd149d86b8f7996da4b00b6c6b3b) - add `nulls` to namespace
1516
- [`f1ab973`](https://github.com/stdlib-js/stdlib/commit/f1ab9738a81b32e0bcd49a2661b0023bbc4ca84f) - add `nans` to namespace
@@ -817,6 +818,7 @@ A total of 45 issues were closed in this release:
817818

818819
<details>
819820

821+
- [`8dbfe60`](https://github.com/stdlib-js/stdlib/commit/8dbfe608b990c4e12c729daa01489de8f6b56ac3) - **feat:** add support for dtype instances _(by Athan Reines)_
820822
- [`3c6b016`](https://github.com/stdlib-js/stdlib/commit/3c6b01628169badc19aed4201cb66a5265c5d378) - **refactor:** improve type specificity _(by Athan Reines)_
821823
- [`2bc2d8b`](https://github.com/stdlib-js/stdlib/commit/2bc2d8b3568550581f6574843480eccd40c7589a) - **test:** use accessors to resolve ndarray meta data _(by Athan Reines)_
822824
- [`29648e3`](https://github.com/stdlib-js/stdlib/commit/29648e3c22b94656db3d56f822718f5860dfba9d) - **refactor:** improve type specificity _(by Athan Reines)_

base/serialize-meta-data/README.md

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,14 @@ var dv = serialize( arr );
118118
119119
```javascript
120120
var IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' );
121+
var getDType = require( '@stdlib/ndarray/dtype' );
122+
var getShape = require( '@stdlib/ndarray/shape' );
123+
var getStrides = require( '@stdlib/ndarray/strides' );
124+
var getOffset = require( '@stdlib/ndarray/offset' );
125+
var getOrder = require( '@stdlib/ndarray/order' );
121126
var array = require( '@stdlib/ndarray/array' );
127+
var ndims = require( '@stdlib/ndarray/ndims' );
128+
var join = require( '@stdlib/array/base/join' );
122129
var Uint8Array = require( '@stdlib/array/uint8' );
123130
var fromInt64Bytes = require( '@stdlib/number/float64/base/from-int64-bytes' );
124131
var serialize = require( '@stdlib/ndarray/base/serialize-meta-data' );
@@ -127,12 +134,12 @@ var serialize = require( '@stdlib/ndarray/base/serialize-meta-data' );
127134
var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
128135
129136
// Print various properties:
130-
console.log( 'dtype: %s', x.dtype );
131-
console.log( 'ndims: %d', x.ndims );
132-
console.log( 'shape: [ %s ]', x.shape.join( ', ' ) );
133-
console.log( 'strides: [ %s ]', x.strides.join( ', ' ) );
134-
console.log( 'offset: %d', x.offset );
135-
console.log( 'order: %s', x.order );
137+
console.log( 'dtype: %s', getDType( x ) );
138+
console.log( 'ndims: %d', ndims( x ) );
139+
console.log( 'shape: [ %s ]', join( getShape( x ), ', ' ) );
140+
console.log( 'strides: [ %s ]', join( getStrides( x ), ', ' ) );
141+
console.log( 'offset: %d', getOffset( x ) );
142+
console.log( 'order: %s', getOrder( x ) );
136143
137144
// Serialize ndarray meta data to a DataView:
138145
var dv = serialize( x );
@@ -146,30 +153,30 @@ var dtype = dv.getInt16( 1, IS_LITTLE_ENDIAN );
146153
console.log( 'dtype (enum): %d', dtype );
147154
148155
// Extract the number of dimensions:
149-
var ndims = fromInt64Bytes( bytes, 1, 3 );
150-
console.log( 'ndims: %d', ndims );
156+
var N = fromInt64Bytes( bytes, 1, 3 );
157+
console.log( 'ndims: %d', N );
151158
152159
// Extract the shape:
153160
var shape = [];
154161
var i;
155-
for ( i = 0; i < ndims; i++ ) {
162+
for ( i = 0; i < N; i++ ) {
156163
shape.push( fromInt64Bytes( bytes, 1, 11+(i*8) ) );
157164
}
158165
console.log( 'shape: [ %s ]', shape.join( ', ' ) );
159166
160167
// Extract the strides (in units of bytes):
161168
var strides = [];
162-
for ( i = 0; i < ndims; i++ ) {
163-
strides.push( fromInt64Bytes( bytes, 1, 11+(ndims*8)+(i*8) ) );
169+
for ( i = 0; i < N; i++ ) {
170+
strides.push( fromInt64Bytes( bytes, 1, 11+(N*8)+(i*8) ) );
164171
}
165172
console.log( 'strides (bytes): [ %s ]', strides.join( ', ' ) );
166173
167174
// Extract the index offset (in bytes):
168-
var offset = fromInt64Bytes( bytes, 1, 11+(ndims*16) );
175+
var offset = fromInt64Bytes( bytes, 1, 11+(N*16) );
169176
console.log( 'offset (bytes): %d', offset );
170177
171178
// Extract the order (enum):
172-
var order = dv.getInt8( 19+(ndims*16) );
179+
var order = dv.getInt8( 19+(N*16) );
173180
console.log( 'order (enum): %d', order );
174181
```
175182

base/serialize-meta-data/docs/types/test.ts

Lines changed: 3 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -16,44 +16,15 @@
1616
* limitations under the License.
1717
*/
1818

19-
/// <reference types="@stdlib/types"/>
20-
21-
import { ndarray } from '@stdlib/types/ndarray';
19+
import zeros = require( './../../../../zeros' );
2220
import serialize = require( './index' );
2321

24-
/**
25-
* Mock function to create an ndarray-like object.
26-
*
27-
* @returns ndarray-like object
28-
*/
29-
function array(): ndarray {
30-
const obj: ndarray = {
31-
'byteLength': 80,
32-
'BYTES_PER_ELEMENT': 8,
33-
'data': new Float64Array( 10 ),
34-
'dtype': 'float64',
35-
'flags': {
36-
'ROW_MAJOR_CONTIGUOUS': true,
37-
'COLUMN_MAJOR_CONTIGUOUS': false
38-
},
39-
'length': 10,
40-
'ndims': 1,
41-
'offset': 0,
42-
'order': 'row-major',
43-
'shape': [ 10 ],
44-
'strides': [ 1 ],
45-
'get': (): number => 0,
46-
'set': (): ndarray => obj
47-
};
48-
return obj;
49-
}
50-
5122

5223
// TESTS //
5324

5425
// The function returns a DataView...
5526
{
56-
const x = array();
27+
const x = zeros( [ 2, 2 ] );
5728
serialize( x ); // $ExpectType DataView
5829
}
5930

@@ -71,7 +42,7 @@ function array(): ndarray {
7142

7243
// The compiler throws an error if the function is provided an unsupported number of arguments...
7344
{
74-
const x = array();
45+
const x = zeros( [ 2, 2 ] );
7546
serialize(); // $ExpectError
7647
serialize( x, 5 ); // $ExpectError
7748
}

base/serialize-meta-data/examples/index.js

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,14 @@
1919
'use strict';
2020

2121
var IS_LITTLE_ENDIAN = require( '@stdlib/assert/is-little-endian' );
22+
var getDType = require( './../../../dtype' );
23+
var getShape = require( './../../../shape' );
24+
var getStrides = require( './../../../strides' );
25+
var getOffset = require( './../../../offset' );
26+
var getOrder = require( './../../../order' );
2227
var array = require( './../../../array' );
28+
var ndims = require( './../../../ndims' );
29+
var join = require( '@stdlib/array/base/join' );
2330
var Uint8Array = require( '@stdlib/array/uint8' );
2431
var fromInt64Bytes = require( '@stdlib/number/float64/base/from-int64-bytes' );
2532
var serialize = require( './../lib' );
@@ -28,12 +35,12 @@ var serialize = require( './../lib' );
2835
var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
2936

3037
// Print various properties:
31-
console.log( 'dtype: %s', x.dtype );
32-
console.log( 'ndims: %d', x.ndims );
33-
console.log( 'shape: [ %s ]', x.shape.join( ', ' ) );
34-
console.log( 'strides: [ %s ]', x.strides.join( ', ' ) );
35-
console.log( 'offset: %d', x.offset );
36-
console.log( 'order: %s', x.order );
38+
console.log( 'dtype: %s', getDType( x ) );
39+
console.log( 'ndims: %d', ndims( x ) );
40+
console.log( 'shape: [ %s ]', join( getShape( x ), ', ' ) );
41+
console.log( 'strides: [ %s ]', join( getStrides( x ), ', ' ) );
42+
console.log( 'offset: %d', getOffset( x ) );
43+
console.log( 'order: %s', getOrder( x ) );
3744

3845
// Serialize ndarray meta data to a DataView:
3946
var dv = serialize( x );
@@ -47,28 +54,28 @@ var dtype = dv.getInt16( 1, IS_LITTLE_ENDIAN );
4754
console.log( 'dtype (enum): %d', dtype );
4855

4956
// Extract the number of dimensions:
50-
var ndims = fromInt64Bytes( bytes, 1, 3 );
51-
console.log( 'ndims: %d', ndims );
57+
var N = fromInt64Bytes( bytes, 1, 3 );
58+
console.log( 'ndims: %d', N );
5259

5360
// Extract the shape:
5461
var shape = [];
5562
var i;
56-
for ( i = 0; i < ndims; i++ ) {
63+
for ( i = 0; i < N; i++ ) {
5764
shape.push( fromInt64Bytes( bytes, 1, 11+(i*8) ) );
5865
}
5966
console.log( 'shape: [ %s ]', shape.join( ', ' ) );
6067

6168
// Extract the strides (in units of bytes):
6269
var strides = [];
63-
for ( i = 0; i < ndims; i++ ) {
64-
strides.push( fromInt64Bytes( bytes, 1, 11+(ndims*8)+(i*8) ) );
70+
for ( i = 0; i < N; i++ ) {
71+
strides.push( fromInt64Bytes( bytes, 1, 11+(N*8)+(i*8) ) );
6572
}
6673
console.log( 'strides (bytes): [ %s ]', strides.join( ', ' ) );
6774

6875
// Extract the index offset (in bytes):
69-
var offset = fromInt64Bytes( bytes, 1, 11+(ndims*16) );
76+
var offset = fromInt64Bytes( bytes, 1, 11+(N*16) );
7077
console.log( 'offset (bytes): %d', offset );
7178

7279
// Extract the order (enum):
73-
var order = dv.getInt8( 19+(ndims*16) );
80+
var order = dv.getInt8( 19+(N*16) );
7481
console.log( 'order (enum): %d', order );

base/serialize-meta-data/lib/main.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ var ArrayBuffer = require( '@stdlib/array/buffer' );
2525
var DataView = require( '@stdlib/array/dataview' );
2626
var BigInt = require( '@stdlib/bigint/ctor' );
2727
var bytesPerElement = require( './../../../base/bytes-per-element' );
28-
var dtypes = require( './../../../base/dtype-enums' );
28+
var resolveEnum = require( './../../../base/dtype-resolve-enum' );
2929
var orders = require( './../../../orders' ).enum;
3030
var modes = require( './../../../index-modes' ).enum;
3131
var getDType = require( './../../../base/dtype' );
@@ -37,7 +37,6 @@ var getOrder = require( './../../../base/order' );
3737

3838
// VARIABLES //
3939

40-
var DTYPES = dtypes();
4140
var ORDERS = orders();
4241
var MODES = modes();
4342

@@ -108,7 +107,7 @@ var MODES = modes();
108107
* - flags: `Int32Array( buf, 29+(ndims*16)+nsubmodes, 1 )`
109108
*
110109
* @param {ndarrayLike} x - input array
111-
* @param {string} x.dtype - array data type
110+
* @param {*} x.dtype - array data type
112111
* @param {NonNegativeIntegerArray} x.shape - array shape
113112
* @param {IntegerArray} x.strides - array strides
114113
* @param {NonNegativeInteger} x.offset - array index offset
@@ -172,7 +171,7 @@ function serialize( x ) {
172171

173172
// Data type: (byteoffset: 1; bytelength: 2)
174173
o += 1;
175-
v.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );
174+
v.setInt16( o, resolveEnum( dt ), IS_LITTLE_ENDIAN );
176175

177176
// Number of dimensions: (byteoffset: 3; bytelength: 8)
178177
o += 2;

base/serialize-meta-data/lib/polyfill.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ var ArrayBuffer = require( '@stdlib/array/buffer' );
2626
var Uint8Array = require( '@stdlib/array/uint8' );
2727
var DataView = require( '@stdlib/array/dataview' );
2828
var bytesPerElement = require( './../../../base/bytes-per-element' );
29-
var dtypes = require( './../../../base/dtype-enums' );
29+
var resolveEnum = require( './../../../base/dtype-resolve-enum' );
3030
var orders = require( './../../../orders' ).enum;
3131
var modes = require( './../../../index-modes' ).enum;
3232
var getDType = require( './../../../base/dtype' );
@@ -38,7 +38,6 @@ var getOrder = require( './../../../base/order' );
3838

3939
// VARIABLES //
4040

41-
var DTYPES = dtypes();
4241
var ORDERS = orders();
4342
var MODES = modes();
4443

@@ -110,7 +109,7 @@ var MODES = modes();
110109
*
111110
* @private
112111
* @param {ndarrayLike} x - input array
113-
* @param {string} x.dtype - array data type
112+
* @param {*} x.dtype - array data type
114113
* @param {NonNegativeIntegerArray} x.shape - array shape
115114
* @param {IntegerArray} x.strides - array strides
116115
* @param {NonNegativeInteger} x.offset - array index offset
@@ -150,7 +149,7 @@ function serialize( x ) {
150149
return x.__array_meta_dataview__(); // eslint-disable-line no-underscore-dangle
151150
}
152151
// Extract meta data known to be attached to ndarray-like objects:
153-
dt = getDType( x);
152+
dt = getDType( x );
154153
sh = getShape( x, false );
155154
st = getStrides( x, false );
156155
N = sh.length; // ndims
@@ -176,7 +175,7 @@ function serialize( x ) {
176175

177176
// Data type: (byteoffset: 1; bytelength: 2)
178177
o += 1;
179-
v.setInt16( o, DTYPES[ dt ], IS_LITTLE_ENDIAN );
178+
v.setInt16( o, resolveEnum( dt ), IS_LITTLE_ENDIAN );
180179

181180
// Number of dimensions: (byteoffset: 3; bytelength: 8)
182181
o += 2;

base/serialize-meta-data/test/test.main.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,14 @@ var Float64Array = require( '@stdlib/array/float64' );
2727
var Uint8Array = require( '@stdlib/array/uint8' );
2828
var ndarray = require( './../../../base/ctor' );
2929
var bytesPerElement = require( './../../../base/bytes-per-element' );
30-
var dtypes = require( './../../../base/dtype-enums' );
30+
var resolveEnum = require( './../../../base/dtype-resolve-enum' );
3131
var modes = require( './../../../index-modes' ).enum;
3232
var orders = require( './../../../orders' ).enum;
3333
var serialize = require( './../lib/main.js' );
3434

3535

3636
// VARIABLES //
3737

38-
var DTYPES = dtypes();
3938
var MODES = modes();
4039
var ORDERS = orders();
4140

@@ -71,7 +70,7 @@ tape( 'the function serializes ndarray meta data to a DataView (ndarray)', funct
7170
arr = ndarray( dtype, buffer, shape, strides, offset, order );
7271

7372
expected = {
74-
'dtype': DTYPES[ 'float64' ],
73+
'dtype': resolveEnum( 'float64' ),
7574
'ndims': shape.length,
7675
'shape': shape,
7776
'strides': strides,
@@ -155,7 +154,7 @@ tape( 'the function serializes ndarray meta data to a DataView (ndarray-like obj
155154
};
156155

157156
expected = {
158-
'dtype': DTYPES[ 'float64' ],
157+
'dtype': resolveEnum( 'float64' ),
159158
'ndims': shape.length,
160159
'shape': shape,
161160
'strides': strides,
@@ -241,7 +240,7 @@ tape( 'the function serializes ndarray meta data to a DataView (ndarray-like obj
241240
};
242241

243242
expected = {
244-
'dtype': DTYPES[ 'float64' ],
243+
'dtype': resolveEnum( 'float64' ),
245244
'ndims': shape.length,
246245
'shape': shape,
247246
'strides': strides,

base/serialize-meta-data/test/test.polyfill.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,14 @@ var Float64Array = require( '@stdlib/array/float64' );
2727
var Uint8Array = require( '@stdlib/array/uint8' );
2828
var ndarray = require( './../../../base/ctor' );
2929
var bytesPerElement = require( './../../../base/bytes-per-element' );
30-
var dtypes = require( './../../../base/dtype-enums' );
30+
var resolveEnum = require( './../../../base/dtype-resolve-enum' );
3131
var modes = require( './../../../index-modes' ).enum;
3232
var orders = require( './../../../orders' ).enum;
3333
var serialize = require( './../lib/polyfill.js' );
3434

3535

3636
// VARIABLES //
3737

38-
var DTYPES = dtypes();
3938
var MODES = modes();
4039
var ORDERS = orders();
4140

@@ -71,7 +70,7 @@ tape( 'the function serializes ndarray meta data to a DataView (ndarray)', funct
7170
arr = ndarray( dtype, buffer, shape, strides, offset, order );
7271

7372
expected = {
74-
'dtype': DTYPES[ 'float64' ],
73+
'dtype': resolveEnum( 'float64' ),
7574
'ndims': shape.length,
7675
'shape': shape,
7776
'strides': strides,
@@ -155,7 +154,7 @@ tape( 'the function serializes ndarray meta data to a DataView (ndarray-like obj
155154
};
156155

157156
expected = {
158-
'dtype': DTYPES[ 'float64' ],
157+
'dtype': resolveEnum( 'float64' ),
159158
'ndims': shape.length,
160159
'shape': shape,
161160
'strides': strides,
@@ -241,7 +240,7 @@ tape( 'the function serializes ndarray meta data to a DataView (ndarray-like obj
241240
};
242241

243242
expected = {
244-
'dtype': DTYPES[ 'float64' ],
243+
'dtype': resolveEnum( 'float64' ),
245244
'ndims': shape.length,
246245
'shape': shape,
247246
'strides': strides,

0 commit comments

Comments
 (0)