DataFrame: toDataFrame( ...) should support the query response payload (#40594)

This commit is contained in:
Ryan McKinley 2021-10-24 21:04:17 -07:00 committed by GitHub
parent f496c31018
commit aeb868bb06
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 46 additions and 0 deletions

View File

@ -174,6 +174,48 @@ describe('toDataFrame', () => {
expect(v0.length).toEqual(1);
expect(v0.get(0)).toEqual(input1.datapoints[0]);
});
it('converts JSON response to dataframes', () => {
const msg = {
schema: {
fields: [
{
name: 'First',
type: 'string',
},
{
name: 'Second',
type: 'number',
},
],
},
data: {
values: [
['2019-02-15', '2019-03-15', '2019-04-15'],
[3, 9, 16],
],
},
};
const dataFrame = toDataFrame(msg);
expect(dataFrame.fields.map((f) => ({ [f.name]: f.values.toArray() }))).toMatchInlineSnapshot(`
Array [
Object {
"First": Array [
"2019-02-15",
"2019-03-15",
"2019-04-15",
],
},
Object {
"Second": Array [
3,
9,
16,
],
},
]
`);
});
});
describe('SeriesData backwards compatibility', () => {

View File

@ -25,6 +25,7 @@ import { ArrayDataFrame } from './ArrayDataFrame';
import { getFieldDisplayName } from '../field/fieldState';
import { fieldIndexComparer } from '../field/fieldComparers';
import { vectorToArray } from '../vector/vectorToArray';
import { dataFrameFromJSON } from './DataFrameJSON';
function convertTableToDataFrame(table: TableData): DataFrame {
const fields = table.columns.map((c) => {
@ -302,6 +303,9 @@ export function toDataFrame(data: any): DataFrame {
}
if (data.hasOwnProperty('data')) {
if (data.hasOwnProperty('schema')) {
return dataFrameFromJSON(data);
}
return convertGraphSeriesToDataFrame(data);
}