@kernlang/python 3.5.8-canary.209.1.8afcd7e7 → 3.5.8-canary.212.1.1d9726e6
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.
- package/dist/codegen-body-python.js +142 -1
- package/dist/codegen-body-python.js.map +1 -1
- package/dist/codegen-python.d.ts +1 -1
- package/dist/codegen-python.js +24 -2
- package/dist/codegen-python.js.map +1 -1
- package/dist/core/handlers/index.js +427 -2
- package/dist/core/handlers/index.js.map +1 -1
- package/dist/fastapi-portable.js +351 -3
- package/dist/fastapi-portable.js.map +1 -1
- package/dist/fastapi-route.js +36 -0
- package/dist/fastapi-route.js.map +1 -1
- package/dist/generators/ground.d.ts +11 -0
- package/dist/generators/ground.js +325 -9
- package/dist/generators/ground.js.map +1 -1
- package/dist/portable-collection-emitter.d.ts +3 -0
- package/dist/portable-collection-emitter.js +49 -0
- package/dist/portable-collection-emitter.js.map +1 -0
- package/dist/portable-object-emitter.d.ts +2 -0
- package/dist/portable-object-emitter.js +7 -0
- package/dist/portable-object-emitter.js.map +1 -0
- package/dist/portable-predicate-emitter.d.ts +1 -0
- package/dist/portable-predicate-emitter.js +109 -0
- package/dist/portable-predicate-emitter.js.map +1 -0
- package/dist/type-map.d.ts +1 -0
- package/dist/type-map.js +70 -0
- package/dist/type-map.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* Ground Layer generators — Python generation for KERN's ground-truth nodes:
|
|
3
3
|
* derive, transform, action, guard, assume, invariant, each, collect, branch, resolve, expect, recover
|
|
4
4
|
*/
|
|
5
|
-
import { handlerCode, parseExpression } from '@kernlang/core';
|
|
5
|
+
import { emitStringKeyArray, handlerCode, parseExpression, parseKeys } from '@kernlang/core';
|
|
6
6
|
import { emitPyExpression } from '../codegen-body-python.js';
|
|
7
7
|
import { buildPythonParamList, emitPyLowConfidenceTodo, emitPyReasonAnnotations, firstChild, kids, p, } from '../codegen-helpers.js';
|
|
8
|
-
import { mapTsTypeToPython, toSnakeCase } from '../type-map.js';
|
|
8
|
+
import { mapTsTypeToPython, toPythonBindingName, toSnakeCase } from '../type-map.js';
|
|
9
9
|
/**
|
|
10
10
|
* Common preamble extracted from all ground layer generators.
|
|
11
11
|
* Returns { annotations, todo, props, name } ready for use.
|
|
@@ -25,6 +25,29 @@ function unwrapExpr(value) {
|
|
|
25
25
|
return value.code;
|
|
26
26
|
return String(value);
|
|
27
27
|
}
|
|
28
|
+
function emitJsObjectKeyCoercion(keyName) {
|
|
29
|
+
return [
|
|
30
|
+
` if ${keyName} is None:`,
|
|
31
|
+
` ${keyName} = "null"`,
|
|
32
|
+
` elif isinstance(${keyName}, bool):`,
|
|
33
|
+
` ${keyName} = "true" if ${keyName} else "false"`,
|
|
34
|
+
` elif isinstance(${keyName}, float):`,
|
|
35
|
+
` if ${keyName} != ${keyName}:`,
|
|
36
|
+
` ${keyName} = "NaN"`,
|
|
37
|
+
` elif ${keyName} == float("inf"):`,
|
|
38
|
+
` ${keyName} = "Infinity"`,
|
|
39
|
+
` elif ${keyName} == float("-inf"):`,
|
|
40
|
+
` ${keyName} = "-Infinity"`,
|
|
41
|
+
` elif ${keyName}.is_integer():`,
|
|
42
|
+
` ${keyName} = str(int(${keyName}))`,
|
|
43
|
+
` else:`,
|
|
44
|
+
` ${keyName} = str(${keyName})`,
|
|
45
|
+
` elif not isinstance(${keyName}, (str, int)):`,
|
|
46
|
+
` raise TypeError("keyed reshape selector must produce a scalar key")`,
|
|
47
|
+
` else:`,
|
|
48
|
+
` ${keyName} = str(${keyName})`,
|
|
49
|
+
];
|
|
50
|
+
}
|
|
28
51
|
function splitExpressionList(raw, propName) {
|
|
29
52
|
const out = [];
|
|
30
53
|
let current = '';
|
|
@@ -92,6 +115,76 @@ export function generateClamp(node) {
|
|
|
92
115
|
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
93
116
|
return [...todo, ...annotations, `${name}${typeAnnotation} = max(${min}, min(${max}, ${value}))`];
|
|
94
117
|
}
|
|
118
|
+
// ── firstTruthy ────────────────────────────────────────────────────────
|
|
119
|
+
export function generateFirstTruthy(node) {
|
|
120
|
+
const { annotations, todo, props, name } = groundPreamble(node);
|
|
121
|
+
const rawValues = unwrapExpr(props.values);
|
|
122
|
+
if (rawValues === undefined || rawValues === '')
|
|
123
|
+
throw new Error("firstTruthy node requires a 'values' prop");
|
|
124
|
+
const values = splitExpressionList(rawValues, 'firstTruthy values=');
|
|
125
|
+
if (values.length < 2)
|
|
126
|
+
throw new Error('firstTruthy requires at least two value expressions');
|
|
127
|
+
const emitted = values.map((value) => {
|
|
128
|
+
const valueIR = parseExpression(value);
|
|
129
|
+
if (valueIR.kind === 'propagate') {
|
|
130
|
+
throw new Error("Propagation '?' is not allowed in `firstTruthy values=` — bind the value first.");
|
|
131
|
+
}
|
|
132
|
+
return emitFirstTruthyOperandPy(valueIR);
|
|
133
|
+
});
|
|
134
|
+
const constType = props.type;
|
|
135
|
+
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
136
|
+
return [...todo, ...annotations, `${name}${typeAnnotation} = ${emitted.join(' or ')}`];
|
|
137
|
+
}
|
|
138
|
+
function emitFirstTruthyOperandPy(valueIR) {
|
|
139
|
+
const emitted = emitPyExpression(valueIR);
|
|
140
|
+
return valueIR.kind === 'conditional' ? `(${emitted})` : emitted;
|
|
141
|
+
}
|
|
142
|
+
function buildNullishCoalesceIR(values) {
|
|
143
|
+
if (values.length === 1)
|
|
144
|
+
return values[0];
|
|
145
|
+
const [left, ...rest] = values;
|
|
146
|
+
return { kind: 'binary', op: '??', left, right: buildNullishCoalesceIR(rest) };
|
|
147
|
+
}
|
|
148
|
+
export function generateCoalesce(node) {
|
|
149
|
+
const { annotations, todo, props, name } = groundPreamble(node);
|
|
150
|
+
const rawValues = unwrapExpr(props.values);
|
|
151
|
+
if (rawValues === undefined || rawValues === '')
|
|
152
|
+
throw new Error("coalesce node requires a 'values' prop");
|
|
153
|
+
const values = splitExpressionList(rawValues, 'coalesce values=');
|
|
154
|
+
if (values.length < 2)
|
|
155
|
+
throw new Error('coalesce requires at least two value expressions');
|
|
156
|
+
const valueIRs = values.map((value) => {
|
|
157
|
+
const valueIR = parseExpression(value);
|
|
158
|
+
if (valueIR.kind === 'propagate') {
|
|
159
|
+
throw new Error("Propagation '?' is not allowed in `coalesce values=` — bind the value first.");
|
|
160
|
+
}
|
|
161
|
+
return valueIR;
|
|
162
|
+
});
|
|
163
|
+
const constType = props.type;
|
|
164
|
+
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
165
|
+
const chain = emitPyExpression(buildNullishCoalesceIR(valueIRs));
|
|
166
|
+
return [...todo, ...annotations, `${name}${typeAnnotation} = ${chain}`];
|
|
167
|
+
}
|
|
168
|
+
export function generateFirstDefined(node) {
|
|
169
|
+
const { annotations, todo, props, name } = groundPreamble(node);
|
|
170
|
+
const rawValues = unwrapExpr(props.values);
|
|
171
|
+
if (rawValues === undefined || rawValues === '')
|
|
172
|
+
throw new Error("firstDefined node requires a 'values' prop");
|
|
173
|
+
const values = splitExpressionList(rawValues, 'firstDefined values=');
|
|
174
|
+
if (values.length < 2)
|
|
175
|
+
throw new Error('firstDefined requires at least two value expressions');
|
|
176
|
+
const valueIRs = values.map((value) => {
|
|
177
|
+
const valueIR = parseExpression(value);
|
|
178
|
+
if (valueIR.kind === 'propagate') {
|
|
179
|
+
throw new Error("Propagation '?' is not allowed in `firstDefined values=` — bind the value first.");
|
|
180
|
+
}
|
|
181
|
+
return valueIR;
|
|
182
|
+
});
|
|
183
|
+
const constType = props.type;
|
|
184
|
+
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
185
|
+
const chain = emitPyExpression(buildNullishCoalesceIR(valueIRs));
|
|
186
|
+
return [...todo, ...annotations, `${name}${typeAnnotation} = ${chain}`];
|
|
187
|
+
}
|
|
95
188
|
// ── objectMerge ─────────────────────────────────────────────────────────
|
|
96
189
|
export function generateObjectMerge(node) {
|
|
97
190
|
const { annotations, todo, props, name } = groundPreamble(node);
|
|
@@ -115,6 +208,58 @@ export function generateObjectMerge(node) {
|
|
|
115
208
|
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
116
209
|
return [...todo, ...annotations, `${name}${typeAnnotation} = {${emitted.join(', ')}}`];
|
|
117
210
|
}
|
|
211
|
+
export function generateObjectPick(node) {
|
|
212
|
+
const { annotations, todo, props, name } = groundPreamble(node);
|
|
213
|
+
if (props.in === undefined) {
|
|
214
|
+
throw new Error("objectPick node requires an 'in' prop");
|
|
215
|
+
}
|
|
216
|
+
const rawIn = unwrapExpr(props.in);
|
|
217
|
+
if (rawIn === undefined || rawIn === '')
|
|
218
|
+
throw new Error("objectPick node requires an 'in' prop");
|
|
219
|
+
const rawKeys = unwrapExpr(props.keys);
|
|
220
|
+
if (rawKeys === undefined || rawKeys === '')
|
|
221
|
+
throw new Error("objectPick node requires a 'keys' prop");
|
|
222
|
+
const inIR = parseExpression(rawIn);
|
|
223
|
+
if (inIR.kind === 'propagate') {
|
|
224
|
+
throw new Error("Propagation '?' is not allowed in objectPick in=");
|
|
225
|
+
}
|
|
226
|
+
const inExpr = emitPyExpression(inIR);
|
|
227
|
+
const keysList = parseKeys(rawKeys, node, 'objectPick keys=');
|
|
228
|
+
const formattedKeys = emitStringKeyArray(keysList);
|
|
229
|
+
const constType = props.type;
|
|
230
|
+
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
231
|
+
return [
|
|
232
|
+
...todo,
|
|
233
|
+
...annotations,
|
|
234
|
+
`${name}${typeAnnotation} = (lambda __kern_source: {key: (__kern_source[key] if key in __kern_source else None) for key in ${formattedKeys}})(${inExpr})`,
|
|
235
|
+
];
|
|
236
|
+
}
|
|
237
|
+
export function generateObjectOmit(node) {
|
|
238
|
+
const { annotations, todo, props, name } = groundPreamble(node);
|
|
239
|
+
if (props.in === undefined) {
|
|
240
|
+
throw new Error("objectOmit node requires an 'in' prop");
|
|
241
|
+
}
|
|
242
|
+
const rawIn = unwrapExpr(props.in);
|
|
243
|
+
if (rawIn === undefined || rawIn === '')
|
|
244
|
+
throw new Error("objectOmit node requires an 'in' prop");
|
|
245
|
+
const rawKeys = unwrapExpr(props.keys);
|
|
246
|
+
if (rawKeys === undefined || rawKeys === '')
|
|
247
|
+
throw new Error("objectOmit node requires a 'keys' prop");
|
|
248
|
+
const inIR = parseExpression(rawIn);
|
|
249
|
+
if (inIR.kind === 'propagate') {
|
|
250
|
+
throw new Error("Propagation '?' is not allowed in objectOmit in=");
|
|
251
|
+
}
|
|
252
|
+
const inExpr = emitPyExpression(inIR);
|
|
253
|
+
const keysList = parseKeys(rawKeys, node, 'objectOmit keys=');
|
|
254
|
+
const formattedKeys = emitStringKeyArray(keysList);
|
|
255
|
+
const constType = props.type;
|
|
256
|
+
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
257
|
+
return [
|
|
258
|
+
...todo,
|
|
259
|
+
...annotations,
|
|
260
|
+
`${name}${typeAnnotation} = {key: value for key, value in ${inExpr}.items() if key not in ${formattedKeys}}`,
|
|
261
|
+
];
|
|
262
|
+
}
|
|
118
263
|
// ── transform ───────────────────────────────────────────────────────────
|
|
119
264
|
export function generateTransform(node) {
|
|
120
265
|
const { annotations, todo, props, name } = groundPreamble(node);
|
|
@@ -260,16 +405,31 @@ export function generateCollect(node) {
|
|
|
260
405
|
const from = props.from;
|
|
261
406
|
const where = props.where;
|
|
262
407
|
const limit = props.limit;
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
}
|
|
266
|
-
if (
|
|
267
|
-
|
|
408
|
+
const order = props.order;
|
|
409
|
+
const lines = [...todo, ...annotations];
|
|
410
|
+
let expr = where ? `[item for item in ${from} if ${where}]` : `list(${from})`;
|
|
411
|
+
if (order) {
|
|
412
|
+
lines.push('from functools import cmp_to_key');
|
|
413
|
+
expr = `sorted(${expr}, key=cmp_to_key(lambda a, b: ${order}))`;
|
|
268
414
|
}
|
|
269
415
|
if (limit) {
|
|
270
|
-
|
|
416
|
+
expr = `${expr}[:${limit}]`;
|
|
271
417
|
}
|
|
272
|
-
|
|
418
|
+
lines.push(`${name} = ${expr}`);
|
|
419
|
+
return lines;
|
|
420
|
+
}
|
|
421
|
+
// ── count ───────────────────────────────────────────────────────────────
|
|
422
|
+
export function generateCount(node) {
|
|
423
|
+
const { annotations, todo, props, name } = groundPreamble(node);
|
|
424
|
+
const items = unwrapExpr(props.in);
|
|
425
|
+
if (items === undefined || items === '')
|
|
426
|
+
throw new Error("count node requires an 'in' prop");
|
|
427
|
+
const where = unwrapExpr(props.where);
|
|
428
|
+
const item = props.item || 'item';
|
|
429
|
+
const constType = props.type;
|
|
430
|
+
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
431
|
+
const rhs = where ? `sum(1 for ${item} in ${items} if ${where})` : `len(${items})`;
|
|
432
|
+
return [...todo, ...annotations, `${name}${typeAnnotation} = ${rhs}`];
|
|
273
433
|
}
|
|
274
434
|
// ── branch / path ───────────────────────────────────────────────────────
|
|
275
435
|
export function generateBranch(node) {
|
|
@@ -420,4 +580,160 @@ export function generateRecover(node) {
|
|
|
420
580
|
}
|
|
421
581
|
return lines;
|
|
422
582
|
}
|
|
583
|
+
// ── Ground Layer: uniqueBy ───────────────────────────────────────────────
|
|
584
|
+
export function generateUniqueBy(node) {
|
|
585
|
+
const { annotations, todo, props } = groundPreamble(node);
|
|
586
|
+
const name = toPythonBindingName(String(props.name || ''), 'uniqueBy');
|
|
587
|
+
const item = props.item || 'item';
|
|
588
|
+
const collection = unwrapExpr(props.in);
|
|
589
|
+
if (!collection)
|
|
590
|
+
throw new Error("uniqueBy node requires an 'in' prop");
|
|
591
|
+
const by = unwrapExpr(props.by);
|
|
592
|
+
if (!by)
|
|
593
|
+
throw new Error("uniqueBy node requires a 'by' prop");
|
|
594
|
+
const seenName = `__kern_seen_${name}`;
|
|
595
|
+
const seenObjectsName = `__kern_seen_objects_${name}`;
|
|
596
|
+
const keyName = `__kern_key_${name}`;
|
|
597
|
+
const seenKeyName = `__kern_seen_key_${name}`;
|
|
598
|
+
const seenObjectName = `__kern_seen_object_${name}`;
|
|
599
|
+
const constType = props.type;
|
|
600
|
+
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
601
|
+
return [
|
|
602
|
+
...todo,
|
|
603
|
+
...annotations,
|
|
604
|
+
`${name}${typeAnnotation} = []`,
|
|
605
|
+
`${seenName} = set()`,
|
|
606
|
+
`${seenObjectsName} = []`,
|
|
607
|
+
`for ${item} in ${collection}:`,
|
|
608
|
+
` ${keyName} = ${by}`,
|
|
609
|
+
` if ${keyName} is None:`,
|
|
610
|
+
` ${seenKeyName} = ("null", None)`,
|
|
611
|
+
` elif isinstance(${keyName}, bool):`,
|
|
612
|
+
` ${seenKeyName} = ("boolean", ${keyName})`,
|
|
613
|
+
` elif isinstance(${keyName}, float) and ${keyName} != ${keyName}:`,
|
|
614
|
+
` ${seenKeyName} = ("number", "NaN")`,
|
|
615
|
+
` elif isinstance(${keyName}, (int, float)):`,
|
|
616
|
+
` ${seenKeyName} = ("number", ${keyName})`,
|
|
617
|
+
` elif isinstance(${keyName}, str):`,
|
|
618
|
+
` ${seenKeyName} = ("string", ${keyName})`,
|
|
619
|
+
` else:`,
|
|
620
|
+
` for ${seenObjectName} in ${seenObjectsName}:`,
|
|
621
|
+
` if ${keyName} is ${seenObjectName}:`,
|
|
622
|
+
` break`,
|
|
623
|
+
` else:`,
|
|
624
|
+
` ${seenObjectsName}.append(${keyName})`,
|
|
625
|
+
` ${name}.append(${item})`,
|
|
626
|
+
` continue`,
|
|
627
|
+
` if ${seenKeyName} not in ${seenName}:`,
|
|
628
|
+
` ${seenName}.add(${seenKeyName})`,
|
|
629
|
+
` ${name}.append(${item})`,
|
|
630
|
+
];
|
|
631
|
+
}
|
|
632
|
+
// ── Ground Layer: groupBy ────────────────────────────────────────────────
|
|
633
|
+
export function generateGroupBy(node) {
|
|
634
|
+
const { annotations, todo, props } = groundPreamble(node);
|
|
635
|
+
const name = toPythonBindingName(String(props.name || ''), 'groupBy');
|
|
636
|
+
const item = props.item || 'item';
|
|
637
|
+
const collection = unwrapExpr(props.in);
|
|
638
|
+
if (!collection)
|
|
639
|
+
throw new Error("groupBy node requires an 'in' prop");
|
|
640
|
+
const by = unwrapExpr(props.by);
|
|
641
|
+
if (!by)
|
|
642
|
+
throw new Error("groupBy node requires a 'by' prop");
|
|
643
|
+
const keyName = `__kern_key_${name}`;
|
|
644
|
+
const constType = props.type;
|
|
645
|
+
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
646
|
+
return [
|
|
647
|
+
...todo,
|
|
648
|
+
...annotations,
|
|
649
|
+
`${name}${typeAnnotation} = {}`,
|
|
650
|
+
`for ${item} in ${collection}:`,
|
|
651
|
+
` ${keyName} = ${by}`,
|
|
652
|
+
...emitJsObjectKeyCoercion(keyName),
|
|
653
|
+
` ${name}.setdefault(${keyName}, []).append(${item})`,
|
|
654
|
+
];
|
|
655
|
+
}
|
|
656
|
+
// ── Ground Layer: partition ──────────────────────────────────────────────
|
|
657
|
+
export function generatePartition(node) {
|
|
658
|
+
const annotations = emitPyReasonAnnotations(node);
|
|
659
|
+
const conf = p(node).confidence;
|
|
660
|
+
const todo = emitPyLowConfidenceTodo(node, conf);
|
|
661
|
+
const props = p(node);
|
|
662
|
+
const passRaw = props.pass;
|
|
663
|
+
if (!passRaw)
|
|
664
|
+
throw new Error("partition node requires a 'pass' prop");
|
|
665
|
+
const failRaw = props.fail;
|
|
666
|
+
if (!failRaw)
|
|
667
|
+
throw new Error("partition node requires a 'fail' prop");
|
|
668
|
+
const passName = toPythonBindingName(passRaw, 'partition');
|
|
669
|
+
const failName = toPythonBindingName(failRaw, 'partition');
|
|
670
|
+
const item = props.item || 'item';
|
|
671
|
+
const collection = unwrapExpr(props.in);
|
|
672
|
+
if (!collection)
|
|
673
|
+
throw new Error("partition node requires an 'in' prop");
|
|
674
|
+
const predicate = unwrapExpr(props.where);
|
|
675
|
+
if (!predicate)
|
|
676
|
+
throw new Error("partition node requires a 'where' prop");
|
|
677
|
+
const elemType = props.type ? mapTsTypeToPython(props.type) : undefined;
|
|
678
|
+
const typeAnnotation = elemType ? `: list[${elemType}]` : '';
|
|
679
|
+
return [
|
|
680
|
+
...todo,
|
|
681
|
+
...annotations,
|
|
682
|
+
`${passName}${typeAnnotation} = []`,
|
|
683
|
+
`${failName}${typeAnnotation} = []`,
|
|
684
|
+
`for ${item} in ${collection}:`,
|
|
685
|
+
` if ${predicate}:`,
|
|
686
|
+
` ${passName}.append(${item})`,
|
|
687
|
+
` else:`,
|
|
688
|
+
` ${failName}.append(${item})`,
|
|
689
|
+
];
|
|
690
|
+
}
|
|
691
|
+
// ── Ground Layer: indexBy ────────────────────────────────────────────────
|
|
692
|
+
export function generateIndexBy(node) {
|
|
693
|
+
const { annotations, todo, props } = groundPreamble(node);
|
|
694
|
+
const name = toPythonBindingName(String(props.name || ''), 'indexBy');
|
|
695
|
+
const item = props.item || 'item';
|
|
696
|
+
const collection = unwrapExpr(props.in);
|
|
697
|
+
if (!collection)
|
|
698
|
+
throw new Error("indexBy node requires an 'in' prop");
|
|
699
|
+
const by = unwrapExpr(props.by);
|
|
700
|
+
if (!by)
|
|
701
|
+
throw new Error("indexBy node requires a 'by' prop");
|
|
702
|
+
const keyName = `__kern_key_${name}`;
|
|
703
|
+
const constType = props.type;
|
|
704
|
+
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
705
|
+
return [
|
|
706
|
+
...todo,
|
|
707
|
+
...annotations,
|
|
708
|
+
`${name}${typeAnnotation} = {}`,
|
|
709
|
+
`for ${item} in ${collection}:`,
|
|
710
|
+
` ${keyName} = ${by}`,
|
|
711
|
+
...emitJsObjectKeyCoercion(keyName),
|
|
712
|
+
` ${name}[${keyName}] = ${item}`,
|
|
713
|
+
];
|
|
714
|
+
}
|
|
715
|
+
// ── Ground Layer: countBy ────────────────────────────────────────────────
|
|
716
|
+
export function generateCountBy(node) {
|
|
717
|
+
const { annotations, todo, props } = groundPreamble(node);
|
|
718
|
+
const name = toPythonBindingName(String(props.name || ''), 'countBy');
|
|
719
|
+
const item = props.item || 'item';
|
|
720
|
+
const collection = unwrapExpr(props.in);
|
|
721
|
+
if (!collection)
|
|
722
|
+
throw new Error("countBy node requires an 'in' prop");
|
|
723
|
+
const by = unwrapExpr(props.by);
|
|
724
|
+
if (!by)
|
|
725
|
+
throw new Error("countBy node requires a 'by' prop");
|
|
726
|
+
const keyName = `__kern_key_${name}`;
|
|
727
|
+
const constType = props.type;
|
|
728
|
+
const typeAnnotation = constType ? `: ${mapTsTypeToPython(constType)}` : '';
|
|
729
|
+
return [
|
|
730
|
+
...todo,
|
|
731
|
+
...annotations,
|
|
732
|
+
`${name}${typeAnnotation} = {}`,
|
|
733
|
+
`for ${item} in ${collection}:`,
|
|
734
|
+
` ${keyName} = ${by}`,
|
|
735
|
+
...emitJsObjectKeyCoercion(keyName),
|
|
736
|
+
` ${name}[${keyName}] = ${name}.get(${keyName}, 0) + 1`,
|
|
737
|
+
];
|
|
738
|
+
}
|
|
423
739
|
//# sourceMappingURL=ground.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ground.js","sourceRoot":"","sources":["../../src/generators/ground.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ground.js","sourceRoot":"","sources":["../../src/generators/ground.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare function pythonRouteCompactPredicate(item: string): string;
|
|
2
|
+
export declare function emitPythonRouteSortKeyHelper(lines: string[], indent: string, helperName: string): void;
|
|
3
|
+
export declare function emitPythonRoutePluckHelper(lines: string[], indent: string, helperName: string, pathExpr: string): void;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export function pythonRouteCompactPredicate(item) {
|
|
2
|
+
return `${item} is not None and ${item} is not False and ${item} != "" and not (isinstance(${item}, (int, float)) and not isinstance(${item}, bool) and (${item} == 0 or (isinstance(${item}, float) and ${item} != ${item})))`;
|
|
3
|
+
}
|
|
4
|
+
export function emitPythonRouteSortKeyHelper(lines, indent, helperName) {
|
|
5
|
+
lines.push(`${indent}def ${helperName}(__kern_value):`);
|
|
6
|
+
lines.push(`${indent} if __kern_value is None:`);
|
|
7
|
+
lines.push(`${indent} return "null"`);
|
|
8
|
+
lines.push(`${indent} if isinstance(__kern_value, bool):`);
|
|
9
|
+
lines.push(`${indent} return "true" if __kern_value else "false"`);
|
|
10
|
+
lines.push(`${indent} if isinstance(__kern_value, float):`);
|
|
11
|
+
lines.push(`${indent} if __kern_value != __kern_value:`);
|
|
12
|
+
lines.push(`${indent} return "NaN"`);
|
|
13
|
+
lines.push(`${indent} if __kern_value == float("inf"):`);
|
|
14
|
+
lines.push(`${indent} return "Infinity"`);
|
|
15
|
+
lines.push(`${indent} if __kern_value == float("-inf"):`);
|
|
16
|
+
lines.push(`${indent} return "-Infinity"`);
|
|
17
|
+
lines.push(`${indent} if __kern_value.is_integer():`);
|
|
18
|
+
lines.push(`${indent} return str(int(__kern_value))`);
|
|
19
|
+
lines.push(`${indent} return str(__kern_value)`);
|
|
20
|
+
lines.push(`${indent} if isinstance(__kern_value, int):`);
|
|
21
|
+
lines.push(`${indent} return str(__kern_value)`);
|
|
22
|
+
lines.push(`${indent} if isinstance(__kern_value, str):`);
|
|
23
|
+
lines.push(`${indent} return __kern_value`);
|
|
24
|
+
lines.push(`${indent} if isinstance(__kern_value, list):`);
|
|
25
|
+
lines.push(`${indent} return ",".join("" if __kern_item is None else ${helperName}(__kern_item) for __kern_item in __kern_value)`);
|
|
26
|
+
lines.push(`${indent} return "[object Object]"`);
|
|
27
|
+
}
|
|
28
|
+
export function emitPythonRoutePluckHelper(lines, indent, helperName, pathExpr) {
|
|
29
|
+
lines.push(`${indent}def ${helperName}(__kern_item):`);
|
|
30
|
+
lines.push(`${indent} __kern_value = __kern_item`);
|
|
31
|
+
lines.push(`${indent} for __kern_key in ${pathExpr}:`);
|
|
32
|
+
lines.push(`${indent} if __kern_value is None:`);
|
|
33
|
+
lines.push(`${indent} return None`);
|
|
34
|
+
lines.push(`${indent} if isinstance(__kern_value, dict):`);
|
|
35
|
+
lines.push(`${indent} __kern_value = __kern_value.get(__kern_key)`);
|
|
36
|
+
lines.push(`${indent} elif isinstance(__kern_value, list) and str(__kern_key).isdigit():`);
|
|
37
|
+
lines.push(`${indent} __kern_index = int(__kern_key)`);
|
|
38
|
+
lines.push(`${indent} __kern_value = __kern_value[__kern_index] if 0 <= __kern_index < len(__kern_value) else None`);
|
|
39
|
+
lines.push(`${indent} elif hasattr(__kern_value, "_d") and isinstance(getattr(__kern_value, "_d"), dict):`);
|
|
40
|
+
lines.push(`${indent} __kern_value = getattr(__kern_value, "_d").get(__kern_key)`);
|
|
41
|
+
lines.push(`${indent} else:`);
|
|
42
|
+
lines.push(`${indent} __kern_record = __kern_value.model_dump() if hasattr(__kern_value, "model_dump") and callable(__kern_value.model_dump) else __kern_value.dict() if hasattr(__kern_value, "dict") and callable(__kern_value.dict) else vars(__kern_value) if hasattr(__kern_value, "__dict__") else None`);
|
|
43
|
+
lines.push(`${indent} if isinstance(__kern_record, dict):`);
|
|
44
|
+
lines.push(`${indent} __kern_value = __kern_record.get(__kern_key)`);
|
|
45
|
+
lines.push(`${indent} else:`);
|
|
46
|
+
lines.push(`${indent} return None`);
|
|
47
|
+
lines.push(`${indent} return __kern_value`);
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=portable-collection-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portable-collection-emitter.js","sourceRoot":"","sources":["../src/portable-collection-emitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function pythonRouteRecordExpr(expr) {
|
|
2
|
+
return `(lambda __k_src: __k_src if isinstance(__k_src, dict) else getattr(__k_src, "_d") if hasattr(__k_src, "_d") and isinstance(getattr(__k_src, "_d"), dict) else __k_src.model_dump() if hasattr(__k_src, "model_dump") and callable(__k_src.model_dump) else __k_src.dict() if hasattr(__k_src, "dict") and callable(__k_src.dict) else vars(__k_src) if hasattr(__k_src, "__dict__") else {})(${expr})`;
|
|
3
|
+
}
|
|
4
|
+
export function pythonRouteRecordPickExpr(sourceExpr, keysExpr) {
|
|
5
|
+
return `(lambda __k_dict, __k_keys: {key: (__k_dict[key] if key in __k_dict else None) for key in __k_keys})(${pythonRouteRecordExpr(sourceExpr)}, ${keysExpr})`;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=portable-object-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portable-object-emitter.js","sourceRoot":"","sources":["../src/portable-object-emitter.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,gYAAgY,IAAI,GAAG,CAAC;AACjZ,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,UAAkB,EAAE,QAAgB;IAC5E,OAAO,wGAAwG,qBAAqB,CAAC,UAAU,CAAC,KAAK,QAAQ,GAAG,CAAC;AACnK,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function emitPythonPredicateHelpers(indent: string, absentVar: string, getPathVar: string, equalVar: string, evalPredVar: string): string[];
|