df-script 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +83 -34
  2. package/dist/api.d.ts +16 -8
  3. package/dist/api.js +11 -3
  4. package/dist/columnExpressions/ColumnExpr.d.ts +26 -364
  5. package/dist/columnExpressions/ColumnExpr.js +199 -3
  6. package/dist/columnExpressions/ExprBase.d.ts +8 -11
  7. package/dist/columnExpressions/ExprBase.js +20 -61
  8. package/dist/columnExpressions/constants.d.ts +2 -0
  9. package/dist/columnExpressions/constants.js +3 -1
  10. package/dist/columnExpressions/functions/coalesce.js +8 -4
  11. package/dist/columnExpressions/functions/element.d.ts +5 -0
  12. package/dist/columnExpressions/functions/element.js +11 -0
  13. package/dist/columnExpressions/functions/implode.d.ts +3 -0
  14. package/dist/columnExpressions/functions/implode.js +7 -0
  15. package/dist/columnExpressions/functions/lit.d.ts +3 -1
  16. package/dist/columnExpressions/functions/lit.js +8 -13
  17. package/dist/columnExpressions/functions/repeat.d.ts +47 -0
  18. package/dist/columnExpressions/functions/repeat.js +131 -0
  19. package/dist/columnExpressions/functions/seq_range.d.ts +31 -0
  20. package/dist/columnExpressions/functions/seq_range.js +91 -0
  21. package/dist/columnExpressions/functions/when.js +8 -4
  22. package/dist/columnExpressions/index.d.ts +5 -2
  23. package/dist/columnExpressions/index.js +5 -48
  24. package/dist/columnExpressions/mixins/AggregationExpr.d.ts +25 -50
  25. package/dist/columnExpressions/mixins/AggregationExpr.js +69 -165
  26. package/dist/columnExpressions/mixins/ArithmeticExpr.d.ts +41 -66
  27. package/dist/columnExpressions/mixins/ArithmeticExpr.js +126 -138
  28. package/dist/columnExpressions/mixins/BooleanExpr.d.ts +40 -0
  29. package/dist/columnExpressions/mixins/BooleanExpr.js +67 -0
  30. package/dist/columnExpressions/mixins/ComparisonExpr.d.ts +31 -60
  31. package/dist/columnExpressions/mixins/ComparisonExpr.js +231 -370
  32. package/dist/columnExpressions/mixins/ListExpr.d.ts +15 -39
  33. package/dist/columnExpressions/mixins/ListExpr.js +124 -148
  34. package/dist/columnExpressions/mixins/LogicalExpr.d.ts +7 -33
  35. package/dist/columnExpressions/mixins/LogicalExpr.js +48 -49
  36. package/dist/columnExpressions/mixins/ManipulationExpr.d.ts +6 -31
  37. package/dist/columnExpressions/mixins/ManipulationExpr.js +61 -25
  38. package/dist/columnExpressions/mixins/NumericExpr.d.ts +92 -0
  39. package/dist/columnExpressions/mixins/NumericExpr.js +259 -0
  40. package/dist/columnExpressions/mixins/StringExpr.d.ts +5 -30
  41. package/dist/columnExpressions/mixins/StringExpr.js +37 -49
  42. package/dist/columnExpressions/mixins/StructExpr.d.ts +16 -0
  43. package/dist/columnExpressions/mixins/StructExpr.js +139 -0
  44. package/dist/columnExpressions/mixins/TemporalExpr.d.ts +4 -30
  45. package/dist/columnExpressions/mixins/TemporalExpr.js +28 -29
  46. package/dist/columnExpressions/mixins/WindowExpr.d.ts +27 -49
  47. package/dist/columnExpressions/mixins/WindowExpr.js +144 -274
  48. package/dist/columnExpressions/utils.d.ts +4 -0
  49. package/dist/columnExpressions/utils.js +45 -0
  50. package/dist/dataframe/constants.d.ts +3 -0
  51. package/dist/dataframe/constants.js +4 -1
  52. package/dist/dataframe/dataframe.d.ts +27 -10
  53. package/dist/dataframe/dataframe.js +461 -220
  54. package/dist/dataframe/grouped/grouped.d.ts +2 -3
  55. package/dist/dataframe/grouped/grouped.js +17 -16
  56. package/dist/dataframe/types.d.ts +65 -1
  57. package/dist/dataframe/utils.d.ts +11 -3
  58. package/dist/dataframe/utils.js +101 -9
  59. package/dist/datatypes/DataType.d.ts +2 -1
  60. package/dist/datatypes/DataType.js +29 -0
  61. package/dist/datatypes/index.d.ts +2 -2
  62. package/dist/datatypes/types.d.ts +37 -36
  63. package/dist/datatypes/types.js +15 -11
  64. package/dist/exceptions/index.d.ts +2 -0
  65. package/dist/exceptions/index.js +4 -1
  66. package/dist/exceptions/utils.d.ts +1 -0
  67. package/dist/exceptions/utils.js +19 -0
  68. package/dist/functions/concat.d.ts +1 -2
  69. package/dist/functions/concat.js +24 -12
  70. package/dist/functions/index.d.ts +3 -1
  71. package/dist/functions/index.js +7 -15
  72. package/dist/functions/read_csv.d.ts +8 -0
  73. package/dist/functions/read_csv.js +53 -0
  74. package/dist/functions/read_json.d.ts +10 -0
  75. package/dist/functions/read_json.js +21 -0
  76. package/dist/functions/transpose.d.ts +7 -0
  77. package/dist/functions/transpose.js +84 -0
  78. package/dist/index.js +6 -1
  79. package/dist/types.d.ts +31 -5
  80. package/dist/utils/csv.d.ts +77 -0
  81. package/dist/utils/csv.js +313 -0
  82. package/dist/utils/date.js +5 -6
  83. package/dist/utils/guards.d.ts +0 -2
  84. package/dist/utils/guards.js +0 -31
  85. package/dist/utils/index.d.ts +2 -0
  86. package/dist/utils/index.js +2 -0
  87. package/dist/utils/json.d.ts +120 -2
  88. package/dist/utils/json.js +204 -20
  89. package/dist/utils/list.d.ts +173 -1
  90. package/dist/utils/list.js +255 -22
  91. package/dist/utils/number.d.ts +61 -28
  92. package/dist/utils/number.js +248 -70
  93. package/dist/utils/string.d.ts +5 -0
  94. package/dist/utils/string.js +89 -0
  95. package/package.json +5 -1
