UNPKG

semantic-ds-toolkit

Version:

Performance-first semantic layer for modern data stacks - Stable Column Anchors & intelligent inference

80 lines 3.4 kB
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