@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.
@@ -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
- if (where && limit) {
264
- return [...todo, ...annotations, `${name} = [item for item in ${from} if ${where}][:${limit}]`];
265
- }
266
- if (where) {
267
- return [...todo, ...annotations, `${name} = [item for item in ${from} if ${where}]`];
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
- return [...todo, ...annotations, `${name} = ${from}[:${limit}]`];
416
+ expr = `${expr}[:${limit}]`;
271
417
  }
272
- return [...todo, ...annotations, `${name} = list(${from})`];
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,2 @@
1
+ export declare function pythonRouteRecordExpr(expr: string): string;
2
+ export declare function pythonRouteRecordPickExpr(sourceExpr: string, keysExpr: string): string;
@@ -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[];