@kernlang/python 3.5.6-canary.199.1.c927d232 → 3.5.6-canary.202.1.31706b95
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/adapters/django.d.ts +49 -0
- package/dist/adapters/django.js +151 -0
- package/dist/adapters/django.js.map +1 -0
- package/dist/adapters/fastapi.d.ts +43 -0
- package/dist/adapters/fastapi.js +139 -0
- package/dist/adapters/fastapi.js.map +1 -0
- package/dist/codegen-body-python.d.ts +51 -2
- package/dist/codegen-body-python.js +281 -26
- package/dist/codegen-body-python.js.map +1 -1
- package/dist/codegen-python.d.ts +1 -0
- package/dist/codegen-python.js +1 -1
- package/dist/codegen-python.js.map +1 -1
- package/dist/core/emit-imports.d.ts +11 -0
- package/dist/core/emit-imports.js +166 -0
- package/dist/core/emit-imports.js.map +1 -0
- package/dist/core/emit-models.d.ts +14 -0
- package/dist/core/emit-models.js +86 -0
- package/dist/core/emit-models.js.map +1 -0
- package/dist/core/expr/helpers.d.ts +5 -0
- package/dist/core/expr/helpers.js +62 -0
- package/dist/core/expr/helpers.js.map +1 -0
- package/dist/core/expr/index.d.ts +9 -0
- package/dist/core/expr/index.js +2046 -0
- package/dist/core/expr/index.js.map +1 -0
- package/dist/core/fence-diagnostics.d.ts +17 -0
- package/dist/core/fence-diagnostics.js +86 -0
- package/dist/core/fence-diagnostics.js.map +1 -0
- package/dist/core/handlers/index.d.ts +74 -0
- package/dist/core/handlers/index.js +462 -0
- package/dist/core/handlers/index.js.map +1 -0
- package/dist/core/index.d.ts +3 -0
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/type-mapper.d.ts +4 -0
- package/dist/core/type-mapper.js +8 -0
- package/dist/core/type-mapper.js.map +1 -0
- package/dist/fastapi-portable.d.ts +7 -1
- package/dist/fastapi-portable.js +97 -74
- package/dist/fastapi-portable.js.map +1 -1
- package/dist/fastapi-response.d.ts +0 -4
- package/dist/fastapi-response.js +1 -1868
- package/dist/fastapi-response.js.map +1 -1
- package/dist/fastapi-route.js +24 -3
- package/dist/fastapi-route.js.map +1 -1
- package/dist/fastapi-utils.d.ts +2 -1
- package/dist/fastapi-utils.js +2 -58
- package/dist/fastapi-utils.js.map +1 -1
- package/dist/generators/data.d.ts +3 -1
- package/dist/generators/data.js +28 -1
- package/dist/generators/data.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/ir-semantics/python-leg.js +5 -0
- package/dist/ir-semantics/python-leg.js.map +1 -1
- package/dist/targets/python.d.ts +32 -0
- package/dist/targets/python.js +176 -0
- package/dist/targets/python.js.map +1 -0
- package/dist/transpiler-fastapi.js +23 -66
- package/dist/transpiler-fastapi.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { generatePythonCoreNode } from '../codegen-python.js';
|
|
2
|
+
function findServerNode(root) {
|
|
3
|
+
if (root.type === 'server')
|
|
4
|
+
return root;
|
|
5
|
+
for (const child of root.children || []) {
|
|
6
|
+
const found = findServerNode(child);
|
|
7
|
+
if (found)
|
|
8
|
+
return found;
|
|
9
|
+
}
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Filter the AST for core nodes / declarations and render their bodies using `generatePythonCoreNode`.
|
|
14
|
+
* In types-only projection (e.g. `--emit=models` or target `python`), functions are suppressed.
|
|
15
|
+
*/
|
|
16
|
+
export function emitModels(root, options) {
|
|
17
|
+
const isModelsOnly = options?.emit === 'models' || options?.target === 'python';
|
|
18
|
+
// Allowed core node types
|
|
19
|
+
const TOP_LEVEL_CORE = new Set([
|
|
20
|
+
'type',
|
|
21
|
+
'interface',
|
|
22
|
+
'fn',
|
|
23
|
+
'machine',
|
|
24
|
+
'error',
|
|
25
|
+
'module',
|
|
26
|
+
'config',
|
|
27
|
+
'store',
|
|
28
|
+
'test',
|
|
29
|
+
'event',
|
|
30
|
+
'import',
|
|
31
|
+
'extern',
|
|
32
|
+
'use',
|
|
33
|
+
'const',
|
|
34
|
+
'model',
|
|
35
|
+
'repository',
|
|
36
|
+
'cache',
|
|
37
|
+
'dependency',
|
|
38
|
+
'service',
|
|
39
|
+
'union',
|
|
40
|
+
'job',
|
|
41
|
+
'storage',
|
|
42
|
+
'email',
|
|
43
|
+
'derive',
|
|
44
|
+
'transform',
|
|
45
|
+
'action',
|
|
46
|
+
'guard',
|
|
47
|
+
'assume',
|
|
48
|
+
'invariant',
|
|
49
|
+
'each',
|
|
50
|
+
'collect',
|
|
51
|
+
'branch',
|
|
52
|
+
'resolve',
|
|
53
|
+
'expect',
|
|
54
|
+
'recover',
|
|
55
|
+
]);
|
|
56
|
+
const MODEL_ONLY_CORE = new Set(['type', 'interface', 'event', 'model', 'union']);
|
|
57
|
+
const allowedTypes = isModelsOnly ? MODEL_ONLY_CORE : TOP_LEVEL_CORE;
|
|
58
|
+
// Replicate original transpiler-fastapi core node selection
|
|
59
|
+
const serverNode = findServerNode(root) || root;
|
|
60
|
+
const rootChildren = root.children || [];
|
|
61
|
+
const serverChildren = serverNode !== root ? serverNode.children || [] : [];
|
|
62
|
+
const coreNodes = [
|
|
63
|
+
...rootChildren.filter((c) => allowedTypes.has(c.type)),
|
|
64
|
+
...serverChildren.filter((c) => allowedTypes.has(c.type)),
|
|
65
|
+
];
|
|
66
|
+
if (allowedTypes.has(root.type) && !coreNodes.includes(root)) {
|
|
67
|
+
coreNodes.unshift(root);
|
|
68
|
+
}
|
|
69
|
+
const codegenOpts = {
|
|
70
|
+
resolveKernModuleSpec: options?.resolveKernModuleSpec,
|
|
71
|
+
pythonModelBackend: options?.pythonModelBackend,
|
|
72
|
+
};
|
|
73
|
+
const bodies = coreNodes.map((node) => generatePythonCoreNode(node, codegenOpts));
|
|
74
|
+
const lines = [];
|
|
75
|
+
for (const coreLines of bodies) {
|
|
76
|
+
if (coreLines.length > 0) {
|
|
77
|
+
lines.push(...coreLines);
|
|
78
|
+
lines.push('');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
code: lines.join('\n'),
|
|
83
|
+
bodies,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=emit-models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit-models.js","sourceRoot":"","sources":["../../src/core/emit-models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
export const KERN_PAIR_HELPERS_PY = [
|
|
2
|
+
'def _kern_pairs(__k_v):',
|
|
3
|
+
' return __k_v.items() if hasattr(__k_v, "items") else iter(__k_v)',
|
|
4
|
+
'',
|
|
5
|
+
'async def _kern_async_pairs(__k_v):',
|
|
6
|
+
' if hasattr(__k_v, "__aiter__"):',
|
|
7
|
+
' async for __k_item in __k_v:',
|
|
8
|
+
' yield __k_item',
|
|
9
|
+
' else:',
|
|
10
|
+
' for __k_item in _kern_pairs(__k_v):',
|
|
11
|
+
' yield __k_item',
|
|
12
|
+
].join('\n');
|
|
13
|
+
export const KERN_FMT_HELPER_PY = [
|
|
14
|
+
'def _kern_fmt(__k_v):',
|
|
15
|
+
' if isinstance(__k_v, bool):',
|
|
16
|
+
" return 'true' if __k_v else 'false'",
|
|
17
|
+
' if __k_v is None:',
|
|
18
|
+
" return 'null'",
|
|
19
|
+
' return str(__k_v)',
|
|
20
|
+
].join('\n');
|
|
21
|
+
export const KERN_I32_HELPER_PY = [
|
|
22
|
+
'import math',
|
|
23
|
+
'def _i32(x):',
|
|
24
|
+
' if x is None: return 0',
|
|
25
|
+
' try:',
|
|
26
|
+
' if not math.isfinite(x): return 0',
|
|
27
|
+
' val = int(math.trunc(x))',
|
|
28
|
+
' except Exception:',
|
|
29
|
+
' try:',
|
|
30
|
+
' val = float(x)',
|
|
31
|
+
' if not math.isfinite(val): return 0',
|
|
32
|
+
' val = int(math.trunc(val))',
|
|
33
|
+
' except Exception:',
|
|
34
|
+
' return 0',
|
|
35
|
+
' return ((val & 0xFFFFFFFF) ^ 0x80000000) - 0x80000000',
|
|
36
|
+
].join('\n');
|
|
37
|
+
export const KERN_TMOD_HELPER_PY = [
|
|
38
|
+
'import math',
|
|
39
|
+
'def _tmod(a, b):',
|
|
40
|
+
' if a is None: a = 0',
|
|
41
|
+
' if b is None: b = 0',
|
|
42
|
+
' try:',
|
|
43
|
+
' fa = float(a)',
|
|
44
|
+
' fb = float(b)',
|
|
45
|
+
' except Exception:',
|
|
46
|
+
" return float('nan')",
|
|
47
|
+
" if math.isnan(fa) or math.isnan(fb): return float('nan')",
|
|
48
|
+
" if math.isinf(fa): return float('nan')",
|
|
49
|
+
" if fb == 0: return float('nan')",
|
|
50
|
+
' if math.isinf(fb): return fa',
|
|
51
|
+
' return fa - math.trunc(fa / fb) * fb',
|
|
52
|
+
].join('\n');
|
|
53
|
+
export const KERN_JS_HELPER_PY = [
|
|
54
|
+
'def js_truthy(x):',
|
|
55
|
+
' if x is None or x is False: return False',
|
|
56
|
+
' if isinstance(x, (int, float)) and x == 0: return False',
|
|
57
|
+
' if isinstance(x, str) and x == "": return False',
|
|
58
|
+
' return True',
|
|
59
|
+
'def js_equals(a, b):',
|
|
60
|
+
' return a == b',
|
|
61
|
+
].join('\n');
|
|
62
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/core/expr/helpers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,yBAAyB;IACzB,sEAAsE;IACtE,EAAE;IACF,qCAAqC;IACrC,qCAAqC;IACrC,sCAAsC;IACtC,4BAA4B;IAC5B,WAAW;IACX,6CAA6C;IAC7C,4BAA4B;CAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,uBAAuB;IACvB,iCAAiC;IACjC,6CAA6C;IAC7C,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;CACxB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,aAAa;IACb,cAAc;IACd,4BAA4B;IAC5B,UAAU;IACV,2CAA2C;IAC3C,kCAAkC;IAClC,uBAAuB;IACvB,cAAc;IACd,4BAA4B;IAC5B,iDAAiD;IACjD,wCAAwC;IACxC,2BAA2B;IAC3B,sBAAsB;IACtB,2DAA2D;CAC5D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa;IACb,kBAAkB;IAClB,yBAAyB;IACzB,yBAAyB;IACzB,UAAU;IACV,uBAAuB;IACvB,uBAAuB;IACvB,uBAAuB;IACvB,6BAA6B;IAC7B,8DAA8D;IAC9D,4CAA4C;IAC5C,qCAAqC;IACrC,kCAAkC;IAClC,0CAA0C;CAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,mBAAmB;IACnB,8CAA8C;IAC9C,6DAA6D;IAC7D,qDAAqD;IACrD,iBAAiB;IACjB,sBAAsB;IACtB,mBAAmB;CACpB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Python expression lowering — framework-agnostic.
|
|
3
|
+
*/
|
|
4
|
+
export { KERN_FMT_HELPER_PY, KERN_I32_HELPER_PY, KERN_JS_HELPER_PY, KERN_PAIR_HELPERS_PY, KERN_TMOD_HELPER_PY, } from './helpers.js';
|
|
5
|
+
export declare function quoteObjectKeysOutsideStrings(expr: string): string;
|
|
6
|
+
export declare function rewriteExpr(expr: string, pathParams: string[], bodyFields?: Set<string>, authUser?: boolean, imports?: Set<string>, hoistedDefs?: string[], closureSeq?: {
|
|
7
|
+
n: number;
|
|
8
|
+
}): string;
|
|
9
|
+
export declare function extractExprCode(prop: unknown): string;
|