DataFrame: Deprecate MutableDataFrame (#67569)
This commit is contained in:
@@ -10,10 +10,16 @@ import { guessFieldTypeFromValue, guessFieldTypeForField, toDataFrameDTO } from
|
||||
/** @deprecated */
|
||||
export type MutableField<T = any> = Field<T>;
|
||||
|
||||
/** @deprecated */
|
||||
type MutableVectorCreator = (buffer?: any[]) => any[];
|
||||
|
||||
export const MISSING_VALUE = undefined; // Treated as connected in new graph panel
|
||||
|
||||
/**
|
||||
* MutableDataFrame is a complex wrapper around the DataFrame interface
|
||||
*
|
||||
* @deprecated use standard DataFrame, or create one with PartialDataFrame
|
||||
*/
|
||||
export class MutableDataFrame<T = any> extends FunctionalVector<T> implements DataFrame {
|
||||
name?: string;
|
||||
refId?: string;
|
||||
|
||||
@@ -2,8 +2,8 @@ import { dateTime } from '../datetime/moment_wrapper';
|
||||
import { DataFrameDTO, FieldType, TableData, TimeSeries } from '../types/index';
|
||||
|
||||
import { ArrayDataFrame } from './ArrayDataFrame';
|
||||
import { MutableDataFrame } from './MutableDataFrame';
|
||||
import {
|
||||
createDataFrame,
|
||||
guessFieldTypeFromValue,
|
||||
guessFieldTypes,
|
||||
isDataFrame,
|
||||
@@ -130,7 +130,7 @@ describe('toDataFrame', () => {
|
||||
});
|
||||
|
||||
it('Guess Column Types from series', () => {
|
||||
const series = new MutableDataFrame({
|
||||
const series = createDataFrame({
|
||||
fields: [
|
||||
{ name: 'A (number)', values: [123, null] },
|
||||
{ name: 'B (strings)', values: [null, 'Hello'] },
|
||||
|
||||
@@ -27,7 +27,6 @@ import {
|
||||
|
||||
import { arrayToDataFrame } from './ArrayDataFrame';
|
||||
import { dataFrameFromJSON } from './DataFrameJSON';
|
||||
import { MutableDataFrame } from './MutableDataFrame';
|
||||
|
||||
function convertTableToDataFrame(table: TableData): DataFrame {
|
||||
const fields = table.columns.map((c) => {
|
||||
@@ -315,7 +314,7 @@ export function toDataFrame(data: any): DataFrame {
|
||||
}
|
||||
|
||||
// This will convert the array values into Vectors
|
||||
return new MutableDataFrame(data as DataFrameDTO);
|
||||
return createDataFrame(data as DataFrameDTO);
|
||||
}
|
||||
|
||||
// Handle legacy docs/json type
|
||||
@@ -567,3 +566,35 @@ export function preProcessPanelData(data: PanelData, lastResult?: PanelData): Pa
|
||||
timings: { dataProcessingTime: STOPTIME - STARTTIME },
|
||||
};
|
||||
}
|
||||
|
||||
export interface PartialDataFrame extends Omit<DataFrame, 'fields' | 'length'> {
|
||||
fields: Array<Partial<Field>>;
|
||||
}
|
||||
|
||||
export function createDataFrame(input: PartialDataFrame): DataFrame {
|
||||
let length = 0;
|
||||
const fields = input.fields.map((p, idx) => {
|
||||
const { state, ...field } = p;
|
||||
if (!field.name) {
|
||||
field.name = `Field ${idx + 1}`;
|
||||
}
|
||||
if (!field.config) {
|
||||
field.config = {};
|
||||
}
|
||||
if (!field.values) {
|
||||
field.values = new Array(length);
|
||||
} else if (field.values.length > length) {
|
||||
length = field.values.length;
|
||||
}
|
||||
if (!field.type) {
|
||||
field.type = guessFieldTypeForField(field as Field) ?? FieldType.other;
|
||||
}
|
||||
return field as Field;
|
||||
});
|
||||
|
||||
return {
|
||||
...input,
|
||||
fields,
|
||||
length,
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user