tywrap 0.6.1 → 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/generator.d.ts.map +1 -1
- package/dist/core/generator.js +40 -9
- package/dist/core/generator.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/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 +14 -1
- package/dist/runtime/rpc-client.d.ts.map +1 -1
- package/dist/runtime/rpc-client.js +15 -0
- package/dist/runtime/rpc-client.js.map +1 -1
- package/dist/runtime/subprocess-transport.d.ts +10 -1
- package/dist/runtime/subprocess-transport.d.ts.map +1 -1
- package/dist/runtime/subprocess-transport.js +18 -0
- 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.map +1 -1
- package/dist/tywrap.js +212 -149
- package/dist/tywrap.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/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/generator.ts +50 -11
- package/src/runtime/base-bridge.ts +106 -0
- 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 +17 -0
- package/src/runtime/subprocess-transport.ts +20 -1
- package/src/runtime/transport.ts +71 -0
- package/src/types/index.ts +37 -0
- package/src/tywrap.ts +274 -163
- package/src/utils/codec.ts +61 -4
- package/src/version.ts +1 -1
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) {
|
|
@@ -38,6 +38,157 @@ async function safeReadFile(path) {
|
|
|
38
38
|
return null;
|
|
39
39
|
}
|
|
40
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
|
+
}
|
|
41
192
|
/**
|
|
42
193
|
* Generate TypeScript wrappers for configured Python modules.
|
|
43
194
|
* Minimal MVP implementation: resolves module file, analyzes, generates TS, writes to output.dir
|
|
@@ -52,7 +203,6 @@ export async function generate(options, runOptions = {}) {
|
|
|
52
203
|
const failures = [];
|
|
53
204
|
const outputDir = resolvedOptions.output.dir;
|
|
54
205
|
const caching = resolvedOptions.performance.caching;
|
|
55
|
-
const cacheDir = '.tywrap/cache';
|
|
56
206
|
const pythonPath = await resolvePythonExecutable({
|
|
57
207
|
pythonPath: resolvedOptions.runtime?.node?.pythonPath,
|
|
58
208
|
virtualEnv: resolvedOptions.runtime?.node?.virtualEnv,
|
|
@@ -75,31 +225,7 @@ export async function generate(options, runOptions = {}) {
|
|
|
75
225
|
unknownTypeNamesCollector = new Map();
|
|
76
226
|
// Resolve module IR via the Python extractor (with optional cache)
|
|
77
227
|
const cacheKey = await computeCacheKey(moduleKey, resolvedOptions);
|
|
78
|
-
|
|
79
|
-
let irError;
|
|
80
|
-
if (caching && fsUtils.isAvailable() && !checkMode) {
|
|
81
|
-
try {
|
|
82
|
-
const cached = await fsUtils.readFile(pathUtils.join(cacheDir, cacheKey));
|
|
83
|
-
ir = JSON.parse(cached);
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
ir = null;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (!ir) {
|
|
90
|
-
const fetchResult = await fetchPythonIr(moduleKey, pythonPath, {
|
|
91
|
-
timeoutMs: resolvedOptions.runtime?.node?.timeout,
|
|
92
|
-
pythonImportPath: resolvedOptions.pythonImportPath,
|
|
93
|
-
});
|
|
94
|
-
ir = fetchResult.ir;
|
|
95
|
-
irError = fetchResult.error;
|
|
96
|
-
if (ir && caching && fsUtils.isAvailable() && !checkMode) {
|
|
97
|
-
try {
|
|
98
|
-
await fsUtils.writeFile(pathUtils.join(cacheDir, cacheKey), JSON.stringify(ir));
|
|
99
|
-
}
|
|
100
|
-
catch { }
|
|
101
|
-
}
|
|
102
|
-
}
|
|
228
|
+
const { ir, error: irError } = await fetchAndCacheIr(moduleKey, resolvedOptions, pythonPath, cacheKey, caching, checkMode);
|
|
103
229
|
if (!ir) {
|
|
104
230
|
const message = `No IR produced for module ${moduleKey}${irError ? `: ${irError}` : ''}`;
|
|
105
231
|
warnings.push(message);
|
|
@@ -112,64 +238,7 @@ export async function generate(options, runOptions = {}) {
|
|
|
112
238
|
}
|
|
113
239
|
const moduleModel = transformIrToTsModel(ir);
|
|
114
240
|
// Apply module-level export filtering (functions/classes + excludes).
|
|
115
|
-
|
|
116
|
-
const builtInDefaultExcludes = new Set([
|
|
117
|
-
'dataclass',
|
|
118
|
-
'property',
|
|
119
|
-
'staticmethod',
|
|
120
|
-
'classmethod',
|
|
121
|
-
'abstractmethod',
|
|
122
|
-
'cached_property',
|
|
123
|
-
]);
|
|
124
|
-
const excludeExact = new Set((moduleConfig.exclude ?? []).map(String));
|
|
125
|
-
const excludeRegexes = [];
|
|
126
|
-
for (const pattern of moduleConfig.excludePatterns ?? []) {
|
|
127
|
-
try {
|
|
128
|
-
excludeRegexes.push(new RegExp(String(pattern)));
|
|
129
|
-
}
|
|
130
|
-
catch (err) {
|
|
131
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
132
|
-
warnings.push(`Module ${moduleKey}: invalid excludePatterns regex "${String(pattern)}": ${message}`);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
const shouldExclude = (name, applyBuiltInDefaults) => {
|
|
136
|
-
if (excludeExact.has(name)) {
|
|
137
|
-
return true;
|
|
138
|
-
}
|
|
139
|
-
if (excludeRegexes.some(r => r.test(name))) {
|
|
140
|
-
return true;
|
|
141
|
-
}
|
|
142
|
-
if (applyBuiltInDefaults && builtInDefaultExcludes.has(name)) {
|
|
143
|
-
return true;
|
|
144
|
-
}
|
|
145
|
-
return false;
|
|
146
|
-
};
|
|
147
|
-
if (Array.isArray(moduleConfig.functions)) {
|
|
148
|
-
const allow = new Set(moduleConfig.functions.map(String));
|
|
149
|
-
for (const requested of allow) {
|
|
150
|
-
if (!moduleModel.functions.some(f => f.name === requested)) {
|
|
151
|
-
warnings.push(`Module ${moduleKey}: configured function "${requested}" not found in IR`);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
moduleModel.functions = moduleModel.functions.filter(f => allow.has(f.name) && !shouldExclude(f.name, false));
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
moduleModel.functions = moduleModel.functions.filter(f => !shouldExclude(f.name, true));
|
|
158
|
-
}
|
|
159
|
-
if (Array.isArray(moduleConfig.classes)) {
|
|
160
|
-
const allow = new Set(moduleConfig.classes.map(String));
|
|
161
|
-
for (const requested of allow) {
|
|
162
|
-
if (!moduleModel.classes.some(c => c.name === requested)) {
|
|
163
|
-
warnings.push(`Module ${moduleKey}: configured class "${requested}" not found in IR`);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
moduleModel.classes = moduleModel.classes.filter(c => allow.has(c.name) && !shouldExclude(c.name, false));
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
moduleModel.classes = moduleModel.classes.filter(c => !shouldExclude(c.name, true));
|
|
170
|
-
}
|
|
171
|
-
moduleModel.typeAliases = (moduleModel.typeAliases ?? []).filter(alias => !shouldExclude(alias.name, false));
|
|
172
|
-
}
|
|
241
|
+
filterModuleExports(moduleModel, moduleConfig, moduleKey, warnings);
|
|
173
242
|
// Generate module code
|
|
174
243
|
const annotatedJSDoc = Boolean(resolvedOptions.output?.annotatedJSDoc);
|
|
175
244
|
const gen = instance.generator.generateModuleDefinition(moduleModel, annotatedJSDoc);
|
|
@@ -191,53 +260,40 @@ export async function generate(options, runOptions = {}) {
|
|
|
191
260
|
content: renderSourceMapPlaceholder(moduleModel.name),
|
|
192
261
|
});
|
|
193
262
|
}
|
|
194
|
-
|
|
195
|
-
for (const file of filesToEmit) {
|
|
196
|
-
const existing = await safeReadFile(file.path);
|
|
197
|
-
if (existing === null) {
|
|
198
|
-
outOfDate.push(file.path);
|
|
199
|
-
continue;
|
|
200
|
-
}
|
|
201
|
-
if (normalizeForComparison(existing) !== normalizeForComparison(file.content)) {
|
|
202
|
-
outOfDate.push(file.path);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
for (const file of filesToEmit) {
|
|
208
|
-
await fsUtils.writeFile(file.path, file.content);
|
|
209
|
-
written.push(file.path);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
263
|
+
await emitOrCompareFiles(filesToEmit, checkMode, written, outOfDate);
|
|
212
264
|
// Emit warning summary of unknown typing constructs (best-effort)
|
|
213
|
-
|
|
214
|
-
const entries = Array.from(unknownTypeNamesCollector.entries()).sort((a, b) => b[1] - a[1]);
|
|
215
|
-
const unkList = entries
|
|
216
|
-
.slice(0, 25)
|
|
217
|
-
.map(([n, c]) => `${n}:${c}`)
|
|
218
|
-
.join(', ');
|
|
219
|
-
warnings.push(`Module ${baseName}: unknown typing constructs encountered: ${unkList}${entries.length > 25 ? '…' : ''}`);
|
|
220
|
-
// Write JSON report
|
|
221
|
-
if (!checkMode) {
|
|
222
|
-
try {
|
|
223
|
-
const reportsDir = pathUtils.join('.tywrap', 'reports');
|
|
224
|
-
await fsUtils.writeFile(pathUtils.join(reportsDir, `${baseName}.json`), JSON.stringify({
|
|
225
|
-
module: baseName,
|
|
226
|
-
unknowns: Object.fromEntries(entries),
|
|
227
|
-
generatedAt: new Date().toISOString(),
|
|
228
|
-
}));
|
|
229
|
-
}
|
|
230
|
-
catch {
|
|
231
|
-
// ignore
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
265
|
+
await reportUnknownTypes(baseName, unknownTypeNamesCollector, checkMode, warnings);
|
|
235
266
|
}
|
|
236
267
|
if (checkMode) {
|
|
237
268
|
return { written: [], warnings, failures, outOfDate };
|
|
238
269
|
}
|
|
239
270
|
return { written, warnings, failures };
|
|
240
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
|
+
}
|
|
241
297
|
/**
|
|
242
298
|
* Invoke the Python IR CLI to get JSON IR for a module.
|
|
243
299
|
*/
|
|
@@ -254,20 +310,21 @@ async function fetchPythonIr(moduleName, pythonPath, options = {}) {
|
|
|
254
310
|
.filter(Boolean)
|
|
255
311
|
.join(delimiter);
|
|
256
312
|
const env = mergedPyPath ? { PYTHONPATH: mergedPyPath } : undefined;
|
|
313
|
+
const execOptions = { timeoutMs: options.timeoutMs, env };
|
|
257
314
|
try {
|
|
258
|
-
const
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
}
|
|
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 };
|
|
269
326
|
}
|
|
270
|
-
const stderrText = result.stderr.trim();
|
|
327
|
+
const stderrText = primary.result.stderr.trim();
|
|
271
328
|
const isTywrapIrMissing = stderrText.includes('No module named') && stderrText.includes('tywrap_ir');
|
|
272
329
|
if (!isTywrapIrMissing) {
|
|
273
330
|
return { ir: null, error: `tywrap_ir failed. stderr: ${stderrText || 'empty'}` };
|
|
@@ -290,22 +347,14 @@ async function fetchPythonIr(moduleName, pythonPath, options = {}) {
|
|
|
290
347
|
error: `tywrap_ir not found on PYTHONPATH. stderr: ${stderrText || 'empty'}`,
|
|
291
348
|
};
|
|
292
349
|
}
|
|
293
|
-
const fallback = await
|
|
294
|
-
if (fallback.code !== 0) {
|
|
295
|
-
return {
|
|
296
|
-
ir: null,
|
|
297
|
-
error: `tywrap_ir failed. stderr: ${fallback.stderr.trim() || stderrText || 'empty'}`,
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
try {
|
|
301
|
-
return { ir: JSON.parse(fallback.stdout) };
|
|
302
|
-
}
|
|
303
|
-
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) {
|
|
304
352
|
return {
|
|
305
353
|
ir: null,
|
|
306
|
-
error: `
|
|
354
|
+
error: `tywrap_ir failed. stderr: ${fallback.result.stderr.trim() || stderrText || 'empty'}`,
|
|
307
355
|
};
|
|
308
356
|
}
|
|
357
|
+
return { ir: fallback.ir, error: fallback.error };
|
|
309
358
|
}
|
|
310
359
|
catch (err) {
|
|
311
360
|
return { ir: null, error: err instanceof Error ? err.message : String(err) };
|
|
@@ -373,6 +422,7 @@ function transformIrToTsModel(ir) {
|
|
|
373
422
|
positionalOnly: p.kind === 'POSITIONAL_ONLY',
|
|
374
423
|
keywordOnly: p.kind === 'KEYWORD_ONLY',
|
|
375
424
|
});
|
|
425
|
+
const mapMethodKind = (value) => value === 'class' || value === 'static' ? value : 'instance';
|
|
376
426
|
const mapFunc = (f, inheritedTypeParameters = []) => {
|
|
377
427
|
const localTypeParameters = mapTypeParameters(f);
|
|
378
428
|
const annotationTypeParameters = [...inheritedTypeParameters, ...localTypeParameters];
|
|
@@ -395,6 +445,7 @@ function transformIrToTsModel(ir) {
|
|
|
395
445
|
parameters: Array.isArray(f.parameters)
|
|
396
446
|
? f.parameters.map(v => mapParam((v ?? {}), annotationTypeParameters))
|
|
397
447
|
: [],
|
|
448
|
+
methodKind: mapMethodKind(f.method_kind),
|
|
398
449
|
};
|
|
399
450
|
};
|
|
400
451
|
const mapClass = (c) => {
|
|
@@ -418,6 +469,18 @@ function transformIrToTsModel(ir) {
|
|
|
418
469
|
};
|
|
419
470
|
})
|
|
420
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
|
+
: [],
|
|
421
484
|
docstring: c.docstring ?? undefined,
|
|
422
485
|
decorators: c.typed_dict ? ['__typed_dict__'] : [],
|
|
423
486
|
kind: c.typed_dict
|
package/dist/tywrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tywrap.js","sourceRoot":"","sources":["../src/tywrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tywrap.js","sourceRoot":"","sources":["../src/tywrap.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/codec.d.ts
CHANGED
|
@@ -88,6 +88,8 @@ export type ValueEnvelope = {
|
|
|
88
88
|
readonly params: Record<string, unknown>;
|
|
89
89
|
};
|
|
90
90
|
export type DecodedValue = ArrowTable | Uint8Array | SparseMatrix | TorchTensor | SklearnEstimator | unknown;
|
|
91
|
+
/** @internal Test-only: override the loader used by lazy auto-registration. */
|
|
92
|
+
export declare const _setLazyArrowLoaderForTesting: (loader: ArrowModuleLoader | undefined) => void;
|
|
91
93
|
export declare function registerArrowDecoder(decoder: (bytes: Uint8Array) => ArrowTable | Uint8Array): void;
|
|
92
94
|
export declare function clearArrowDecoder(): void;
|
|
93
95
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/utils/codec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../../src/utils/codec.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/codec.js
CHANGED
|
@@ -9,11 +9,30 @@
|
|
|
9
9
|
* Sklearn estimators: { "__tywrap__": "sklearn.estimator", "encoding": "json", ... }
|
|
10
10
|
*/
|
|
11
11
|
let arrowTableFrom;
|
|
12
|
+
// Why: lazy auto-registration (on first Arrow decode) imports apache-arrow at most
|
|
13
|
+
// once per process. We cache the in-flight/settled attempt so concurrent decodes
|
|
14
|
+
// share a single dynamic import, and a missing module is not re-probed on every call.
|
|
15
|
+
let lazyRegistration;
|
|
16
|
+
// Why: the lazy decode path imports apache-arrow through the default Node loader, which
|
|
17
|
+
// is hard to simulate-as-absent in a test env where the dependency IS installed. This
|
|
18
|
+
// internal seam lets the unit suite exercise the "apache-arrow missing" clear-failure
|
|
19
|
+
// branch deterministically. It is intentionally NOT re-exported from the package root
|
|
20
|
+
// (see test/api_surface.test.ts) and is reset by clearArrowDecoder().
|
|
21
|
+
let lazyArrowLoaderOverride;
|
|
22
|
+
/** @internal Test-only: override the loader used by lazy auto-registration. */
|
|
23
|
+
export const _setLazyArrowLoaderForTesting = (loader) => {
|
|
24
|
+
lazyArrowLoaderOverride = loader;
|
|
25
|
+
lazyRegistration = undefined;
|
|
26
|
+
};
|
|
12
27
|
export function registerArrowDecoder(decoder) {
|
|
13
28
|
arrowTableFrom = decoder;
|
|
14
29
|
}
|
|
15
30
|
export function clearArrowDecoder() {
|
|
16
31
|
arrowTableFrom = undefined;
|
|
32
|
+
// Why: reset the cached import attempt so tests (and reload helpers) can exercise
|
|
33
|
+
// the auto-registration path again from a clean slate.
|
|
34
|
+
lazyRegistration = undefined;
|
|
35
|
+
lazyArrowLoaderOverride = undefined;
|
|
17
36
|
}
|
|
18
37
|
/**
|
|
19
38
|
* Whether an Arrow decoder has been registered for this process.
|
|
@@ -71,6 +90,12 @@ export async function autoRegisterArrowDecoder(options = {}) {
|
|
|
71
90
|
}
|
|
72
91
|
try {
|
|
73
92
|
const arrowModule = await loader();
|
|
93
|
+
// Another path may have registered a decoder while the import was in flight
|
|
94
|
+
// (e.g. an explicit registerArrowDecoder() during concurrent startup/reload).
|
|
95
|
+
// Don't clobber it — the explicit registration wins.
|
|
96
|
+
if (hasArrowDecoder()) {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
74
99
|
registerArrowDecoderFromModule(arrowModule);
|
|
75
100
|
return true;
|
|
76
101
|
}
|
|
@@ -96,14 +121,40 @@ function fromBase64(b64) {
|
|
|
96
121
|
}
|
|
97
122
|
throw new Error('Base64 decoding is not available in this runtime');
|
|
98
123
|
}
|
|
124
|
+
// Why: a single, actionable message for both decode paths so users always know the two
|
|
125
|
+
// supported remedies — install the optional dependency, or opt into the lossy JSON fallback.
|
|
126
|
+
const ARROW_MISSING_MESSAGE = 'Received an Arrow-encoded payload but no Arrow decoder is available. ' +
|
|
127
|
+
'Install the optional dependency with `npm install apache-arrow`, or set ' +
|
|
128
|
+
'TYWRAP_CODEC_FALLBACK=json on the Python side to receive JSON instead ' +
|
|
129
|
+
'(lossy for dtype/NA fidelity). tywrap never silently downgrades Arrow payloads.';
|
|
99
130
|
function requireArrowDecoder() {
|
|
100
131
|
if (!arrowTableFrom) {
|
|
101
|
-
throw new Error(
|
|
132
|
+
throw new Error(ARROW_MISSING_MESSAGE);
|
|
133
|
+
}
|
|
134
|
+
return arrowTableFrom;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Ensure an Arrow decoder is registered, lazily importing apache-arrow on first use.
|
|
138
|
+
*
|
|
139
|
+
* Why: keep apache-arrow optional and zero-config. The first Arrow-encoded payload
|
|
140
|
+
* triggers a single best-effort dynamic import; if it succeeds the decoder is cached
|
|
141
|
+
* for the rest of the process. If apache-arrow is absent we throw a clear, actionable
|
|
142
|
+
* error rather than silently producing wrong data.
|
|
143
|
+
*/
|
|
144
|
+
async function ensureArrowDecoder() {
|
|
145
|
+
if (arrowTableFrom) {
|
|
146
|
+
return arrowTableFrom;
|
|
147
|
+
}
|
|
148
|
+
// Reuse a single import attempt across concurrent decodes.
|
|
149
|
+
lazyRegistration ??= autoRegisterArrowDecoder(lazyArrowLoaderOverride ? { loader: lazyArrowLoaderOverride } : {});
|
|
150
|
+
await lazyRegistration;
|
|
151
|
+
if (!arrowTableFrom) {
|
|
152
|
+
throw new Error(ARROW_MISSING_MESSAGE);
|
|
102
153
|
}
|
|
103
154
|
return arrowTableFrom;
|
|
104
155
|
}
|
|
105
156
|
async function tryDecodeArrowTable(bytes) {
|
|
106
|
-
const decoder =
|
|
157
|
+
const decoder = await ensureArrowDecoder();
|
|
107
158
|
try {
|
|
108
159
|
return decoder(bytes);
|
|
109
160
|
}
|