tywrap 0.6.1 → 0.8.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/README.md +15 -5
- package/dist/core/annotation-parser.d.ts.map +1 -1
- package/dist/core/annotation-parser.js.map +1 -1
- package/dist/core/emit-call.d.ts.map +1 -1
- package/dist/core/emit-call.js +1 -1
- package/dist/core/emit-call.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/dev.d.ts.map +1 -1
- package/dist/dev.js +1 -3
- package/dist/dev.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.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/frame-codec.d.ts +111 -0
- package/dist/runtime/frame-codec.d.ts.map +1 -0
- package/dist/runtime/frame-codec.js +352 -0
- package/dist/runtime/frame-codec.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 +2 -2
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/node.d.ts +25 -19
- package/dist/runtime/node.d.ts.map +1 -1
- package/dist/runtime/node.js +19 -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 +68 -6
- package/dist/runtime/rpc-client.js.map +1 -1
- package/dist/runtime/subprocess-transport.d.ts +177 -3
- package/dist/runtime/subprocess-transport.d.ts.map +1 -1
- package/dist/runtime/subprocess-transport.js +526 -26
- package/dist/runtime/subprocess-transport.js.map +1 -1
- package/dist/runtime/transport.d.ts +141 -0
- package/dist/runtime/transport.d.ts.map +1 -1
- package/dist/runtime/transport.js +21 -0
- package/dist/runtime/transport.js.map +1 -1
- package/dist/types/index.d.ts +59 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/tywrap.d.ts.map +1 -1
- package/dist/tywrap.js +204 -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 +205 -6
- package/dist/utils/codec.js.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +7 -1
- package/runtime/__pycache__/_tywrap_conformance_chunking_fixtures.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_member_fixtures.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_w4_chunking_fixture.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_w5_request_chunking_fixture.cpython-311.pyc +0 -0
- package/runtime/__pycache__/_tywrap_w6_pool_chunking_fixture.cpython-311.pyc +0 -0
- package/runtime/__pycache__/frame_codec.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/frame_codec.py +424 -0
- package/runtime/python_bridge.py +241 -42
- package/runtime/tywrap_bridge_core.py +152 -13
- package/src/core/annotation-parser.ts +2 -1
- package/src/core/emit-call.ts +1 -7
- package/src/core/generator.ts +50 -11
- package/src/dev.ts +1 -3
- package/src/index.ts +1 -0
- package/src/runtime/base-bridge.ts +106 -0
- package/src/runtime/frame-codec.ts +469 -0
- package/src/runtime/http-transport.ts +21 -1
- package/src/runtime/http.ts +7 -51
- package/src/runtime/index.ts +2 -6
- package/src/runtime/node.ts +42 -53
- 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 +91 -7
- package/src/runtime/subprocess-transport.ts +629 -30
- package/src/runtime/transport.ts +169 -0
- package/src/types/index.ts +62 -0
- package/src/tywrap.ts +265 -162
- package/src/utils/codec.ts +245 -7
- package/src/version.ts +1 -1
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* @see https://github.com/bbopen/tywrap/issues/149
|
|
15
15
|
*/
|
|
16
16
|
import { DisposableBase } from './bounded-context.js';
|
|
17
|
-
import { type Transport } from './transport.js';
|
|
17
|
+
import { type Transport, type TransportCapabilities } from './transport.js';
|
|
18
18
|
/**
|
|
19
19
|
* Options for configuring the PyodideTransport.
|
|
20
20
|
*/
|
|
@@ -102,6 +102,17 @@ export declare class PyodideTransport extends DisposableBase implements Transpor
|
|
|
102
102
|
* @throws BridgeExecutionError for Python execution errors
|
|
103
103
|
*/
|
|
104
104
|
send(message: string, timeoutMs: number, signal?: AbortSignal): Promise<string>;
|
|
105
|
+
/**
|
|
106
|
+
* Static capability descriptor for the Pyodide backend.
|
|
107
|
+
*
|
|
108
|
+
* The in-WASM server is JSON-only — pyarrow is unavailable in WASM, so the
|
|
109
|
+
* bootstrap forces JSON markers and reports `arrowAvailable: false`; hence
|
|
110
|
+
* `supportsArrow: false`. Binary still rides through base64 bytes envelopes.
|
|
111
|
+
* Chunking/streaming are not implemented (0.8.0). Calls are in-memory string
|
|
112
|
+
* passing with no framing, so there is no transport-level frame ceiling
|
|
113
|
+
* (`maxFrameBytes: Number.POSITIVE_INFINITY`).
|
|
114
|
+
*/
|
|
115
|
+
capabilities(): TransportCapabilities;
|
|
105
116
|
/**
|
|
106
117
|
* Resolve the loadPyodide function.
|
|
107
118
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pyodide-transport.d.ts","sourceRoot":"","sources":["../../src/runtime/pyodide-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAEL,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"pyodide-transport.d.ts","sourceRoot":"","sources":["../../src/runtime/pyodide-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,qBAAqB,EAG3B,MAAM,gBAAgB,CAAC;AAMxB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AA2DD,eAAO,MAAM,gBAAgB,QAiE5B,CAAC;AAMF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,gBAAiB,SAAQ,cAAe,YAAW,SAAS;IACvE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,EAAE,CAAC,CAAkB;IAE7B;;;;OAIG;gBACS,OAAO,GAAE,uBAA4B;IAUjD;;;;;;;;;;OAUG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBvC;;;;;OAKG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAiErF;;;;;;;;;OASG;IACH,YAAY,IAAI,qBAAqB;IAerC;;;;;OAKG;YACW,kBAAkB;IAqBhC;;OAEG;YACW,mBAAmB;IAOjC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CASvB"}
|
|
@@ -278,6 +278,26 @@ export class PyodideTransport extends DisposableBase {
|
|
|
278
278
|
}
|
|
279
279
|
}, { timeoutMs, signal });
|
|
280
280
|
}
|
|
281
|
+
/**
|
|
282
|
+
* Static capability descriptor for the Pyodide backend.
|
|
283
|
+
*
|
|
284
|
+
* The in-WASM server is JSON-only — pyarrow is unavailable in WASM, so the
|
|
285
|
+
* bootstrap forces JSON markers and reports `arrowAvailable: false`; hence
|
|
286
|
+
* `supportsArrow: false`. Binary still rides through base64 bytes envelopes.
|
|
287
|
+
* Chunking/streaming are not implemented (0.8.0). Calls are in-memory string
|
|
288
|
+
* passing with no framing, so there is no transport-level frame ceiling
|
|
289
|
+
* (`maxFrameBytes: Number.POSITIVE_INFINITY`).
|
|
290
|
+
*/
|
|
291
|
+
capabilities() {
|
|
292
|
+
return {
|
|
293
|
+
backend: 'pyodide',
|
|
294
|
+
supportsArrow: false,
|
|
295
|
+
supportsBinary: true,
|
|
296
|
+
supportsChunking: false,
|
|
297
|
+
supportsStreaming: false,
|
|
298
|
+
maxFrameBytes: Number.POSITIVE_INFINITY,
|
|
299
|
+
};
|
|
300
|
+
}
|
|
281
301
|
// ===========================================================================
|
|
282
302
|
// PRIVATE HELPERS
|
|
283
303
|
// ===========================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pyodide-transport.js","sourceRoot":"","sources":["../../src/runtime/pyodide-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EACL,WAAW,
|
|
1
|
+
{"version":3,"file":"pyodide-transport.js","sourceRoot":"","sources":["../../src/runtime/pyodide-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @see https://github.com/bbopen/tywrap/issues/149
|
|
9
9
|
*/
|
|
10
|
-
import
|
|
11
|
-
import {
|
|
12
|
-
import { type GetBridgeInfoOptions } from './rpc-client.js';
|
|
10
|
+
import { BasePythonBridge } from './base-bridge.js';
|
|
11
|
+
import { RpcClient } from './rpc-client.js';
|
|
13
12
|
import type { CodecOptions } from './bridge-codec.js';
|
|
14
13
|
/**
|
|
15
14
|
* Configuration options for PyodideBridge.
|
|
@@ -51,7 +50,7 @@ export interface PyodideBridgeOptions {
|
|
|
51
50
|
* await bridge.dispose();
|
|
52
51
|
* ```
|
|
53
52
|
*/
|
|
54
|
-
export declare class PyodideBridge extends
|
|
53
|
+
export declare class PyodideBridge extends BasePythonBridge {
|
|
55
54
|
private readonly rpc;
|
|
56
55
|
/**
|
|
57
56
|
* Create a new PyodideBridge instance.
|
|
@@ -65,15 +64,9 @@ export declare class PyodideBridge extends DisposableBase implements PythonRunti
|
|
|
65
64
|
* as a resource and disposed automatically by DisposableBase.
|
|
66
65
|
*/
|
|
67
66
|
protected doDispose(): Promise<void>;
|
|
68
|
-
call<T = unknown>(module: string, functionName: string, args: unknown[], kwargs?: Record<string, unknown>): Promise<T>;
|
|
69
|
-
instantiate<T = unknown>(module: string, className: string, args: unknown[], kwargs?: Record<string, unknown>): Promise<T>;
|
|
70
|
-
callMethod<T = unknown>(handle: string, methodName: string, args: unknown[], kwargs?: Record<string, unknown>): Promise<T>;
|
|
71
|
-
disposeInstance(handle: string): Promise<void>;
|
|
72
|
-
getBridgeInfo(options?: GetBridgeInfoOptions): Promise<BridgeInfo>;
|
|
73
67
|
/**
|
|
74
|
-
*
|
|
75
|
-
* auto-init that the bounded execute path provided pre-composition.
|
|
68
|
+
* Expose the held RpcClient to BasePythonBridge's shared delegating methods.
|
|
76
69
|
*/
|
|
77
|
-
|
|
70
|
+
protected getRpcClient(): RpcClient;
|
|
78
71
|
}
|
|
79
72
|
//# sourceMappingURL=pyodide.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pyodide.d.ts","sourceRoot":"","sources":["../../src/runtime/pyodide.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"pyodide.d.ts","sourceRoot":"","sources":["../../src/runtime/pyodide.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iDAAiD;IACjD,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,aAAc,SAAQ,gBAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAEhC;;;;OAIG;gBACS,OAAO,GAAE,oBAAyB;cAqB9B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvC;;;OAGG;cACa,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ1C;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,SAAS;CAGpC"}
|
package/dist/runtime/pyodide.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @see https://github.com/bbopen/tywrap/issues/149
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { BasePythonBridge } from './base-bridge.js';
|
|
11
11
|
import { RpcClient } from './rpc-client.js';
|
|
12
12
|
import { PyodideTransport } from './pyodide-transport.js';
|
|
13
13
|
// =============================================================================
|
|
@@ -40,7 +40,7 @@ import { PyodideTransport } from './pyodide-transport.js';
|
|
|
40
40
|
* await bridge.dispose();
|
|
41
41
|
* ```
|
|
42
42
|
*/
|
|
43
|
-
export class PyodideBridge extends
|
|
43
|
+
export class PyodideBridge extends BasePythonBridge {
|
|
44
44
|
rpc;
|
|
45
45
|
/**
|
|
46
46
|
* Create a new PyodideBridge instance.
|
|
@@ -76,36 +76,13 @@ export class PyodideBridge extends DisposableBase {
|
|
|
76
76
|
// Intentionally empty; tracked resources handle disposal.
|
|
77
77
|
}
|
|
78
78
|
// ===========================================================================
|
|
79
|
-
// RPC
|
|
79
|
+
// RPC DELEGATION (the held RpcClient; never PyodideTransport directly)
|
|
80
80
|
// ===========================================================================
|
|
81
|
-
async call(module, functionName, args, kwargs) {
|
|
82
|
-
await this.ensureReady();
|
|
83
|
-
return this.rpc.call(module, functionName, args, kwargs);
|
|
84
|
-
}
|
|
85
|
-
async instantiate(module, className, args, kwargs) {
|
|
86
|
-
await this.ensureReady();
|
|
87
|
-
return this.rpc.instantiate(module, className, args, kwargs);
|
|
88
|
-
}
|
|
89
|
-
async callMethod(handle, methodName, args, kwargs) {
|
|
90
|
-
await this.ensureReady();
|
|
91
|
-
return this.rpc.callMethod(handle, methodName, args, kwargs);
|
|
92
|
-
}
|
|
93
|
-
async disposeInstance(handle) {
|
|
94
|
-
await this.ensureReady();
|
|
95
|
-
return this.rpc.disposeInstance(handle);
|
|
96
|
-
}
|
|
97
|
-
async getBridgeInfo(options) {
|
|
98
|
-
await this.ensureReady();
|
|
99
|
-
return this.rpc.getBridgeInfo(options);
|
|
100
|
-
}
|
|
101
81
|
/**
|
|
102
|
-
*
|
|
103
|
-
* auto-init that the bounded execute path provided pre-composition.
|
|
82
|
+
* Expose the held RpcClient to BasePythonBridge's shared delegating methods.
|
|
104
83
|
*/
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
await this.init();
|
|
108
|
-
}
|
|
84
|
+
getRpcClient() {
|
|
85
|
+
return this.rpc;
|
|
109
86
|
}
|
|
110
87
|
}
|
|
111
88
|
//# sourceMappingURL=pyodide.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pyodide.js","sourceRoot":"","sources":["../../src/runtime/pyodide.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"pyodide.js","sourceRoot":"","sources":["../../src/runtime/pyodide.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAwB1D,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IAChC,GAAG,CAAY;IAEhC;;;;OAIG;IACH,YAAY,UAAgC,EAAE;QAC5C,KAAK,EAAE,CAAC;QAER,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC;YACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,GAAG,IAAI,SAAS,CAAC;YACvB,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,gBAAgB,EAAE,OAAO,CAAC,SAAS;SACpC,CAAC,CAAC;QACH,kDAAkD;QAClD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,8EAA8E;IAC9E,YAAY;IACZ,8EAA8E;IAEpE,KAAK,CAAC,MAAM;QACpB,2EAA2E;QAC3E,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,SAAS;QACvB,0DAA0D;IAC5D,CAAC;IAED,8EAA8E;IAC9E,uEAAuE;IACvE,8EAA8E;IAE9E;;OAEG;IACO,YAAY;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
import type { BridgeInfo } from '../types/index.js';
|
|
21
21
|
import { DisposableBase, type ExecuteOptions } from './bounded-context.js';
|
|
22
22
|
import { BridgeCodec, type CodecOptions } from './bridge-codec.js';
|
|
23
|
-
import { type Transport, type ProtocolMessage } from './transport.js';
|
|
23
|
+
import { type Transport, type TransportCapabilities, type ProtocolMessage } from './transport.js';
|
|
24
24
|
export interface GetBridgeInfoOptions {
|
|
25
25
|
/**
|
|
26
26
|
* If true, bypasses the cached info and queries the bridge again.
|
|
@@ -211,5 +211,18 @@ export declare class RpcClient extends DisposableBase {
|
|
|
211
211
|
* (including optional codec availability and current instance count).
|
|
212
212
|
*/
|
|
213
213
|
getBridgeInfo(options?: GetBridgeInfoOptions): Promise<BridgeInfo>;
|
|
214
|
+
/**
|
|
215
|
+
* Report the underlying transport's static capability descriptor.
|
|
216
|
+
*
|
|
217
|
+
* This returns the transport-level flags (Arrow/binary carriage, framing,
|
|
218
|
+
* chunking/streaming, max frame size) WITHOUT any network round-trip — the
|
|
219
|
+
* descriptor is authoritative for what the wire channel can do. It is
|
|
220
|
+
* deliberately distinct from {@link getBridgeInfo}, which reports the *Python
|
|
221
|
+
* environment* (which optional libraries are importable). Callers that need
|
|
222
|
+
* both — "can this transport carry Arrow AND does this Python have pyarrow?" —
|
|
223
|
+
* should consult both: the transport descriptor for the channel, the bridge
|
|
224
|
+
* info for library availability.
|
|
225
|
+
*/
|
|
226
|
+
capabilities(): TransportCapabilities;
|
|
214
227
|
}
|
|
215
228
|
//# sourceMappingURL=rpc-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-client.d.ts","sourceRoot":"","sources":["../../src/runtime/rpc-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"rpc-client.d.ts","sourceRoot":"","sources":["../../src/runtime/rpc-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,8 @@ function validateBridgeInfoPayload(value) {
|
|
|
26
26
|
const kind = value === null ? 'null' : Array.isArray(value) ? 'array' : typeof value;
|
|
27
27
|
throw new BridgeProtocolError(`Invalid bridge info payload: expected object, got ${kind}`);
|
|
28
28
|
}
|
|
29
|
+
/** Honest set of backend identities a `meta` payload may report. */
|
|
30
|
+
const KNOWN_BRIDGES = ['python-subprocess', 'pyodide', 'http'];
|
|
29
31
|
const formatValue = (val) => {
|
|
30
32
|
try {
|
|
31
33
|
const serialized = JSON.stringify(val);
|
|
@@ -44,17 +46,25 @@ function validateBridgeInfoPayload(value) {
|
|
|
44
46
|
if (protocolVersion !== TYWRAP_PROTOCOL_VERSION) {
|
|
45
47
|
throw new BridgeProtocolError(`Invalid bridge info payload: protocolVersion expected ${TYWRAP_PROTOCOL_VERSION}, got ${formatValue(protocolVersion)}`);
|
|
46
48
|
}
|
|
49
|
+
// Accept the honest BridgeBackend union (subprocess/pyodide/http). All
|
|
50
|
+
// backends speak the identical "tywrap/1" protocol; relaxing this from the
|
|
51
|
+
// old hardcoded 'python-subprocess' lets the Pyodide/HTTP facades route
|
|
52
|
+
// getBridgeInfo() through this same validator without being rejected.
|
|
47
53
|
const bridge = obj.bridge;
|
|
48
|
-
if (bridge !== '
|
|
49
|
-
throw new BridgeProtocolError(`Invalid bridge info payload: bridge expected "
|
|
54
|
+
if (typeof bridge !== 'string' || !KNOWN_BRIDGES.includes(bridge)) {
|
|
55
|
+
throw new BridgeProtocolError(`Invalid bridge info payload: bridge expected one of ${KNOWN_BRIDGES.map(b => `"${b}"`).join(', ')}, got ${formatValue(bridge)}`);
|
|
50
56
|
}
|
|
51
57
|
const pythonVersion = obj.pythonVersion;
|
|
52
58
|
if (typeof pythonVersion !== 'string' || pythonVersion.length === 0) {
|
|
53
59
|
throw new BridgeProtocolError(`Invalid bridge info payload: pythonVersion expected non-empty string, got ${formatValue(pythonVersion)}`);
|
|
54
60
|
}
|
|
61
|
+
// pid is OPTIONAL across backends: subprocess reports a real OS pid (positive
|
|
62
|
+
// integer); in-WASM Pyodide (and HTTP) have no local process and report null.
|
|
63
|
+
// Accept a positive integer OR null; reject any other shape (e.g. 0, negative,
|
|
64
|
+
// non-integer, string).
|
|
55
65
|
const pid = obj.pid;
|
|
56
|
-
if (typeof pid !== 'number' || !Number.isInteger(pid) || pid <= 0) {
|
|
57
|
-
throw new BridgeProtocolError(`Invalid bridge info payload: pid expected positive integer, got ${formatValue(pid)}`);
|
|
66
|
+
if (pid !== null && (typeof pid !== 'number' || !Number.isInteger(pid) || pid <= 0)) {
|
|
67
|
+
throw new BridgeProtocolError(`Invalid bridge info payload: pid expected positive integer or null, got ${formatValue(pid)}`);
|
|
58
68
|
}
|
|
59
69
|
const codecFallback = obj.codecFallback;
|
|
60
70
|
if (codecFallback !== 'json' && codecFallback !== 'none') {
|
|
@@ -80,10 +90,43 @@ function validateBridgeInfoPayload(value) {
|
|
|
80
90
|
if (typeof instances !== 'number' || !Number.isInteger(instances) || instances < 0) {
|
|
81
91
|
throw new BridgeProtocolError(`Invalid bridge info payload: instances expected non-negative integer, got ${formatValue(instances)}`);
|
|
82
92
|
}
|
|
83
|
-
|
|
93
|
+
// OPTIONAL chunked-transport negotiation block. Absent on old bridges and on
|
|
94
|
+
// HTTP/Pyodide (single-frame in 0.8.0) — absence is backward compatible. When
|
|
95
|
+
// present, validate every field and CARRY IT THROUGH so negotiation data
|
|
96
|
+
// survives the rebuild below (the old validator silently dropped unknown
|
|
97
|
+
// fields, which would have discarded this block).
|
|
98
|
+
let transport;
|
|
99
|
+
const rawTransport = obj.transport;
|
|
100
|
+
if (rawTransport !== undefined) {
|
|
101
|
+
if (!rawTransport || typeof rawTransport !== 'object' || Array.isArray(rawTransport)) {
|
|
102
|
+
const kind = rawTransport === null
|
|
103
|
+
? 'null'
|
|
104
|
+
: Array.isArray(rawTransport)
|
|
105
|
+
? 'array'
|
|
106
|
+
: typeof rawTransport;
|
|
107
|
+
throw new BridgeProtocolError(`Invalid bridge info payload: transport expected object, got ${kind}`);
|
|
108
|
+
}
|
|
109
|
+
const t = rawTransport;
|
|
110
|
+
const frameProtocol = t.frameProtocol;
|
|
111
|
+
if (typeof frameProtocol !== 'string' || frameProtocol.length === 0) {
|
|
112
|
+
throw new BridgeProtocolError(`Invalid bridge info payload: transport.frameProtocol expected non-empty string, got ${formatValue(frameProtocol)}`);
|
|
113
|
+
}
|
|
114
|
+
const supportsChunking = t.supportsChunking;
|
|
115
|
+
if (typeof supportsChunking !== 'boolean') {
|
|
116
|
+
throw new BridgeProtocolError(`Invalid bridge info payload: transport.supportsChunking expected boolean, got ${formatValue(supportsChunking)}`);
|
|
117
|
+
}
|
|
118
|
+
const maxFrameBytes = t.maxFrameBytes;
|
|
119
|
+
if (typeof maxFrameBytes !== 'number' ||
|
|
120
|
+
!Number.isInteger(maxFrameBytes) ||
|
|
121
|
+
maxFrameBytes <= 0) {
|
|
122
|
+
throw new BridgeProtocolError(`Invalid bridge info payload: transport.maxFrameBytes expected positive integer, got ${formatValue(maxFrameBytes)}`);
|
|
123
|
+
}
|
|
124
|
+
transport = { frameProtocol, supportsChunking, maxFrameBytes };
|
|
125
|
+
}
|
|
126
|
+
const info = {
|
|
84
127
|
protocol: PROTOCOL_ID,
|
|
85
128
|
protocolVersion: TYWRAP_PROTOCOL_VERSION,
|
|
86
|
-
bridge:
|
|
129
|
+
bridge: bridge,
|
|
87
130
|
pythonVersion,
|
|
88
131
|
pid,
|
|
89
132
|
codecFallback,
|
|
@@ -93,6 +136,10 @@ function validateBridgeInfoPayload(value) {
|
|
|
93
136
|
sklearnAvailable,
|
|
94
137
|
instances,
|
|
95
138
|
};
|
|
139
|
+
if (transport !== undefined) {
|
|
140
|
+
info.transport = transport;
|
|
141
|
+
}
|
|
142
|
+
return info;
|
|
96
143
|
}
|
|
97
144
|
// =============================================================================
|
|
98
145
|
// RPC CLIENT
|
|
@@ -363,5 +410,20 @@ export class RpcClient extends DisposableBase {
|
|
|
363
410
|
this.bridgeInfoCache = info;
|
|
364
411
|
return info;
|
|
365
412
|
}
|
|
413
|
+
/**
|
|
414
|
+
* Report the underlying transport's static capability descriptor.
|
|
415
|
+
*
|
|
416
|
+
* This returns the transport-level flags (Arrow/binary carriage, framing,
|
|
417
|
+
* chunking/streaming, max frame size) WITHOUT any network round-trip — the
|
|
418
|
+
* descriptor is authoritative for what the wire channel can do. It is
|
|
419
|
+
* deliberately distinct from {@link getBridgeInfo}, which reports the *Python
|
|
420
|
+
* environment* (which optional libraries are importable). Callers that need
|
|
421
|
+
* both — "can this transport carry Arrow AND does this Python have pyarrow?" —
|
|
422
|
+
* should consult both: the transport descriptor for the channel, the bridge
|
|
423
|
+
* info for library availability.
|
|
424
|
+
*/
|
|
425
|
+
capabilities() {
|
|
426
|
+
return this.transport.capabilities();
|
|
427
|
+
}
|
|
366
428
|
}
|
|
367
429
|
//# sourceMappingURL=rpc-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rpc-client.js","sourceRoot":"","sources":["../../src/runtime/rpc-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,EAAE,cAAc,EAAuB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,WAAW,EAAqB,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACL,WAAW,EACX,uBAAuB,
|
|
1
|
+
{"version":3,"file":"rpc-client.js","sourceRoot":"","sources":["../../src/runtime/rpc-client.ts"],"names":[],"mappings":"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"}
|