@jupyterlab/csvviewer 4.7.0-alpha.0 → 4.7.0-alpha.1

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/lib/model.js CHANGED
@@ -387,30 +387,18 @@ export class DSVModel extends DataModel {
387
387
  * parsed again.
388
388
  */
389
389
  _computeRowOffsets(endRow = 4294967295) {
390
- var _a;
390
+ var _a, _b;
391
391
  // If we've already parsed up to endRow, or if we've already parsed the
392
392
  // entire data set, return early.
393
393
  if (this._rowCount >= endRow || this._doneParsing === true) {
394
394
  return;
395
395
  }
396
- // Compute the column count if we don't already have it.
397
- if (this._columnCount === undefined) {
398
- // Get number of columns in first row
399
- this._columnCount = PARSERS[this._parser]({
400
- data: this._rawData,
401
- delimiter: this._delimiter,
402
- rowDelimiter: this._rowDelimiter,
403
- quote: this._quote,
404
- columnOffsets: true,
405
- maxRows: 1
406
- }).ncols;
407
- }
408
396
  // `reparse` is the number of rows we are requesting to parse over again.
409
397
  // We generally start at the beginning of the last row offset, so that the
410
398
  // first row offset returned is the same as the last row offset we already
411
399
  // have. We parse the data up to and including the requested row.
412
400
  const reparse = this._rowCount > 0 ? 1 : 0;
413
- const { nrows, offsets } = PARSERS[this._parser]({
401
+ const { nrows, offsets, maxNcols } = PARSERS[this._parser]({
414
402
  data: this._rawData,
415
403
  startIndex: (_a = this._rowOffsets[this._rowCount - reparse]) !== null && _a !== void 0 ? _a : 0,
416
404
  delimiter: this._delimiter,
@@ -432,6 +420,9 @@ export class DSVModel extends DataModel {
432
420
  const oldRowCount = this._rowCount;
433
421
  const duplicateRows = Math.min(nrows, reparse);
434
422
  this._rowCount = oldRowCount + nrows - duplicateRows;
423
+ const oldColumnCount = (_b = this._columnCount) !== null && _b !== void 0 ? _b : 0;
424
+ this._columnCount = Math.max(oldColumnCount, maxNcols !== null && maxNcols !== void 0 ? maxNcols : 0);
425
+ const columnCountChanged = this._columnCount !== oldColumnCount;
435
426
  // If we didn't reach the requested row, we must be done.
436
427
  if (this._rowCount < endRow) {
437
428
  this._doneParsing = true;
@@ -449,10 +440,28 @@ export class DSVModel extends DataModel {
449
440
  // enough for all column offsets. We allocate up to 128 megabytes:
450
441
  // 128*(2**20 bytes/M)/(4 bytes/entry) = 33554432 entries.
451
442
  const maxColumnOffsetsRows = Math.floor(33554432 / this._columnCount);
452
- // We need to expand the column offset array if we were storing all column
453
- // offsets before. Check to see if the previous size was small enough that
454
- // we stored all column offsets.
455
- if (oldRowCount <= maxColumnOffsetsRows) {
443
+ if (columnCountChanged) {
444
+ const columnOffsetRows = this._rowCount <= maxColumnOffsetsRows
445
+ ? this._rowCount
446
+ : Math.min(this._maxCacheGet, maxColumnOffsetsRows);
447
+ this._columnOffsets = new Uint32Array(columnOffsetRows * this._columnCount);
448
+ this._columnOffsets.fill(0xffffffff);
449
+ this._columnOffsetsStartingRow = 0;
450
+ if (this._header.length > 0) {
451
+ for (let c = this._header.length; c < this._columnCount; c++) {
452
+ this._header.push(this._getField(0, c));
453
+ }
454
+ }
455
+ if (oldColumnCount > 0) {
456
+ this.emitChanged({
457
+ type: 'columns-inserted',
458
+ region: 'body',
459
+ index: oldColumnCount,
460
+ span: this._columnCount - oldColumnCount
461
+ });
462
+ }
463
+ }
464
+ else if (oldRowCount <= maxColumnOffsetsRows) {
456
465
  // Check to see if the new column offsets array is small enough to still
457
466
  // store, or if we should cut over to a small cache.
458
467
  if (this._rowCount <= maxColumnOffsetsRows) {
package/lib/model.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
package/lib/parse.d.ts CHANGED
@@ -78,6 +78,10 @@ export declare namespace IParser {
78
78
  * The number of columns parsed, or 0 if only row offsets are returned.
79
79
  */
80
80
  ncols: number;
81
+ /**
82
+ * The maximum number of columns observed while parsing.
83
+ */
84
+ maxNcols?: number;
81
85
  /**
82
86
  * The index offsets into the data string for the rows or data items.
83
87
  *
package/lib/parse.js CHANGED
@@ -35,6 +35,7 @@ export function parseDSV(options) {
35
35
  let ncols = options.ncols;
36
36
  // The number of rows we've already parsed.
37
37
  let nrows = 0;
38
+ let maxNcols = 0;
38
39
  // The row or column offsets we return.
39
40
  const offsets = [];
40
41
  // Set up some useful local variables.
@@ -231,6 +232,7 @@ export function parseDSV(options) {
231
232
  switch (state) {
232
233
  case NEW_ROW:
233
234
  nrows++;
235
+ maxNcols = Math.max(maxNcols, col);
234
236
  // If ncols is undefined, set it to the number of columns in this row (first row implied).
235
237
  if (ncols === undefined) {
236
238
  if (nrows !== 1) {
@@ -255,7 +257,7 @@ export function parseDSV(options) {
255
257
  }
256
258
  // Shortcut return if nrows reaches the maximum rows we are to parse.
257
259
  if (nrows === maxRows) {
258
- return { nrows, ncols: columnOffsets ? ncols : 0, offsets };
260
+ return { nrows, ncols: columnOffsets ? ncols : 0, maxNcols, offsets };
259
261
  }
260
262
  break;
261
263
  case NEW_FIELD:
@@ -275,6 +277,7 @@ export function parseDSV(options) {
275
277
  // defined.
276
278
  if (state !== NEW_ROW) {
277
279
  nrows++;
280
+ maxNcols = Math.max(maxNcols, col);
278
281
  if (columnOffsets === true) {
279
282
  // If ncols is *still* undefined, then we only parsed one row and didn't
280
283
  // have a newline, so set it to the number of columns we found.
@@ -294,7 +297,7 @@ export function parseDSV(options) {
294
297
  }
295
298
  }
296
299
  }
297
- return { nrows, ncols: columnOffsets ? (ncols !== null && ncols !== void 0 ? ncols : 0) : 0, offsets };
300
+ return { nrows, ncols: columnOffsets ? (ncols !== null && ncols !== void 0 ? ncols : 0) : 0, maxNcols, offsets };
298
301
  }
299
302
  /**
300
303
  * Parse delimiter-separated data where no delimiter is quoted.
@@ -316,13 +319,13 @@ export function parseDSVNoQuotes(options) {
316
319
  // Set up our return variables.
317
320
  const offsets = [];
318
321
  let nrows = 0;
322
+ let maxNcols = 0;
319
323
  // Set up various state variables.
320
324
  const rowDelimiterLength = rowDelimiter.length;
321
325
  let currRow = startIndex;
322
326
  const len = data.length;
323
327
  let nextRow;
324
328
  let col;
325
- let rowString;
326
329
  let colIndex;
327
330
  // The end of the current row.
328
331
  let rowEnd;
@@ -338,44 +341,33 @@ export function parseDSVNoQuotes(options) {
338
341
  // If the next row delimiter is not found, set the end of the row to the
339
342
  // end of the data string.
340
343
  rowEnd = nextRow === -1 ? len : nextRow;
341
- // If we are returning column offsets, push them onto the array.
342
- if (columnOffsets === true) {
343
- // Find the next field delimiter. We slice the current row out so that
344
- // the indexOf will stop at the end of the row. It may possibly be faster
345
- // to just use a loop to check each character.
346
- col = 1;
347
- rowString = data.slice(currRow, rowEnd);
348
- colIndex = rowString.indexOf(delimiter);
349
- if (ncols === undefined) {
350
- // If we don't know how many columns we need, loop through and find all
351
- // of the field delimiters in this row.
352
- while (colIndex !== -1) {
353
- offsets.push(currRow + colIndex + 1);
354
- col++;
355
- colIndex = rowString.indexOf(delimiter, colIndex + 1);
356
- }
357
- // Set ncols to the number of fields we found.
358
- ncols = col;
344
+ // Find field delimiters in the current row.
345
+ col = 1;
346
+ for (colIndex = currRow; colIndex < rowEnd; colIndex++) {
347
+ if (data[colIndex] !== delimiter) {
348
+ continue;
359
349
  }
360
- else {
361
- // If we know the number of columns we expect, find the field delimiters
362
- // up to that many columns.
363
- while (colIndex !== -1 && col < ncols) {
364
- offsets.push(currRow + colIndex + 1);
365
- col++;
366
- colIndex = rowString.indexOf(delimiter, colIndex + 1);
367
- }
368
- // If we didn't reach the number of columns we expected, pad the offsets
369
- // with the offset just before the row delimiter.
370
- while (col < ncols) {
371
- offsets.push(rowEnd);
372
- col++;
373
- }
350
+ if (columnOffsets === true && (ncols === undefined || col < ncols)) {
351
+ offsets.push(colIndex + 1);
352
+ }
353
+ col++;
354
+ }
355
+ maxNcols = Math.max(maxNcols, col);
356
+ if (ncols === undefined) {
357
+ // Set ncols to the number of fields we found.
358
+ ncols = col;
359
+ }
360
+ else if (columnOffsets === true) {
361
+ // If we didn't reach the number of columns we expected, pad the offsets
362
+ // with the offset just before the row delimiter.
363
+ while (col < ncols) {
364
+ offsets.push(rowEnd);
365
+ col++;
374
366
  }
375
367
  }
376
368
  // Skip past the row delimiter at the end of the row.
377
369
  currRow = rowEnd + rowDelimiterLength;
378
370
  }
379
- return { nrows, ncols: columnOffsets ? (ncols !== null && ncols !== void 0 ? ncols : 0) : 0, offsets };
371
+ return { nrows, ncols: columnOffsets ? (ncols !== null && ncols !== void 0 ? ncols : 0) : 0, maxNcols, offsets };
380
372
  }
381
373
  //# sourceMappingURL=parse.js.map
package/lib/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jupyterlab/csvviewer",
3
- "version": "4.7.0-alpha.0",
3
+ "version": "4.7.0-alpha.1",
4
4
  "description": "JupyterLab - CSV Widget",
5
5
  "homepage": "https://github.com/jupyterlab/jupyterlab",
6
6
  "bugs": {
@@ -41,19 +41,19 @@
41
41
  "watch": "tsc -b --watch"
42
42
  },
43
43
  "dependencies": {
44
- "@jupyterlab/coreutils": "^6.7.0-alpha.0",
45
- "@jupyterlab/docregistry": "^4.7.0-alpha.0",
46
- "@jupyterlab/translation": "^4.7.0-alpha.0",
47
- "@jupyterlab/ui-components": "^4.7.0-alpha.0",
48
- "@lumino/coreutils": "^2.2.2",
49
- "@lumino/datagrid": "^2.5.7",
50
- "@lumino/disposable": "^2.1.5",
51
- "@lumino/messaging": "^2.0.4",
52
- "@lumino/signaling": "^2.1.5",
53
- "@lumino/widgets": "^2.8.0"
44
+ "@jupyterlab/coreutils": "^6.7.0-alpha.1",
45
+ "@jupyterlab/docregistry": "^4.7.0-alpha.1",
46
+ "@jupyterlab/translation": "^4.7.0-alpha.1",
47
+ "@jupyterlab/ui-components": "^4.7.0-alpha.1",
48
+ "@lumino/coreutils": "^2.2.3",
49
+ "@lumino/datagrid": "^2.5.8",
50
+ "@lumino/disposable": "^2.1.6",
51
+ "@lumino/messaging": "^2.0.5",
52
+ "@lumino/signaling": "^2.1.6",
53
+ "@lumino/widgets": "^2.9.0"
54
54
  },
55
55
  "devDependencies": {
56
- "@jupyterlab/testing": "^4.7.0-alpha.0",
56
+ "@jupyterlab/testing": "^4.7.0-alpha.1",
57
57
  "@types/jest": "^29.2.0",
58
58
  "csv-spectrum": "^1.0.0",
59
59
  "jest": "^29.2.0",
package/src/model.ts CHANGED
@@ -408,25 +408,12 @@ export class DSVModel extends DataModel implements IDisposable {
408
408
  return;
409
409
  }
410
410
 
411
- // Compute the column count if we don't already have it.
412
- if (this._columnCount === undefined) {
413
- // Get number of columns in first row
414
- this._columnCount = PARSERS[this._parser]({
415
- data: this._rawData,
416
- delimiter: this._delimiter,
417
- rowDelimiter: this._rowDelimiter,
418
- quote: this._quote,
419
- columnOffsets: true,
420
- maxRows: 1
421
- }).ncols;
422
- }
423
-
424
411
  // `reparse` is the number of rows we are requesting to parse over again.
425
412
  // We generally start at the beginning of the last row offset, so that the
426
413
  // first row offset returned is the same as the last row offset we already
427
414
  // have. We parse the data up to and including the requested row.
428
415
  const reparse = this._rowCount! > 0 ? 1 : 0;
429
- const { nrows, offsets } = PARSERS[this._parser]({
416
+ const { nrows, offsets, maxNcols } = PARSERS[this._parser]({
430
417
  data: this._rawData,
431
418
  startIndex: this._rowOffsets[this._rowCount! - reparse] ?? 0,
432
419
  delimiter: this._delimiter,
@@ -452,6 +439,10 @@ export class DSVModel extends DataModel implements IDisposable {
452
439
  const duplicateRows = Math.min(nrows, reparse);
453
440
  this._rowCount = oldRowCount + nrows - duplicateRows;
454
441
 
442
+ const oldColumnCount = this._columnCount ?? 0;
443
+ this._columnCount = Math.max(oldColumnCount, maxNcols ?? 0);
444
+ const columnCountChanged = this._columnCount !== oldColumnCount;
445
+
455
446
  // If we didn't reach the requested row, we must be done.
456
447
  if (this._rowCount < endRow) {
457
448
  this._doneParsing = true;
@@ -473,10 +464,33 @@ export class DSVModel extends DataModel implements IDisposable {
473
464
  // 128*(2**20 bytes/M)/(4 bytes/entry) = 33554432 entries.
474
465
  const maxColumnOffsetsRows = Math.floor(33554432 / this._columnCount);
475
466
 
476
- // We need to expand the column offset array if we were storing all column
477
- // offsets before. Check to see if the previous size was small enough that
478
- // we stored all column offsets.
479
- if (oldRowCount <= maxColumnOffsetsRows) {
467
+ if (columnCountChanged) {
468
+ const columnOffsetRows =
469
+ this._rowCount <= maxColumnOffsetsRows
470
+ ? this._rowCount
471
+ : Math.min(this._maxCacheGet, maxColumnOffsetsRows);
472
+
473
+ this._columnOffsets = new Uint32Array(
474
+ columnOffsetRows * this._columnCount
475
+ );
476
+ this._columnOffsets.fill(0xffffffff);
477
+ this._columnOffsetsStartingRow = 0;
478
+
479
+ if (this._header.length > 0) {
480
+ for (let c = this._header.length; c < this._columnCount; c++) {
481
+ this._header.push(this._getField(0, c));
482
+ }
483
+ }
484
+
485
+ if (oldColumnCount > 0) {
486
+ this.emitChanged({
487
+ type: 'columns-inserted',
488
+ region: 'body',
489
+ index: oldColumnCount,
490
+ span: this._columnCount - oldColumnCount
491
+ });
492
+ }
493
+ } else if (oldRowCount <= maxColumnOffsetsRows) {
480
494
  // Check to see if the new column offsets array is small enough to still
481
495
  // store, or if we should cut over to a small cache.
482
496
  if (this._rowCount <= maxColumnOffsetsRows) {
package/src/parse.ts CHANGED
@@ -108,6 +108,10 @@ export namespace IParser {
108
108
  */
109
109
  ncols: number;
110
110
 
111
+ /**
112
+ * The maximum number of columns observed while parsing.
113
+ */
114
+ maxNcols?: number;
111
115
  /**
112
116
  * The index offsets into the data string for the rows or data items.
113
117
  *
@@ -169,6 +173,7 @@ export function parseDSV(options: IParser.IOptions): IParser.IResults {
169
173
 
170
174
  // The number of rows we've already parsed.
171
175
  let nrows = 0;
176
+ let maxNcols = 0;
172
177
 
173
178
  // The row or column offsets we return.
174
179
  const offsets = [];
@@ -401,6 +406,7 @@ export function parseDSV(options: IParser.IOptions): IParser.IResults {
401
406
  switch (state) {
402
407
  case NEW_ROW:
403
408
  nrows++;
409
+ maxNcols = Math.max(maxNcols, col);
404
410
 
405
411
  // If ncols is undefined, set it to the number of columns in this row (first row implied).
406
412
  if (ncols === undefined) {
@@ -427,7 +433,7 @@ export function parseDSV(options: IParser.IOptions): IParser.IResults {
427
433
 
428
434
  // Shortcut return if nrows reaches the maximum rows we are to parse.
429
435
  if (nrows === maxRows) {
430
- return { nrows, ncols: columnOffsets ? ncols : 0, offsets };
436
+ return { nrows, ncols: columnOffsets ? ncols : 0, maxNcols, offsets };
431
437
  }
432
438
  break;
433
439
 
@@ -451,6 +457,7 @@ export function parseDSV(options: IParser.IOptions): IParser.IResults {
451
457
  // defined.
452
458
  if (state !== NEW_ROW) {
453
459
  nrows++;
460
+ maxNcols = Math.max(maxNcols, col);
454
461
  if (columnOffsets === true) {
455
462
  // If ncols is *still* undefined, then we only parsed one row and didn't
456
463
  // have a newline, so set it to the number of columns we found.
@@ -471,7 +478,7 @@ export function parseDSV(options: IParser.IOptions): IParser.IResults {
471
478
  }
472
479
  }
473
480
 
474
- return { nrows, ncols: columnOffsets ? (ncols ?? 0) : 0, offsets };
481
+ return { nrows, ncols: columnOffsets ? (ncols ?? 0) : 0, maxNcols, offsets };
475
482
  }
476
483
 
477
484
  /**
@@ -503,6 +510,7 @@ export function parseDSVNoQuotes(options: IParser.IOptions): IParser.IResults {
503
510
  // Set up our return variables.
504
511
  const offsets: number[] = [];
505
512
  let nrows = 0;
513
+ let maxNcols = 0;
506
514
 
507
515
  // Set up various state variables.
508
516
  const rowDelimiterLength = rowDelimiter.length;
@@ -510,7 +518,6 @@ export function parseDSVNoQuotes(options: IParser.IOptions): IParser.IResults {
510
518
  const len = data.length;
511
519
  let nextRow: number;
512
520
  let col: number;
513
- let rowString: string;
514
521
  let colIndex: number;
515
522
 
516
523
  // The end of the current row.
@@ -532,41 +539,31 @@ export function parseDSVNoQuotes(options: IParser.IOptions): IParser.IResults {
532
539
  // end of the data string.
533
540
  rowEnd = nextRow === -1 ? len : nextRow;
534
541
 
535
- // If we are returning column offsets, push them onto the array.
536
- if (columnOffsets === true) {
537
- // Find the next field delimiter. We slice the current row out so that
538
- // the indexOf will stop at the end of the row. It may possibly be faster
539
- // to just use a loop to check each character.
540
- col = 1;
541
- rowString = data.slice(currRow, rowEnd);
542
- colIndex = rowString.indexOf(delimiter);
542
+ // Find field delimiters in the current row.
543
+ col = 1;
543
544
 
544
- if (ncols === undefined) {
545
- // If we don't know how many columns we need, loop through and find all
546
- // of the field delimiters in this row.
547
- while (colIndex !== -1) {
548
- offsets.push(currRow + colIndex + 1);
549
- col++;
550
- colIndex = rowString.indexOf(delimiter, colIndex + 1);
551
- }
545
+ for (colIndex = currRow; colIndex < rowEnd; colIndex++) {
546
+ if (data[colIndex] !== delimiter) {
547
+ continue;
548
+ }
552
549
 
553
- // Set ncols to the number of fields we found.
554
- ncols = col;
555
- } else {
556
- // If we know the number of columns we expect, find the field delimiters
557
- // up to that many columns.
558
- while (colIndex !== -1 && col < ncols) {
559
- offsets.push(currRow + colIndex + 1);
560
- col++;
561
- colIndex = rowString.indexOf(delimiter, colIndex + 1);
562
- }
550
+ if (columnOffsets === true && (ncols === undefined || col < ncols)) {
551
+ offsets.push(colIndex + 1);
552
+ }
553
+ col++;
554
+ }
563
555
 
564
- // If we didn't reach the number of columns we expected, pad the offsets
565
- // with the offset just before the row delimiter.
566
- while (col < ncols) {
567
- offsets.push(rowEnd);
568
- col++;
569
- }
556
+ maxNcols = Math.max(maxNcols, col);
557
+
558
+ if (ncols === undefined) {
559
+ // Set ncols to the number of fields we found.
560
+ ncols = col;
561
+ } else if (columnOffsets === true) {
562
+ // If we didn't reach the number of columns we expected, pad the offsets
563
+ // with the offset just before the row delimiter.
564
+ while (col < ncols) {
565
+ offsets.push(rowEnd);
566
+ col++;
570
567
  }
571
568
  }
572
569
 
@@ -574,5 +571,5 @@ export function parseDSVNoQuotes(options: IParser.IOptions): IParser.IResults {
574
571
  currRow = rowEnd + rowDelimiterLength;
575
572
  }
576
573
 
577
- return { nrows, ncols: columnOffsets ? (ncols ?? 0) : 0, offsets };
574
+ return { nrows, ncols: columnOffsets ? (ncols ?? 0) : 0, maxNcols, offsets };
578
575
  }