@@ -2,142 +2,130 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ArithmeticExpr = void 0;
4
4
  const ExprBase_1 = require("../ExprBase");
5
- const utils_1 = require("../../utils");
6
- const ArithmeticExpr = (Base) => {
7
- return class extends Base {
8
- abs() {
9
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => Math.abs(v)));
10
- }
11
- acos() {
12
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => (v < -1 || v > 1) ? null : Math.acos(v)));
13
- }
14
- acosh() {
15
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => v < 1 ? null : Math.acosh(v)));
16
- }
17
- add(val) {
18
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneBinary)(this, val, (v, r) => v + r));
19
- }
20
- asin() {
21
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => (v < -1 || v > 1) ? null : Math.asin(v)));
22
- }
23
- asinh() {
24
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.asinh));
25
- }
26
- atan() {
27
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.atan));
28
- }
29
- atanh() {
30
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => (v <= -1 || v >= 1) ? null : Math.atanh(v)));
31
- }
32
- cbrt() {
33
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.cbrt));
34
- }
35
- ceil() {
36
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.ceil));
37
- }
38
- clip(lower = null, upper = null) {
39
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => {
40
- if (lower !== null && upper !== null) {
41
- return (0, utils_1.clamp)({ val: v, min: lower, max: upper });
42
- }
43
- else if (lower !== null) {
44
- return Math.max(v, lower);
45
- }
46
- else if (upper !== null) {
47
- return Math.min(v, upper);
48
- }
49
- return v;
50
- }));
51
- }
52
- cos() {
53
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.cos));
54
- }
55
- cosh() {
56
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.cosh));
57
- }
58
- degrees() {
59
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => v * (180 / Math.PI)));
60
- }
61
- div(val) {
62
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneBinary)(this, val, (v, r) => r === 0 ? null : v / r));
63
- }
64
- exp() {
65
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.exp));
66
- }
67
- expm1() {
68
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.expm1));
69
- }
70
- floor() {
71
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.floor));
72
- }
73
- floordiv(val) {
74
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneBinary)(this, val, (v, r) => r === 0 ? null : Math.floor(v / r)));
75
- }
76
- hypot(val) {
77
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneBinary)(this, val, (v, r) => Math.hypot(v, r)));
78
- }
79
- log(base = Math.E) {
80
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => v <= 0 ? null : (base === Math.E ? Math.log(v) : Math.log(v) / Math.log(base))));
81
- }
82
- log1p() {
83
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => v <= -1 ? null : Math.log1p(v)));
84
- }
85
- mod(val) {
86
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneBinary)(this, val, (v, r) => r === 0 ? null : v % r));
87
- }
88
- mul(val) {
89
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneBinary)(this, val, (v, r) => v * r));
90
- }
91
- negate() {
92
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => -v));
93
- }
94
- pow(val) {
95
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneBinary)(this, val, (v, r) => Math.pow(v, r)));
96
- }
97
- radians() {
98
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => v * (Math.PI / 180)));
99
- }
100
- rand(seed, { min = 0, max = 1, integer = false } = {}) {
101
- return (0, ExprBase_1.derive)(this, (vArray) => {
102
- const len = vArray.length;
103
- const out = new Float64Array(len);
104
- const rnd = seed !== undefined ? (0, utils_1.mulberry32)(seed) : Math.random;
105
- const range = max - min;
106
- for (let i = 0; i < len; i++) {
107
- const raw = rnd();
108
- out[i] = integer ? Math.floor(raw * (range + 1)) + min : raw * range + min;
109
- }
110
- return out;
111
- });
112
- }
113
- round(decimals = 0) {
114
- const factor = Math.pow(10, decimals);
115
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => Math.round(v * factor) / factor));
116
- }
117
- sign() {
118
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.sign));
119
- }
120
- sin() {
121
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.sin));
122
- }
123
- sinh() {
124
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.sinh));
125
- }
126
- sqrt() {
127
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => v < 0 ? null : Math.sqrt(v)));
128
- }
129
- sub(val) {
130
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneBinary)(this, val, (v, r) => v - r));
131
- }
132
- tan() {
133
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.tan));
134
- }
135
- tanh() {
136
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.tanh));
137
- }
138
- trunc() {
139
- return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)(Math.trunc));
140
- }
141
- };
142
- };
5
+ const utils_1 = require("../utils");
6
+ const utils_2 = require("../../utils");
7
+ class ArithmeticExpr extends ExprBase_1.ExprBase {
8
+ abs() {
9
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => Math.abs(v)));
10
+ }
11
+ acos() {
12
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => (v < -1 || v > 1) ? null : Math.acos(v)));
13
+ }
14
+ acosh() {
15
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => v < 1 ? null : Math.acosh(v)));
16
+ }
17
+ add(val) {
18
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneBinary)(this, val, (v, r) => v + r));
19
+ }
20
+ asin() {
21
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => (v < -1 || v > 1) ? null : Math.asin(v)));
22
+ }
23
+ asinh() {
24
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.asinh));
25
+ }
26
+ atan() {
27
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.atan));
28
+ }
29
+ atanh() {
30
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => (v <= -1 || v >= 1) ? null : Math.atanh(v)));
31
+ }
32
+ cbrt() {
33
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.cbrt));
34
+ }
35
+ ceil() {
36
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.ceil));
37
+ }
38
+ clip(lower = null, upper = null) {
39
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => (0, utils_2.clamp)(v, { min: lower, max: upper })));
40
+ }
41
+ cos() {
42
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.cos));
43
+ }
44
+ cosh() {
45
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.cosh));
46
+ }
47
+ degrees() {
48
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => v * (180 / Math.PI)));
49
+ }
50
+ div(val) {
51
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneBinary)(this, val, (v, r) => r === 0 ? null : v / r));
52
+ }
53
+ exp() {
54
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.exp));
55
+ }
56
+ expm1() {
57
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.expm1));
58
+ }
59
+ floor() {
60
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.floor));
61
+ }
62
+ floordiv(val) {
63
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneBinary)(this, val, (v, r) => r === 0 ? null : Math.floor(v / r)));
64
+ }
65
+ hypot(val) {
66
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneBinary)(this, val, (v, r) => Math.hypot(v, r)));
67
+ }
68
+ log(base = Math.E) {
69
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => v <= 0 ? null : (base === Math.E ? Math.log(v) : Math.log(v) / Math.log(base))));
70
+ }
71
+ log1p() {
72
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => v <= -1 ? null : Math.log1p(v)));
73
+ }
74
+ mod(val) {
75
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneBinary)(this, val, (v, r) => r === 0 ? null : v % r));
76
+ }
77
+ mul(val) {
78
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneBinary)(this, val, (v, r) => v * r));
79
+ }
80
+ negate() {
81
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => -v));
82
+ }
83
+ pow(val) {
84
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneBinary)(this, val, (v, r) => Math.pow(v, r)));
85
+ }
86
+ radians() {
87
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => v * (Math.PI / 180)));
88
+ }
89
+ rand(seed, { min = 0, max = 1, integer = false } = {}) {
90
+ return (0, ExprBase_1.derive)(this, (vArray) => {
91
+ const len = vArray.length;
92
+ const out = new Float64Array(len);
93
+ const rnd = seed !== undefined ? (0, utils_2.mulberry32)(seed) : Math.random;
94
+ const range = max - min;
95
+ for (let i = 0; i < len; i++) {
96
+ const raw = rnd();
97
+ out[i] = integer ? Math.floor(raw * (range + 1)) + min : raw * range + min;
98
+ }
99
+ return out;
100
+ });
101
+ }
102
+ round(decimals = 0) {
103
+ const factor = Math.pow(10, decimals);
104
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => Math.round(v * factor) / factor));
105
+ }
106
+ sign() {
107
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.sign));
108
+ }
109
+ sin() {
110
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.sin));
111
+ }
112
+ sinh() {
113
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.sinh));
114
+ }
115
+ sqrt() {
116
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)((v) => v < 0 ? null : Math.sqrt(v)));
117
+ }
118
+ sub(val) {
119
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneBinary)(this, val, (v, r) => v - r));
120
+ }
121
+ tan() {
122
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.tan));
123
+ }
124
+ tanh() {
125
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.tanh));
126
+ }
127
+ trunc() {
128
+ return (0, ExprBase_1.derive)(this, (0, utils_1.kleeneUnary)(Math.trunc));
129
+ }
130
+ }
143
131
  exports.ArithmeticExpr = ArithmeticExpr;
