Skip to content

Commit 4f495db

Browse files
author
Greg
committed
Debug WIP
1 parent 73f5043 commit 4f495db

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

js/datagrid.ts

+35-1
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,7 @@ export class DataGridModel extends DOMWidgetModel {
374374
transforms: { deserialize: unpack_models as any },
375375
renderers: {
376376
deserialize: unpack_models as any,
377-
serialize: pack_models as any,
377+
serialize: debug as any,
378378
},
379379
corner_renderer: { deserialize: unpack_models as any },
380380
default_renderer: { deserialize: unpack_models as any },
@@ -400,6 +400,40 @@ export class DataGridModel extends DOMWidgetModel {
400400
_view_callbacks: ICallbacks;
401401
}
402402

403+
function debug(value: any) {
404+
const upm = debug_pack_models(value);
405+
console.log('first', value);
406+
console.log('upm', upm);
407+
return upm;
408+
}
409+
const IPY_MODEL_ = 'IPY_MODEL_';
410+
411+
function debug_pack_models(
412+
value: WidgetModel | Dict<WidgetModel> | WidgetModel[] | any,
413+
widget?: WidgetModel,
414+
): any | Dict<unknown> | string | (Dict<unknown> | string)[] {
415+
if (Array.isArray(value)) {
416+
console.log('array');
417+
const model_ids: string[] = [];
418+
for (const model of value) {
419+
model_ids.push(pack_models(model, widget));
420+
}
421+
return model_ids;
422+
} else if (value instanceof WidgetModel) {
423+
console.log('widget model');
424+
return `${IPY_MODEL_}${value.model_id}`;
425+
} else if (value instanceof Object && typeof value !== 'string') {
426+
console.log('object');
427+
const packed: { [key: string]: string } = {};
428+
for (const [key, sub_value] of Object.entries(value)) {
429+
packed[key] = pack_models(sub_value, widget);
430+
}
431+
return packed;
432+
} else {
433+
return value;
434+
}
435+
}
436+
403437
/**
404438
* Helper function to convert snake_case strings to camelCase.
405439
* Assumes all strings are valid snake_case (all lowercase).

0 commit comments

Comments
 (0)