Skip to content

Commit

Permalink
fix: cjs compatibility (#187)
Browse files Browse the repository at this point in the history
* fix cjs compatibility

* cleanup

* fix datatype import
  • Loading branch information
universalmind303 authored Mar 20, 2024
1 parent 31e7741 commit 10c9682
Show file tree
Hide file tree
Showing 3 changed files with 143 additions and 29 deletions.
2 changes: 1 addition & 1 deletion __tests__/lazy_functions.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import pl, { DataType, col, cols, lit } from "@polars/index";
import pl, { DataType, col, cols, lit } from "@polars";
import { df as _df } from "./setup";

describe("lazy functions", () => {
Expand Down
1 change: 1 addition & 0 deletions polars/dataframe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2661,6 +2661,7 @@ export interface DataFrameConstructor extends Deserialize<DataFrame> {
): DataFrame;
isDataFrame(arg: any): arg is DataFrame;
}

function DataFrameConstructor(data?, options?): DataFrame {
if (!data) {
return _DataFrame(objToDF({}));
Expand Down
169 changes: 141 additions & 28 deletions polars/index.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import * as series from "./series";
import * as df from "./dataframe";
import { DataType, Field as _field } from "./datatypes";
export { DataType } from "./datatypes";
import * as func from "./functions";
import * as io from "./io";
import * as cfg from "./cfg";
import * as ldf from "./lazy/dataframe";
import pli from "./internals/polars_internal";
export { DataType, Field, TimeUnit } from "./datatypes";
export * from "./series";
export { Expr } from "./lazy/expr";
export * from "./dataframe";
export * from "./functions";
export * from "./io";
Expand All @@ -18,9 +17,8 @@ export * from "./lazy";
import * as lazy from "./lazy";
export * from "./types";
import * as sql from "./sql";
export type { SQLContext } from "./sql";

export type { GroupBy } from "./groupby";

export namespace pl {
export import Expr = lazy.Expr;
export import DataFrame = df.DataFrame;
Expand All @@ -32,29 +30,6 @@ export namespace pl {
export type ChainedWhen = lazy.ChainedWhen;
export type ChainedThen = lazy.ChainedThen;
export import Config = cfg.Config;
export import Int8 = DataType.Int8;
export import Int16 = DataType.Int16;
export import Int32 = DataType.Int32;
export import Int64 = DataType.Int64;
export import UInt8 = DataType.UInt8;
export import UInt16 = DataType.UInt16;
export import UInt32 = DataType.UInt32;
export import UInt64 = DataType.UInt64;
export import Float32 = DataType.Float32;
export import Float64 = DataType.Float64;
export import Bool = DataType.Bool;
export import Utf8 = DataType.Utf8;
// biome-ignore lint/suspicious/noShadowRestrictedNames: pl.String
export import String = DataType.String;
export import List = DataType.List;
// biome-ignore lint/suspicious/noShadowRestrictedNames: pl.Date
export import Date = DataType.Date;
export import Datetime = DataType.Datetime;
export import Time = DataType.Time;
// biome-ignore lint/suspicious/noShadowRestrictedNames: pl.Object
export import Object = DataType.Object;
export import Null = DataType.Null;
export import Struct = DataType.Struct;
export import Categorical = DataType.Categorical;
export import Field = _field;
export import repeat = func.repeat;
Expand Down Expand Up @@ -113,6 +88,30 @@ export namespace pl {
export import when = lazy.when;
export const version = pli.version();

export import Int8 = DataType.Int8;
export import Int16 = DataType.Int16;
export import Int32 = DataType.Int32;
export import Int64 = DataType.Int64;
export import UInt8 = DataType.UInt8;
export import UInt16 = DataType.UInt16;
export import UInt32 = DataType.UInt32;
export import UInt64 = DataType.UInt64;
export import Float32 = DataType.Float32;
export import Float64 = DataType.Float64;
export import Bool = DataType.Bool;
export import Utf8 = DataType.Utf8;
// biome-ignore lint/suspicious/noShadowRestrictedNames: pl.String
export import String = DataType.String;
export import List = DataType.List;
// biome-ignore lint/suspicious/noShadowRestrictedNames: pl.Date
export import Date = DataType.Date;
export import Datetime = DataType.Datetime;
export import Time = DataType.Time;
// biome-ignore lint/suspicious/noShadowRestrictedNames: pl.Object
export import Object = DataType.Object;
export import Null = DataType.Null;
export import Struct = DataType.Struct;

/**
* Run SQL queries against DataFrame/LazyFrame data.
*
Expand All @@ -126,5 +125,119 @@ export namespace pl {
return new sql.SQLContext(frames);
}
}
// eslint-disable-next-line no-undef

export default pl;

// ------
// CommonJS compatibility.
// This allows the user to use any of the following
// `import * as pl from "nodejs-polars"`
// `import pl from "nodejs-polars"`.
// `const pl = require("nodejs-polars")`.
// `const { DataFrame, Series, } = require("nodejs-polars")`.
// ------

export import Expr = lazy.Expr;
export import DataFrame = df.DataFrame;
export import LazyDataFrame = ldf.LazyDataFrame;
export import Series = series.Series;
export type LazyGroupBy = lazy.LazyGroupBy;
export type When = lazy.When;
export type Then = lazy.Then;
export type ChainedWhen = lazy.ChainedWhen;
export type ChainedThen = lazy.ChainedThen;
export import Config = cfg.Config;
export import Categorical = DataType.Categorical;
export import Field = _field;
export import repeat = func.repeat;
export import concat = func.concat;

// IO
export import scanCSV = io.scanCSV;
export import scanJson = io.scanJson;
export import scanIPC = io.scanIPC;
export import scanParquet = io.scanParquet;

export import readRecords = io.readRecords;
export import readCSV = io.readCSV;
export import readIPC = io.readIPC;
export import readJSON = io.readJSON;
export import readParquet = io.readParquet;
export import readAvro = io.readAvro;

export import readCSVStream = io.readCSVStream;
export import readJSONStream = io.readJSONStream;

// lazy
export import col = lazy.col;
export import cols = lazy.cols;
export import lit = lazy.lit;
export import intRange = lazy.intRange;
export import intRanges = lazy.intRanges;
export import argSortBy = lazy.argSortBy;
export import avg = lazy.avg;
export import concatList = lazy.concatList;
export import concatString = lazy.concatString;
export import count = lazy.count;
export import cov = lazy.cov;
export import exclude = lazy.exclude;
export import element = lazy.element;
export import first = lazy.first;
export import format = lazy.format;
export import groups = lazy.groups;
export import head = lazy.head;
export import last = lazy.last;
export import mean = lazy.mean;
export import median = lazy.median;
export import nUnique = lazy.nUnique;
export import pearsonCorr = lazy.pearsonCorr;
export import quantile = lazy.quantile;
export import select = lazy.select;
export import struct = lazy.struct;
export import allHorizontal = lazy.allHorizontal;
export import anyHorizontal = lazy.anyHorizontal;
export import minHorizontal = lazy.minHorizontal;
export import maxHorizontal = lazy.maxHorizontal;
export import sumHorizontal = lazy.sumHorizontal;
export import spearmanRankCorr = lazy.spearmanRankCorr;
export import tail = lazy.tail;
export import list = lazy.list;
export import when = lazy.when;
export const version = pli.version();

export import Int8 = DataType.Int8;
export import Int16 = DataType.Int16;
export import Int32 = DataType.Int32;
export import Int64 = DataType.Int64;
export import UInt8 = DataType.UInt8;
export import UInt16 = DataType.UInt16;
export import UInt32 = DataType.UInt32;
export import UInt64 = DataType.UInt64;
export import Float32 = DataType.Float32;
export import Float64 = DataType.Float64;
export import Bool = DataType.Bool;
export import Utf8 = DataType.Utf8;
// biome-ignore lint/suspicious/noShadowRestrictedNames: pl.String
export import String = DataType.String;
export import List = DataType.List;
// biome-ignore lint/suspicious/noShadowRestrictedNames: pl.Date
export import Date = DataType.Date;
export import Datetime = DataType.Datetime;
export import Time = DataType.Time;
// biome-ignore lint/suspicious/noShadowRestrictedNames: pl.Object
export import Object = DataType.Object;
export import Null = DataType.Null;
export import Struct = DataType.Struct;

/**
* Run SQL queries against DataFrame/LazyFrame data.
*
* @warning This functionality is considered **unstable**, although it is close to being
* considered stable. It may be changed at any point without it being considered
* a breaking change.
*/
export function SQLContext(
frames?: Record<string, DataFrame | LazyDataFrame>,
): sql.SQLContext {
return new sql.SQLContext(frames);
}

0 comments on commit 10c9682

Please sign in to comment.