semantic-ds-toolkit
Version:
Performance-first semantic layer for modern data stacks - Stable Column Anchors & intelligent inference
80 lines • 3.4 kB
TypeScript
import { DataFrameLike } from './shadow-semantics';
export interface DataFrameAdapter<T = any> {
readonly name: string;
canHandle(obj: any): boolean;
adapt(obj: T): DataFrameLike;
getColumnNames(obj: T): string[];
getDataTypes(obj: T): Record<string, string>;
getShape(obj: T): [number, number];
sampleData(obj: T, n?: number): Record<string, any[]>;
getColumn(obj: T, columnName: string): any[];
}
export declare class PandasDataFrameAdapter implements DataFrameAdapter {
readonly name = "pandas";
canHandle(obj: any): boolean;
adapt(df: any): DataFrameLike;
getColumnNames(df: any): string[];
getDataTypes(df: any): Record<string, string>;
getShape(df: any): [number, number];
sampleData(df: any, n?: number): Record<string, any[]>;
getColumn(df: any, columnName: string): any[];
}
export declare class PolarsDataFrameAdapter implements DataFrameAdapter {
readonly name = "polars";
canHandle(obj: any): boolean;
adapt(df: any): DataFrameLike;
getColumnNames(df: any): string[];
getDataTypes(df: any): Record<string, string>;
getShape(df: any): [number, number];
sampleData(df: any, n?: number): Record<string, any[]>;
getColumn(df: any, columnName: string): any[];
}
export declare class DuckDBDataFrameAdapter implements DataFrameAdapter {
readonly name = "duckdb";
canHandle(obj: any): boolean;
adapt(df: any): DataFrameLike;
getColumnNames(df: any): string[];
getDataTypes(df: any): Record<string, string>;
getShape(df: any): [number, number];
sampleData(df: any, n?: number): Record<string, any[]>;
getColumn(df: any, columnName: string): any[];
}
export declare class PlainObjectAdapter implements DataFrameAdapter {
readonly name = "plain_object";
canHandle(obj: any): boolean;
adapt(obj: any): DataFrameLike;
getColumnNames(obj: any): string[];
getDataTypes(obj: any): Record<string, string>;
getShape(obj: any): [number, number];
sampleData(obj: any, n?: number): Record<string, any[]>;
getColumn(obj: any, columnName: string): any[];
private inferType;
}
export declare class ArrayOfObjectsAdapter implements DataFrameAdapter {
readonly name = "array_of_objects";
canHandle(obj: any): boolean;
adapt(arr: any[]): DataFrameLike;
getColumnNames(arr: any[]): string[];
getDataTypes(arr: any[]): Record<string, string>;
getShape(arr: any[]): [number, number];
sampleData(arr: any[], n?: number): Record<string, any[]>;
getColumn(arr: any[], columnName: string): any[];
private inferType;
}
export declare class DataFrameAdapterRegistry {
private adapters;
constructor();
private registerDefaultAdapters;
register(adapter: DataFrameAdapter): void;
findAdapter(obj: any): DataFrameAdapter | null;
adapt(obj: any): DataFrameLike | null;
getSupportedTypes(): string[];
getAdapter(name: string): DataFrameAdapter | null;
}
declare const globalRegistry: DataFrameAdapterRegistry;
export declare function adaptDataFrame(obj: any): DataFrameLike | null;
export declare function registerAdapter(adapter: DataFrameAdapter): void;
export declare function getSupportedDataFrameTypes(): string[];
export declare function getAdapterForType(typeName: string): DataFrameAdapter | null;
export { globalRegistry as dataFrameRegistry };
//# sourceMappingURL=dataframe-adapters.d.ts.map