tywrap 0.6.0 → 0.7.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.
- package/dist/core/annotation-parser.d.ts.map +1 -1
- package/dist/core/annotation-parser.js +19 -14
- package/dist/core/annotation-parser.js.map +1 -1
- package/dist/core/discovery.d.ts +17 -0
- package/dist/core/discovery.d.ts.map +1 -1
- package/dist/core/discovery.js +59 -49
- package/dist/core/discovery.js.map +1 -1
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +40 -9
- package/dist/core/generator.js.map +1 -1
- package/dist/core/validation.d.ts +23 -0
- package/dist/core/validation.d.ts.map +1 -1
- package/dist/core/validation.js +52 -48
- package/dist/core/validation.js.map +1 -1
- package/dist/dev.d.ts.map +1 -1
- package/dist/dev.js +175 -133
- package/dist/dev.js.map +1 -1
- package/dist/runtime/base-bridge.d.ts +57 -0
- package/dist/runtime/base-bridge.d.ts.map +1 -0
- package/dist/runtime/base-bridge.js +72 -0
- package/dist/runtime/base-bridge.js.map +1 -0
- package/dist/runtime/bridge-codec.d.ts +15 -0
- package/dist/runtime/bridge-codec.d.ts.map +1 -1
- package/dist/runtime/bridge-codec.js +45 -48
- package/dist/runtime/bridge-codec.js.map +1 -1
- package/dist/runtime/http-transport.d.ts +11 -1
- package/dist/runtime/http-transport.d.ts.map +1 -1
- package/dist/runtime/http-transport.js +19 -0
- package/dist/runtime/http-transport.js.map +1 -1
- package/dist/runtime/http.d.ts +5 -12
- package/dist/runtime/http.d.ts.map +1 -1
- package/dist/runtime/http.js +6 -29
- package/dist/runtime/http.js.map +1 -1
- package/dist/runtime/index.d.ts +1 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/node.d.ts +12 -19
- package/dist/runtime/node.d.ts.map +1 -1
- package/dist/runtime/node.js +14 -34
- package/dist/runtime/node.js.map +1 -1
- package/dist/runtime/pooled-transport.d.ts +21 -2
- package/dist/runtime/pooled-transport.d.ts.map +1 -1
- package/dist/runtime/pooled-transport.js +16 -0
- package/dist/runtime/pooled-transport.js.map +1 -1
- package/dist/runtime/pyodide-bootstrap-core.generated.d.ts.map +1 -1
- package/dist/runtime/pyodide-bootstrap-core.generated.js +1 -1
- package/dist/runtime/pyodide-bootstrap-core.generated.js.map +1 -1
- package/dist/runtime/pyodide-transport.d.ts +12 -1
- package/dist/runtime/pyodide-transport.d.ts.map +1 -1
- package/dist/runtime/pyodide-transport.js +20 -0
- package/dist/runtime/pyodide-transport.js.map +1 -1
- package/dist/runtime/pyodide.d.ts +5 -12
- package/dist/runtime/pyodide.d.ts.map +1 -1
- package/dist/runtime/pyodide.js +6 -29
- package/dist/runtime/pyodide.js.map +1 -1
- package/dist/runtime/rpc-client.d.ts +32 -1
- package/dist/runtime/rpc-client.d.ts.map +1 -1
- package/dist/runtime/rpc-client.js +45 -24
- package/dist/runtime/rpc-client.js.map +1 -1
- package/dist/runtime/subprocess-transport.d.ts +26 -1
- package/dist/runtime/subprocess-transport.d.ts.map +1 -1
- package/dist/runtime/subprocess-transport.js +72 -35
- package/dist/runtime/subprocess-transport.js.map +1 -1
- package/dist/runtime/transport.d.ts +59 -0
- package/dist/runtime/transport.d.ts.map +1 -1
- package/dist/runtime/transport.js +1 -0
- package/dist/runtime/transport.js.map +1 -1
- package/dist/types/index.d.ts +35 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/tywrap.d.ts +0 -5
- package/dist/tywrap.d.ts.map +1 -1
- package/dist/tywrap.js +212 -169
- package/dist/tywrap.js.map +1 -1
- package/dist/utils/cache.d.ts +11 -0
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/cache.js +50 -58
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/codec.d.ts +2 -0
- package/dist/utils/codec.d.ts.map +1 -1
- package/dist/utils/codec.js +53 -2
- package/dist/utils/codec.js.map +1 -1
- package/dist/utils/python.d.ts.map +1 -1
- package/dist/utils/python.js +28 -17
- package/dist/utils/python.js.map +1 -1
- package/dist/utils/runtime.d.ts.map +1 -1
- package/dist/utils/runtime.js +22 -16
- package/dist/utils/runtime.js.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -1
- package/runtime/__pycache__/_tywrap_member_fixtures.cpython-311.pyc +0 -0
- package/runtime/__pycache__/safe_codec.cpython-311.pyc +0 -0
- package/runtime/__pycache__/tywrap_bridge_core.cpython-311.pyc +0 -0
- package/runtime/tywrap_bridge_core.py +55 -3
- package/src/core/annotation-parser.ts +23 -18
- package/src/core/discovery.ts +70 -54
- package/src/core/generator.ts +50 -11
- package/src/core/validation.ts +84 -48
- package/src/dev.ts +237 -153
- package/src/runtime/base-bridge.ts +106 -0
- package/src/runtime/bridge-codec.ts +58 -70
- package/src/runtime/http-transport.ts +21 -1
- package/src/runtime/http.ts +7 -51
- package/src/runtime/index.ts +1 -0
- package/src/runtime/node.ts +17 -52
- package/src/runtime/pooled-transport.ts +25 -2
- package/src/runtime/pyodide-bootstrap-core.generated.ts +1 -1
- package/src/runtime/pyodide-transport.ts +22 -0
- package/src/runtime/pyodide.ts +7 -52
- package/src/runtime/rpc-client.ts +56 -32
- package/src/runtime/subprocess-transport.ts +89 -40
- package/src/runtime/transport.ts +71 -0
- package/src/types/index.ts +37 -0
- package/src/tywrap.ts +274 -187
- package/src/utils/cache.ts +59 -61
- package/src/utils/codec.ts +61 -4
- package/src/utils/python.ts +33 -20
- package/src/utils/runtime.ts +24 -13
- package/src/version.ts +1 -1
package/dist/types/index.d.ts
CHANGED
|
@@ -11,6 +11,15 @@ export interface PythonModule {
|
|
|
11
11
|
imports: PythonImport[];
|
|
12
12
|
exports: string[];
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* How a callable is bound on its owning class.
|
|
16
|
+
*
|
|
17
|
+
* Mirrors `IRFunction.method_kind` from the Python IR (tywrap_ir 0.3.0):
|
|
18
|
+
* `'instance'` (default, keeps `self`), `'class'` (keeps `cls`), or
|
|
19
|
+
* `'static'` (no implicit first parameter). Module-level functions retain the
|
|
20
|
+
* `'instance'` default; it is only meaningful for class members.
|
|
21
|
+
*/
|
|
22
|
+
export type PythonMethodKind = 'instance' | 'class' | 'static';
|
|
14
23
|
export interface PythonFunction {
|
|
15
24
|
name: string;
|
|
16
25
|
signature: FunctionSignature;
|
|
@@ -21,12 +30,38 @@ export interface PythonFunction {
|
|
|
21
30
|
typeParameters?: PythonGenericParameter[];
|
|
22
31
|
returnType: PythonType;
|
|
23
32
|
parameters: Parameter[];
|
|
33
|
+
/**
|
|
34
|
+
* Binding of this callable on its owning class. Defaults to `'instance'`.
|
|
35
|
+
* @see PythonMethodKind
|
|
36
|
+
*/
|
|
37
|
+
methodKind?: PythonMethodKind;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* A `@property` or `functools.cached_property` exposed on a class.
|
|
41
|
+
*
|
|
42
|
+
* Mirrors `IRAccessor` from the Python IR (tywrap_ir 0.3.0). Distinct from
|
|
43
|
+
* {@link PythonClass.properties} (which model TypedDict/NamedTuple/dataclass
|
|
44
|
+
* data shapes): accessors are computed attributes backed by a getter.
|
|
45
|
+
*/
|
|
46
|
+
export interface PythonAccessor {
|
|
47
|
+
name: string;
|
|
48
|
+
type: PythonType;
|
|
49
|
+
docstring?: string;
|
|
50
|
+
/** True when there is no setter. `undefined` when undeterminable. */
|
|
51
|
+
readOnly?: boolean;
|
|
52
|
+
/** True for `functools.cached_property`. */
|
|
53
|
+
isCached: boolean;
|
|
24
54
|
}
|
|
25
55
|
export interface PythonClass {
|
|
26
56
|
name: string;
|
|
27
57
|
bases: string[];
|
|
28
58
|
methods: PythonFunction[];
|
|
29
59
|
properties: Property[];
|
|
60
|
+
/**
|
|
61
|
+
* `@property` / `functools.cached_property` accessors, emitted as TS getters.
|
|
62
|
+
* @see PythonAccessor
|
|
63
|
+
*/
|
|
64
|
+
accessors?: PythonAccessor[];
|
|
30
65
|
docstring?: string;
|
|
31
66
|
decorators: string[];
|
|
32
67
|
kind?: 'class' | 'protocol' | 'typed_dict' | 'namedtuple' | 'dataclass' | 'pydantic';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tywrap.d.ts
CHANGED
|
@@ -13,11 +13,6 @@ export interface TywrapInstance {
|
|
|
13
13
|
options: Partial<TywrapOptions>;
|
|
14
14
|
}
|
|
15
15
|
export declare function tywrap(options?: Partial<TywrapOptions>): Promise<TywrapInstance>;
|
|
16
|
-
export default tywrap;
|
|
17
|
-
/**
|
|
18
|
-
* Append minimal tsd tests for a generated module (optional dev aid)
|
|
19
|
-
*/
|
|
20
|
-
export declare function emitTypeTestsForModule(moduleName: string, outDir?: string): Promise<void>;
|
|
21
16
|
export interface GenerateRunOptions {
|
|
22
17
|
/**
|
|
23
18
|
* If true, do not write files; instead compare generated output to what's on disk.
|
package/dist/tywrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tywrap.d.ts","sourceRoot":"","sources":["../src/tywrap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,KAAK,EACV,aAAa,
|
|
1
|
+
{"version":3,"file":"tywrap.d.ts","sourceRoot":"","sources":["../src/tywrap.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,KAAK,EACV,aAAa,EASd,MAAM,kBAAkB,CAAC;AAe1B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;CACjC;AAED,wBAAsB,MAAM,CAAC,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAW1F;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AA4MD;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,EAC/B,UAAU,GAAE,kBAAuB,GAClC,OAAO,CAAC,cAAc,CAAC,CA6FzB"}
|
package/dist/tywrap.js
CHANGED
|
@@ -9,7 +9,7 @@ import { fsUtils, pathUtils, processUtils, isWindows } from './utils/runtime.js'
|
|
|
9
9
|
import { globalCache } from './utils/cache.js';
|
|
10
10
|
import { resolvePythonExecutable } from './utils/python.js';
|
|
11
11
|
import { computeIrCacheFilename } from './utils/ir-cache.js';
|
|
12
|
-
const TYWRAP_IR_VERSION = '0.
|
|
12
|
+
const TYWRAP_IR_VERSION = '0.3.0';
|
|
13
13
|
// Collect unknown typing constructs encountered during annotation parsing (per-generate run)
|
|
14
14
|
let unknownTypeNamesCollector = new Map();
|
|
15
15
|
function recordUnknown(name) {
|
|
@@ -26,26 +26,6 @@ export async function tywrap(options = {}) {
|
|
|
26
26
|
options,
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
export default tywrap;
|
|
30
|
-
/**
|
|
31
|
-
* Append minimal tsd tests for a generated module (optional dev aid)
|
|
32
|
-
*/
|
|
33
|
-
export async function emitTypeTestsForModule(moduleName, outDir = 'test-d/generated') {
|
|
34
|
-
const { writeFile, mkdir } = await import('fs/promises');
|
|
35
|
-
const { join } = await import('path');
|
|
36
|
-
try {
|
|
37
|
-
await mkdir(outDir, { recursive: true });
|
|
38
|
-
}
|
|
39
|
-
catch { }
|
|
40
|
-
const filePath = join(outDir, `${moduleName}.test-d.ts`);
|
|
41
|
-
const content = `import { expectType } from 'tsd';
|
|
42
|
-
import * as mod from '../../generated/${moduleName}.generated.ts';
|
|
43
|
-
|
|
44
|
-
// Opportunistic: ensure module namespace is an object
|
|
45
|
-
expectType<Record<string, unknown>>(mod);
|
|
46
|
-
`;
|
|
47
|
-
await writeFile(filePath, content, 'utf-8');
|
|
48
|
-
}
|
|
49
29
|
function normalizeForComparison(text) {
|
|
50
30
|
// Avoid false positives from CRLF vs LF (e.g. Windows checkouts)
|
|
51
31
|
return text.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
@@ -58,6 +38,157 @@ async function safeReadFile(path) {
|
|
|
58
38
|
return null;
|
|
59
39
|
}
|
|
60
40
|
}
|
|
41
|
+
const CACHE_DIR = '.tywrap/cache';
|
|
42
|
+
/**
|
|
43
|
+
* Resolve module IR via the Python extractor, consulting and (best-effort)
|
|
44
|
+
* populating the on-disk cache. Mirrors the original inline cache-then-fetch
|
|
45
|
+
* logic exactly: the cache is only read/written when caching is enabled, the
|
|
46
|
+
* filesystem is available, and we are not in check mode.
|
|
47
|
+
*/
|
|
48
|
+
async function fetchAndCacheIr(moduleKey, resolvedOptions, pythonPath, cacheKey, caching, checkMode) {
|
|
49
|
+
let ir = null;
|
|
50
|
+
let irError;
|
|
51
|
+
if (caching && fsUtils.isAvailable() && !checkMode) {
|
|
52
|
+
try {
|
|
53
|
+
const cached = await fsUtils.readFile(pathUtils.join(CACHE_DIR, cacheKey));
|
|
54
|
+
ir = JSON.parse(cached);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
ir = null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (!ir) {
|
|
61
|
+
const fetchResult = await fetchPythonIr(moduleKey, pythonPath, {
|
|
62
|
+
timeoutMs: resolvedOptions.runtime?.node?.timeout,
|
|
63
|
+
pythonImportPath: resolvedOptions.pythonImportPath,
|
|
64
|
+
});
|
|
65
|
+
ir = fetchResult.ir;
|
|
66
|
+
irError = fetchResult.error;
|
|
67
|
+
if (ir && caching && fsUtils.isAvailable() && !checkMode) {
|
|
68
|
+
try {
|
|
69
|
+
await fsUtils.writeFile(pathUtils.join(CACHE_DIR, cacheKey), JSON.stringify(ir));
|
|
70
|
+
}
|
|
71
|
+
catch { }
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return { ir, error: irError };
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Apply module-level export filtering (functions/classes + excludes) in place.
|
|
78
|
+
* Pushes any filtering warnings onto the provided `warnings` array. Behavior is
|
|
79
|
+
* identical to the original inline block.
|
|
80
|
+
*/
|
|
81
|
+
function filterModuleExports(moduleModel, moduleConfig, moduleKey, warnings) {
|
|
82
|
+
const builtInDefaultExcludes = new Set([
|
|
83
|
+
'dataclass',
|
|
84
|
+
'property',
|
|
85
|
+
'staticmethod',
|
|
86
|
+
'classmethod',
|
|
87
|
+
'abstractmethod',
|
|
88
|
+
'cached_property',
|
|
89
|
+
]);
|
|
90
|
+
const excludeExact = new Set((moduleConfig.exclude ?? []).map(String));
|
|
91
|
+
const excludeRegexes = [];
|
|
92
|
+
for (const pattern of moduleConfig.excludePatterns ?? []) {
|
|
93
|
+
try {
|
|
94
|
+
excludeRegexes.push(new RegExp(String(pattern)));
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
98
|
+
warnings.push(`Module ${moduleKey}: invalid excludePatterns regex "${String(pattern)}": ${message}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
const shouldExclude = (name, applyBuiltInDefaults) => {
|
|
102
|
+
if (excludeExact.has(name)) {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
if (excludeRegexes.some(r => r.test(name))) {
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
if (applyBuiltInDefaults && builtInDefaultExcludes.has(name)) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
return false;
|
|
112
|
+
};
|
|
113
|
+
if (Array.isArray(moduleConfig.functions)) {
|
|
114
|
+
const allow = new Set(moduleConfig.functions.map(String));
|
|
115
|
+
for (const requested of allow) {
|
|
116
|
+
if (!moduleModel.functions.some(f => f.name === requested)) {
|
|
117
|
+
warnings.push(`Module ${moduleKey}: configured function "${requested}" not found in IR`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
moduleModel.functions = moduleModel.functions.filter(f => allow.has(f.name) && !shouldExclude(f.name, false));
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
moduleModel.functions = moduleModel.functions.filter(f => !shouldExclude(f.name, true));
|
|
124
|
+
}
|
|
125
|
+
if (Array.isArray(moduleConfig.classes)) {
|
|
126
|
+
const allow = new Set(moduleConfig.classes.map(String));
|
|
127
|
+
for (const requested of allow) {
|
|
128
|
+
if (!moduleModel.classes.some(c => c.name === requested)) {
|
|
129
|
+
warnings.push(`Module ${moduleKey}: configured class "${requested}" not found in IR`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
moduleModel.classes = moduleModel.classes.filter(c => allow.has(c.name) && !shouldExclude(c.name, false));
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
moduleModel.classes = moduleModel.classes.filter(c => !shouldExclude(c.name, true));
|
|
136
|
+
}
|
|
137
|
+
moduleModel.typeAliases = (moduleModel.typeAliases ?? []).filter(alias => !shouldExclude(alias.name, false));
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Either compare the generated files against disk (check mode) or write them.
|
|
141
|
+
* Mutates `written`/`outOfDate` exactly as the original inline branches did.
|
|
142
|
+
*/
|
|
143
|
+
async function emitOrCompareFiles(filesToEmit, checkMode, written, outOfDate) {
|
|
144
|
+
if (checkMode) {
|
|
145
|
+
for (const file of filesToEmit) {
|
|
146
|
+
const existing = await safeReadFile(file.path);
|
|
147
|
+
if (existing === null) {
|
|
148
|
+
outOfDate.push(file.path);
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
if (normalizeForComparison(existing) !== normalizeForComparison(file.content)) {
|
|
152
|
+
outOfDate.push(file.path);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
for (const file of filesToEmit) {
|
|
158
|
+
await fsUtils.writeFile(file.path, file.content);
|
|
159
|
+
written.push(file.path);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Emit the best-effort warning summary of unknown typing constructs collected
|
|
165
|
+
* for the current module, and (outside check mode) write the JSON report.
|
|
166
|
+
*/
|
|
167
|
+
async function reportUnknownTypes(baseName, unknownTypeNames, checkMode, warnings) {
|
|
168
|
+
if (unknownTypeNames.size === 0) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const entries = Array.from(unknownTypeNames.entries()).sort((a, b) => b[1] - a[1]);
|
|
172
|
+
const unkList = entries
|
|
173
|
+
.slice(0, 25)
|
|
174
|
+
.map(([n, c]) => `${n}:${c}`)
|
|
175
|
+
.join(', ');
|
|
176
|
+
warnings.push(`Module ${baseName}: unknown typing constructs encountered: ${unkList}${entries.length > 25 ? '…' : ''}`);
|
|
177
|
+
// Write JSON report
|
|
178
|
+
if (!checkMode) {
|
|
179
|
+
try {
|
|
180
|
+
const reportsDir = pathUtils.join('.tywrap', 'reports');
|
|
181
|
+
await fsUtils.writeFile(pathUtils.join(reportsDir, `${baseName}.json`), JSON.stringify({
|
|
182
|
+
module: baseName,
|
|
183
|
+
unknowns: Object.fromEntries(entries),
|
|
184
|
+
generatedAt: new Date().toISOString(),
|
|
185
|
+
}));
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
// ignore
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
61
192
|
/**
|
|
62
193
|
* Generate TypeScript wrappers for configured Python modules.
|
|
63
194
|
* Minimal MVP implementation: resolves module file, analyzes, generates TS, writes to output.dir
|
|
@@ -72,7 +203,6 @@ export async function generate(options, runOptions = {}) {
|
|
|
72
203
|
const failures = [];
|
|
73
204
|
const outputDir = resolvedOptions.output.dir;
|
|
74
205
|
const caching = resolvedOptions.performance.caching;
|
|
75
|
-
const cacheDir = '.tywrap/cache';
|
|
76
206
|
const pythonPath = await resolvePythonExecutable({
|
|
77
207
|
pythonPath: resolvedOptions.runtime?.node?.pythonPath,
|
|
78
208
|
virtualEnv: resolvedOptions.runtime?.node?.virtualEnv,
|
|
@@ -95,31 +225,7 @@ export async function generate(options, runOptions = {}) {
|
|
|
95
225
|
unknownTypeNamesCollector = new Map();
|
|
96
226
|
// Resolve module IR via the Python extractor (with optional cache)
|
|
97
227
|
const cacheKey = await computeCacheKey(moduleKey, resolvedOptions);
|
|
98
|
-
|
|
99
|
-
let irError;
|
|
100
|
-
if (caching && fsUtils.isAvailable() && !checkMode) {
|
|
101
|
-
try {
|
|
102
|
-
const cached = await fsUtils.readFile(pathUtils.join(cacheDir, cacheKey));
|
|
103
|
-
ir = JSON.parse(cached);
|
|
104
|
-
}
|
|
105
|
-
catch {
|
|
106
|
-
ir = null;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
if (!ir) {
|
|
110
|
-
const fetchResult = await fetchPythonIr(moduleKey, pythonPath, {
|
|
111
|
-
timeoutMs: resolvedOptions.runtime?.node?.timeout,
|
|
112
|
-
pythonImportPath: resolvedOptions.pythonImportPath,
|
|
113
|
-
});
|
|
114
|
-
ir = fetchResult.ir;
|
|
115
|
-
irError = fetchResult.error;
|
|
116
|
-
if (ir && caching && fsUtils.isAvailable() && !checkMode) {
|
|
117
|
-
try {
|
|
118
|
-
await fsUtils.writeFile(pathUtils.join(cacheDir, cacheKey), JSON.stringify(ir));
|
|
119
|
-
}
|
|
120
|
-
catch { }
|
|
121
|
-
}
|
|
122
|
-
}
|
|
228
|
+
const { ir, error: irError } = await fetchAndCacheIr(moduleKey, resolvedOptions, pythonPath, cacheKey, caching, checkMode);
|
|
123
229
|
if (!ir) {
|
|
124
230
|
const message = `No IR produced for module ${moduleKey}${irError ? `: ${irError}` : ''}`;
|
|
125
231
|
warnings.push(message);
|
|
@@ -132,64 +238,7 @@ export async function generate(options, runOptions = {}) {
|
|
|
132
238
|
}
|
|
133
239
|
const moduleModel = transformIrToTsModel(ir);
|
|
134
240
|
// Apply module-level export filtering (functions/classes + excludes).
|
|
135
|
-
|
|
136
|
-
const builtInDefaultExcludes = new Set([
|
|
137
|
-
'dataclass',
|
|
138
|
-
'property',
|
|
139
|
-
'staticmethod',
|
|
140
|
-
'classmethod',
|
|
141
|
-
'abstractmethod',
|
|
142
|
-
'cached_property',
|
|
143
|
-
]);
|
|
144
|
-
const excludeExact = new Set((moduleConfig.exclude ?? []).map(String));
|
|
145
|
-
const excludeRegexes = [];
|
|
146
|
-
for (const pattern of moduleConfig.excludePatterns ?? []) {
|
|
147
|
-
try {
|
|
148
|
-
excludeRegexes.push(new RegExp(String(pattern)));
|
|
149
|
-
}
|
|
150
|
-
catch (err) {
|
|
151
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
152
|
-
warnings.push(`Module ${moduleKey}: invalid excludePatterns regex "${String(pattern)}": ${message}`);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
const shouldExclude = (name, applyBuiltInDefaults) => {
|
|
156
|
-
if (excludeExact.has(name)) {
|
|
157
|
-
return true;
|
|
158
|
-
}
|
|
159
|
-
if (excludeRegexes.some(r => r.test(name))) {
|
|
160
|
-
return true;
|
|
161
|
-
}
|
|
162
|
-
if (applyBuiltInDefaults && builtInDefaultExcludes.has(name)) {
|
|
163
|
-
return true;
|
|
164
|
-
}
|
|
165
|
-
return false;
|
|
166
|
-
};
|
|
167
|
-
if (Array.isArray(moduleConfig.functions)) {
|
|
168
|
-
const allow = new Set(moduleConfig.functions.map(String));
|
|
169
|
-
for (const requested of allow) {
|
|
170
|
-
if (!moduleModel.functions.some(f => f.name === requested)) {
|
|
171
|
-
warnings.push(`Module ${moduleKey}: configured function "${requested}" not found in IR`);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
moduleModel.functions = moduleModel.functions.filter(f => allow.has(f.name) && !shouldExclude(f.name, false));
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
moduleModel.functions = moduleModel.functions.filter(f => !shouldExclude(f.name, true));
|
|
178
|
-
}
|
|
179
|
-
if (Array.isArray(moduleConfig.classes)) {
|
|
180
|
-
const allow = new Set(moduleConfig.classes.map(String));
|
|
181
|
-
for (const requested of allow) {
|
|
182
|
-
if (!moduleModel.classes.some(c => c.name === requested)) {
|
|
183
|
-
warnings.push(`Module ${moduleKey}: configured class "${requested}" not found in IR`);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
moduleModel.classes = moduleModel.classes.filter(c => allow.has(c.name) && !shouldExclude(c.name, false));
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
moduleModel.classes = moduleModel.classes.filter(c => !shouldExclude(c.name, true));
|
|
190
|
-
}
|
|
191
|
-
moduleModel.typeAliases = (moduleModel.typeAliases ?? []).filter(alias => !shouldExclude(alias.name, false));
|
|
192
|
-
}
|
|
241
|
+
filterModuleExports(moduleModel, moduleConfig, moduleKey, warnings);
|
|
193
242
|
// Generate module code
|
|
194
243
|
const annotatedJSDoc = Boolean(resolvedOptions.output?.annotatedJSDoc);
|
|
195
244
|
const gen = instance.generator.generateModuleDefinition(moduleModel, annotatedJSDoc);
|
|
@@ -211,53 +260,40 @@ export async function generate(options, runOptions = {}) {
|
|
|
211
260
|
content: renderSourceMapPlaceholder(moduleModel.name),
|
|
212
261
|
});
|
|
213
262
|
}
|
|
214
|
-
|
|
215
|
-
for (const file of filesToEmit) {
|
|
216
|
-
const existing = await safeReadFile(file.path);
|
|
217
|
-
if (existing === null) {
|
|
218
|
-
outOfDate.push(file.path);
|
|
219
|
-
continue;
|
|
220
|
-
}
|
|
221
|
-
if (normalizeForComparison(existing) !== normalizeForComparison(file.content)) {
|
|
222
|
-
outOfDate.push(file.path);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
else {
|
|
227
|
-
for (const file of filesToEmit) {
|
|
228
|
-
await fsUtils.writeFile(file.path, file.content);
|
|
229
|
-
written.push(file.path);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
263
|
+
await emitOrCompareFiles(filesToEmit, checkMode, written, outOfDate);
|
|
232
264
|
// Emit warning summary of unknown typing constructs (best-effort)
|
|
233
|
-
|
|
234
|
-
const entries = Array.from(unknownTypeNamesCollector.entries()).sort((a, b) => b[1] - a[1]);
|
|
235
|
-
const unkList = entries
|
|
236
|
-
.slice(0, 25)
|
|
237
|
-
.map(([n, c]) => `${n}:${c}`)
|
|
238
|
-
.join(', ');
|
|
239
|
-
warnings.push(`Module ${baseName}: unknown typing constructs encountered: ${unkList}${entries.length > 25 ? '…' : ''}`);
|
|
240
|
-
// Write JSON report
|
|
241
|
-
if (!checkMode) {
|
|
242
|
-
try {
|
|
243
|
-
const reportsDir = pathUtils.join('.tywrap', 'reports');
|
|
244
|
-
await fsUtils.writeFile(pathUtils.join(reportsDir, `${baseName}.json`), JSON.stringify({
|
|
245
|
-
module: baseName,
|
|
246
|
-
unknowns: Object.fromEntries(entries),
|
|
247
|
-
generatedAt: new Date().toISOString(),
|
|
248
|
-
}));
|
|
249
|
-
}
|
|
250
|
-
catch {
|
|
251
|
-
// ignore
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
}
|
|
265
|
+
await reportUnknownTypes(baseName, unknownTypeNamesCollector, checkMode, warnings);
|
|
255
266
|
}
|
|
256
267
|
if (checkMode) {
|
|
257
268
|
return { written: [], warnings, failures, outOfDate };
|
|
258
269
|
}
|
|
259
270
|
return { written, warnings, failures };
|
|
260
271
|
}
|
|
272
|
+
/**
|
|
273
|
+
* Run the IR extractor (`python <command...>`) and parse its JSON stdout.
|
|
274
|
+
*
|
|
275
|
+
* Returns the exec result alongside a parsed-IR outcome. On a zero exit code the
|
|
276
|
+
* stdout is JSON-parsed; on parse failure the supplied `parseErrorLabel` is used
|
|
277
|
+
* to build the error message. The caller is responsible for handling non-zero
|
|
278
|
+
* exit codes (e.g. the module-missing fallback), so a non-zero exit yields
|
|
279
|
+
* `ir: null` with no `error` set here.
|
|
280
|
+
*/
|
|
281
|
+
async function execAndParseIr(pythonPath, command, execOptions, parseErrorLabel) {
|
|
282
|
+
const result = await processUtils.exec(pythonPath, command, execOptions);
|
|
283
|
+
if (result.code !== 0) {
|
|
284
|
+
return { result, ir: null };
|
|
285
|
+
}
|
|
286
|
+
try {
|
|
287
|
+
return { result, ir: JSON.parse(result.stdout) };
|
|
288
|
+
}
|
|
289
|
+
catch {
|
|
290
|
+
return {
|
|
291
|
+
result,
|
|
292
|
+
ir: null,
|
|
293
|
+
error: `Failed to parse ${parseErrorLabel}. stderr: ${result.stderr.trim() || 'empty'}`,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
}
|
|
261
297
|
/**
|
|
262
298
|
* Invoke the Python IR CLI to get JSON IR for a module.
|
|
263
299
|
*/
|
|
@@ -274,20 +310,21 @@ async function fetchPythonIr(moduleName, pythonPath, options = {}) {
|
|
|
274
310
|
.filter(Boolean)
|
|
275
311
|
.join(delimiter);
|
|
276
312
|
const env = mergedPyPath ? { PYTHONPATH: mergedPyPath } : undefined;
|
|
313
|
+
const execOptions = { timeoutMs: options.timeoutMs, env };
|
|
277
314
|
try {
|
|
278
|
-
const
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
}
|
|
315
|
+
const primary = await execAndParseIr(pythonPath, [
|
|
316
|
+
'-m',
|
|
317
|
+
'tywrap_ir',
|
|
318
|
+
'--module',
|
|
319
|
+
moduleName,
|
|
320
|
+
'--ir-version',
|
|
321
|
+
TYWRAP_IR_VERSION,
|
|
322
|
+
'--no-pretty',
|
|
323
|
+
], execOptions, 'tywrap_ir output');
|
|
324
|
+
if (primary.result.code === 0) {
|
|
325
|
+
return { ir: primary.ir, error: primary.error };
|
|
289
326
|
}
|
|
290
|
-
const stderrText = result.stderr.trim();
|
|
327
|
+
const stderrText = primary.result.stderr.trim();
|
|
291
328
|
const isTywrapIrMissing = stderrText.includes('No module named') && stderrText.includes('tywrap_ir');
|
|
292
329
|
if (!isTywrapIrMissing) {
|
|
293
330
|
return { ir: null, error: `tywrap_ir failed. stderr: ${stderrText || 'empty'}` };
|
|
@@ -310,22 +347,14 @@ async function fetchPythonIr(moduleName, pythonPath, options = {}) {
|
|
|
310
347
|
error: `tywrap_ir not found on PYTHONPATH. stderr: ${stderrText || 'empty'}`,
|
|
311
348
|
};
|
|
312
349
|
}
|
|
313
|
-
const fallback = await
|
|
314
|
-
if (fallback.code !== 0) {
|
|
315
|
-
return {
|
|
316
|
-
ir: null,
|
|
317
|
-
error: `tywrap_ir failed. stderr: ${fallback.stderr.trim() || stderrText || 'empty'}`,
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
try {
|
|
321
|
-
return { ir: JSON.parse(fallback.stdout) };
|
|
322
|
-
}
|
|
323
|
-
catch {
|
|
350
|
+
const fallback = await execAndParseIr(pythonPath, [localMain, '--module', moduleName, '--ir-version', TYWRAP_IR_VERSION, '--no-pretty'], execOptions, 'tywrap_ir fallback output');
|
|
351
|
+
if (fallback.result.code !== 0) {
|
|
324
352
|
return {
|
|
325
353
|
ir: null,
|
|
326
|
-
error: `
|
|
354
|
+
error: `tywrap_ir failed. stderr: ${fallback.result.stderr.trim() || stderrText || 'empty'}`,
|
|
327
355
|
};
|
|
328
356
|
}
|
|
357
|
+
return { ir: fallback.ir, error: fallback.error };
|
|
329
358
|
}
|
|
330
359
|
catch (err) {
|
|
331
360
|
return { ir: null, error: err instanceof Error ? err.message : String(err) };
|
|
@@ -393,6 +422,7 @@ function transformIrToTsModel(ir) {
|
|
|
393
422
|
positionalOnly: p.kind === 'POSITIONAL_ONLY',
|
|
394
423
|
keywordOnly: p.kind === 'KEYWORD_ONLY',
|
|
395
424
|
});
|
|
425
|
+
const mapMethodKind = (value) => value === 'class' || value === 'static' ? value : 'instance';
|
|
396
426
|
const mapFunc = (f, inheritedTypeParameters = []) => {
|
|
397
427
|
const localTypeParameters = mapTypeParameters(f);
|
|
398
428
|
const annotationTypeParameters = [...inheritedTypeParameters, ...localTypeParameters];
|
|
@@ -415,6 +445,7 @@ function transformIrToTsModel(ir) {
|
|
|
415
445
|
parameters: Array.isArray(f.parameters)
|
|
416
446
|
? f.parameters.map(v => mapParam((v ?? {}), annotationTypeParameters))
|
|
417
447
|
: [],
|
|
448
|
+
methodKind: mapMethodKind(f.method_kind),
|
|
418
449
|
};
|
|
419
450
|
};
|
|
420
451
|
const mapClass = (c) => {
|
|
@@ -438,6 +469,18 @@ function transformIrToTsModel(ir) {
|
|
|
438
469
|
};
|
|
439
470
|
})
|
|
440
471
|
: [],
|
|
472
|
+
accessors: Array.isArray(c.accessors)
|
|
473
|
+
? c.accessors.map(v => {
|
|
474
|
+
const a = (v ?? {});
|
|
475
|
+
return {
|
|
476
|
+
name: String(a.name ?? ''),
|
|
477
|
+
type: parseType(a.returns, classTypeParameters),
|
|
478
|
+
docstring: a.docstring ?? undefined,
|
|
479
|
+
readOnly: typeof a.read_only === 'boolean' ? a.read_only : undefined,
|
|
480
|
+
isCached: Boolean(a.is_cached),
|
|
481
|
+
};
|
|
482
|
+
})
|
|
483
|
+
: [],
|
|
441
484
|
docstring: c.docstring ?? undefined,
|
|
442
485
|
decorators: c.typed_dict ? ['__typed_dict__'] : [],
|
|
443
486
|
kind: c.typed_dict
|