DataFrame: deprecate/remove field.parse(any) (#44299)

This commit is contained in:
Ryan McKinley
2022-01-24 16:27:35 +00:00
committed by GitHub
parent ac945fb6e1
commit b88811e2af
5 changed files with 35 additions and 24 deletions
@@ -155,6 +155,27 @@ export class MutableDataFrame<T = any> extends FunctionalVector<T> implements Da
}
}
private parsers: Map<Field, (v: string) => any> | undefined = undefined;
/**
* @deprecated unclear if this is actually used
*/
setParser(field: Field, parser: (v: string) => any) {
if (!this.parsers) {
this.parsers = new Map<Field, (v: string) => any>();
}
this.parsers.set(field, parser);
return parser;
}
private parseValue(field: Field, v: any): any {
let p = this.parsers?.get(field);
if (!p) {
p = this.setParser(field, makeFieldParser(v, field));
}
return p(v);
}
/**
* This will add each value to the corresponding column
*/
@@ -181,10 +202,7 @@ export class MutableDataFrame<T = any> extends FunctionalVector<T> implements Da
const f = this.fields[i];
let v = row[i];
if (f.type !== FieldType.string && isString(v)) {
if (!f.parse) {
f.parse = makeFieldParser(v, f);
}
v = f.parse(v);
v = this.parseValue(f, v);
}
f.values.add(v);
}
@@ -200,10 +218,7 @@ export class MutableDataFrame<T = any> extends FunctionalVector<T> implements Da
let val = obj[field.name];
if (field.type !== FieldType.string && isString(val)) {
if (!field.parse) {
field.parse = makeFieldParser(val, field);
}
val = field.parse(val);
val = this.parseValue(field, val);
}
if (val === undefined) {
@@ -122,11 +122,6 @@ export interface Field<T = any, V = Vector<T>> {
*/
state?: FieldState | null;
/**
* Convert text to the field value
*/
parse?: (value: any) => T;
/**
* Convert a value for display
*/
@@ -186,7 +186,6 @@ describe('Table utils', () => {
title: '1.0',
text: '1.0',
}),
parse: (value: any) => '1.0',
};
const rows: any[] = [];
@@ -53,7 +53,6 @@ async function doSetGeometry(frames: DataFrame[], options: SpatialTransformOptio
{
...info.field,
name,
parse: undefined,
type: FieldType.geo,
values: new ArrayVector([toLineString(info.field)]),
},
@@ -711,21 +711,23 @@ const createEmptyDataFrame = (
}
if (logMessageField) {
series.addField({
const f = series.addField({
name: logMessageField,
type: FieldType.string,
}).parse = (v: any) => {
});
series.setParser(f, (v: any) => {
return v || '';
};
});
}
if (logLevelField) {
series.addField({
const f = series.addField({
name: 'level',
type: FieldType.string,
}).parse = (v: any) => {
});
series.setParser(f, (v: any) => {
return v || '';
};
});
}
const fieldNames = series.fields.map((field) => field.name);
@@ -740,15 +742,16 @@ const createEmptyDataFrame = (
continue;
}
series.addField({
const f = series.addField({
config: {
filterable: true,
},
name,
type,
}).parse = (v: any) => {
});
series.setParser(f, (v: any) => {
return v || '';
};
});
}
return series;