@@ -0,0 +1,40 @@
1
+ import type { ExprConstructor } from "../types";
2
+ export declare const BooleanExpr: <TBase extends ExprConstructor>(Base: TBase) => {
3
+ new (...args: any[]): {
4
+ and(other: any): /*elided*/ any;
5
+ not(): /*elided*/ any;
6
+ or(other: any): /*elided*/ any;
7
+ xor(other: any): /*elided*/ any;
8
+ all(): /*elided*/ any;
9
+ all_null(): /*elided*/ any;
10
+ any(): /*elided*/ any;
11
+ any_null(): /*elided*/ any;
12
+ ops: import("../..").OpFn[];
13
+ colName?: string;
14
+ outputName?: string;
15
+ isLiteral?: boolean;
16
+ literalValue?: any;
17
+ aggFn?: import("../..").AggFn<any> | null;
18
+ groupingOpsIndex?: number;
19
+ partitionOpsIndex?: number;
20
+ partitionBy?: (string | import("../..").IExpr)[] | null;
21
+ windowOp?: {
22
+ type: string;
23
+ [key: string]: any;
24
+ } | null;
25
+ isWindow?: boolean;
26
+ alias(name: string): /*elided*/ any;
27
+ cast(dataType: import("../..").RegisteredDataType): /*elided*/ any;
28
+ _resolve(val: any, columns: import("../..").ColumnDict, height: number): import("../..").ColumnData | any;
29
+ evaluate(columns: import("../..").ColumnDict, height: number): import("../..").ColumnData;
30
+ evaluatePreGrouping(columns: import("../..").ColumnDict, height: number): import("../..").ColumnData;
31
+ evaluatePostGrouping(aggregatedArray: any[], columns: import("../..").ColumnDict): import("../..").ColumnData;
32
+ evaluatePrePartition(columns: import("../..").ColumnDict, height: number): import("../..").ColumnData;
33
+ evaluatePostPartition(aggregatedArray: any[], columns: import("../..").ColumnDict): import("../..").ColumnData;
34
+ evaluateWindow?(groupPreValues: any[], partitionIndices: number[], currentIndex: number): any;
35
+ debug(label?: string): /*elided*/ any;
36
+ _window(evaluateWindow: (this: import("../..").IExpr, groupPreValues: any[], partitionIndices: number[], currentIndex: number) => any): /*elided*/ any;
37
+ _rolling(windowSize: number, aggFn: (vals: any[]) => any): /*elided*/ any;
38
+ _deriveAgg(fn: import("../..").AggFn<any>): /*elided*/ any;
39
+ };
40
+ } & TBase;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BooleanExpr = void 0;
4
+ const ExprBase_1 = require("../ExprBase");
5
+ const utils_1 = require("../../utils");
6
+ const BooleanExpr = (Base) => {
7
+ return class extends Base {
8
+ and(other) {
9
+ return (0, ExprBase_1.derive)(this, (vArray, columns) => {
10
+ const height = vArray.length;
11
+ const otherVal = this._resolve(other, columns, height);
12
+ const isOtherArray = (0, utils_1.isArrayOrTypedArray)(otherVal);
13
+ const result = new Array(height);
14
+ for (let i = 0; i < height; i++) {
15
+ const v = vArray[i];
16
+ const w = isOtherArray ? otherVal[i] : otherVal;
17
+ if (v === false || w === false)
18
+ result[i] = false;
19
+ else if (v == null || w == null)
20
+ result[i] = null;
21
+ else
22
+ result[i] = true;
23
+ }
24
+ return result;
25
+ });
26
+ }
27
+ not() {
28
+ return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneUnary)((v) => !v));
29
+ }
30
+ or(other) {
31
+ return (0, ExprBase_1.derive)(this, (vArray, columns) => {
32
+ const height = vArray.length;
33
+ const otherVal = this._resolve(other, columns, height);
34
+ const isOtherArray = (0, utils_1.isArrayOrTypedArray)(otherVal);
35
+ const result = new Array(height);
36
+ for (let i = 0; i < height; i++) {
37
+ const v = vArray[i];
38
+ const w = isOtherArray ? otherVal[i] : otherVal;
39
+ if (v === true || w === true)
40
+ result[i] = true;
41
+ else if (v == null || w == null)
42
+ result[i] = null;
43
+ else
44
+ result[i] = false;
45
+ }
46
+ return result;
47
+ });
48
+ }
49
+ xor(other) {
50
+ return (0, ExprBase_1.derive)(this, (0, ExprBase_1.kleeneBinary)(this, other, (v, w) => !!v !== !!w));
51
+ }
52
+ // Boolean Aggregations
53
+ all() {
54
+ return this._deriveAgg((v) => (0, utils_1.isArrayOfType)(v, (x) => !!x, { mode: "every" }));
55
+ }
56
+ all_null() {
57
+ return this._deriveAgg((v) => (0, utils_1.isArrayOfType)(v, "nullish", { mode: "every" }));
58
+ }
59
+ any() {
60
+ return this._deriveAgg((v) => (0, utils_1.isArrayOfType)(v, (x) => !!x, { mode: "some" }));
61
+ }
62
+ any_null() {
63
+ return this._deriveAgg((v) => (0, utils_1.isArrayOfType)(v, "nullish", { mode: "some" }));
64
+ }
65
+ };
66
+ };
67
+ exports.BooleanExpr = BooleanExpr;
@@ -1,60 +1,31 @@
1
- import type { ExprConstructor } from "../types";
2
- export declare const ComparisonExpr: <TBase extends ExprConstructor>(Base: TBase) => {
3
- new (...args: any[]): {
4
- between(lower: any, upper: any, closed?: "both" | "left" | "right" | "none"): /*elided*/ any;
5
- eq(val: any): /*elided*/ any;
6
- eq_missing(val: any): /*elided*/ any;
7
- ge(val: any): /*elided*/ any;
8
- gt(val: any): /*elided*/ any;
9
- has_nulls(): any;
10
- is_close(other: any, options?: {
11
- abs_tol?: number;
12
- rel_tol?: number;
13
- nans_equal?: boolean;
14
- }): /*elided*/ any;
15
- is_duplicated(): /*elided*/ any;
16
- is_empty(options?: {
17
- ignoreNulls?: boolean;
18
- }): /*elided*/ any;
19
- is_finite(): /*elided*/ any;
20
- is_first_distinct(): /*elided*/ any;
21
- is_in(values: any[] | any): /*elided*/ any;
22
- is_infinite(): /*elided*/ any;
23
- is_last_distinct(): /*elided*/ any;
24
- is_n_distinct(n: number): any;
25
- is_nan(): /*elided*/ any;
26
- is_not_nan(): /*elided*/ any;
27
- is_not_null(): /*elided*/ any;
28
- is_null(): /*elided*/ any;
29
- is_unique(): /*elided*/ any;
30
- le(val: any): /*elided*/ any;
31
- lt(val: any): /*elided*/ any;
32
- ne(val: any): /*elided*/ any;
33
- ne_missing(val: any): /*elided*/ any;
34
- not_in(values: any[] | any): /*elided*/ any;
35
- ops: import("../..").OpFn[];
36
- colName?: string;
37
- outputName?: string;
38
- isLiteral?: boolean;
39
- literalValue?: any;
40
- aggFn?: import("../..").AggFn<any> | null;
41
- groupingOpsIndex?: number;
42
- partitionOpsIndex?: number;
43
- partitionBy?: (string | import("../..").IExpr)[] | null;
44
- windowOp?: {
45
- type: string;
46
- [key: string]: any;
47
- } | null;
48
- isWindow?: boolean;
49
- alias(name: string): /*elided*/ any;
50
- cast(dataType: any): /*elided*/ any;
51
- _resolve(val: any, columns: import("../..").ColumnDict, height: number): import("../..").ColumnData | any;
52
- evaluate(columns: import("../..").ColumnDict, height: number): import("../..").ColumnData;
53
- evaluatePreGrouping(columns: import("../..").ColumnDict, height: number): import("../..").ColumnData;
54
- evaluatePostGrouping(aggregatedArray: any[], columns: import("../..").ColumnDict): import("../..").ColumnData;
55
- evaluatePrePartition(columns: import("../..").ColumnDict, height: number): import("../..").ColumnData;
56
- evaluatePostPartition(aggregatedArray: any[], columns: import("../..").ColumnDict): import("../..").ColumnData;
57
- evaluateWindow?(groupPreValues: any[], partitionIndices: number[], currentIndex: number): any;
58
- debug(label?: string): /*elided*/ any;
59
- };
60
- } & TBase;
1
+ import { ExprBase } from "../ExprBase";
2
+ export declare class ComparisonExpr extends ExprBase {
3
+ between(lower: any, upper: any, closed?: "both" | "left" | "right" | "none"): this;
4
+ eq(val: any): this;
5
+ eq_missing(val: any): this;
6
+ ge(val: any): this;
7
+ gt(val: any): this;
8
+ has_nulls(): any;
9
+ is_close(other: any, { abs_tol, rel_tol, nans_equal }?: {
10
+ abs_tol?: number;
11
+ rel_tol?: number;
12
+ nans_equal?: boolean;
13
+ }): this;
14
+ is_duplicated(): this;
15
+ is_empty({ ignoreNulls }?: {
16
+ ignoreNulls?: boolean;
17
+ }): this;
18
+ is_finite(): this;
19
+ is_in(values: any[] | any): this;
20
+ is_infinite(): this;
21
+ is_nan(): this;
22
+ is_not_nan(): this;
23
+ is_not_null(): this;
24
+ is_null(): this;
25
+ is_unique(): this;
26
+ le(val: any): this;
27
+ lt(val: any): this;
28
+ ne(val: any): this;
29
+ ne_missing(val: any): this;
30
+ not_in(values: any[] | any): this;
31
+ }