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.
Files changed (81) hide show
  1. package/dist/core/generator.d.ts.map +1 -1
  2. package/dist/core/generator.js +40 -9
  3. package/dist/core/generator.js.map +1 -1
  4. package/dist/runtime/base-bridge.d.ts +57 -0
  5. package/dist/runtime/base-bridge.d.ts.map +1 -0
  6. package/dist/runtime/base-bridge.js +72 -0
  7. package/dist/runtime/base-bridge.js.map +1 -0
  8. package/dist/runtime/http-transport.d.ts +11 -1
  9. package/dist/runtime/http-transport.d.ts.map +1 -1
  10. package/dist/runtime/http-transport.js +19 -0
  11. package/dist/runtime/http-transport.js.map +1 -1
  12. package/dist/runtime/http.d.ts +5 -12
  13. package/dist/runtime/http.d.ts.map +1 -1
  14. package/dist/runtime/http.js +6 -29
  15. package/dist/runtime/http.js.map +1 -1
  16. package/dist/runtime/index.d.ts +1 -1
  17. package/dist/runtime/index.d.ts.map +1 -1
  18. package/dist/runtime/index.js.map +1 -1
  19. package/dist/runtime/node.d.ts +12 -19
  20. package/dist/runtime/node.d.ts.map +1 -1
  21. package/dist/runtime/node.js +14 -34
  22. package/dist/runtime/node.js.map +1 -1
  23. package/dist/runtime/pooled-transport.d.ts +21 -2
  24. package/dist/runtime/pooled-transport.d.ts.map +1 -1
  25. package/dist/runtime/pooled-transport.js +16 -0
  26. package/dist/runtime/pooled-transport.js.map +1 -1
  27. package/dist/runtime/pyodide-bootstrap-core.generated.d.ts.map +1 -1
  28. package/dist/runtime/pyodide-bootstrap-core.generated.js +1 -1
  29. package/dist/runtime/pyodide-bootstrap-core.generated.js.map +1 -1
  30. package/dist/runtime/pyodide-transport.d.ts +12 -1
  31. package/dist/runtime/pyodide-transport.d.ts.map +1 -1
  32. package/dist/runtime/pyodide-transport.js +20 -0
  33. package/dist/runtime/pyodide-transport.js.map +1 -1
  34. package/dist/runtime/pyodide.d.ts +5 -12
  35. package/dist/runtime/pyodide.d.ts.map +1 -1
  36. package/dist/runtime/pyodide.js +6 -29
  37. package/dist/runtime/pyodide.js.map +1 -1
  38. package/dist/runtime/rpc-client.d.ts +14 -1
  39. package/dist/runtime/rpc-client.d.ts.map +1 -1
  40. package/dist/runtime/rpc-client.js +15 -0
  41. package/dist/runtime/rpc-client.js.map +1 -1
  42. package/dist/runtime/subprocess-transport.d.ts +10 -1
  43. package/dist/runtime/subprocess-transport.d.ts.map +1 -1
  44. package/dist/runtime/subprocess-transport.js +18 -0
  45. package/dist/runtime/subprocess-transport.js.map +1 -1
  46. package/dist/runtime/transport.d.ts +59 -0
  47. package/dist/runtime/transport.d.ts.map +1 -1
  48. package/dist/runtime/transport.js +1 -0
  49. package/dist/runtime/transport.js.map +1 -1
  50. package/dist/types/index.d.ts +35 -0
  51. package/dist/types/index.d.ts.map +1 -1
  52. package/dist/tywrap.d.ts.map +1 -1
  53. package/dist/tywrap.js +212 -149
  54. package/dist/tywrap.js.map +1 -1
  55. package/dist/utils/codec.d.ts +2 -0
  56. package/dist/utils/codec.d.ts.map +1 -1
  57. package/dist/utils/codec.js +53 -2
  58. package/dist/utils/codec.js.map +1 -1
  59. package/dist/version.js +1 -1
  60. package/package.json +7 -1
  61. package/runtime/__pycache__/_tywrap_member_fixtures.cpython-311.pyc +0 -0
  62. package/runtime/__pycache__/safe_codec.cpython-311.pyc +0 -0
  63. package/runtime/__pycache__/tywrap_bridge_core.cpython-311.pyc +0 -0
  64. package/runtime/tywrap_bridge_core.py +55 -3
  65. package/src/core/generator.ts +50 -11
  66. package/src/runtime/base-bridge.ts +106 -0
  67. package/src/runtime/http-transport.ts +21 -1
  68. package/src/runtime/http.ts +7 -51
  69. package/src/runtime/index.ts +1 -0
  70. package/src/runtime/node.ts +17 -52
  71. package/src/runtime/pooled-transport.ts +25 -2
  72. package/src/runtime/pyodide-bootstrap-core.generated.ts +1 -1
  73. package/src/runtime/pyodide-transport.ts +22 -0
  74. package/src/runtime/pyodide.ts +7 -52
  75. package/src/runtime/rpc-client.ts +17 -0
  76. package/src/runtime/subprocess-transport.ts +20 -1
  77. package/src/runtime/transport.ts +71 -0
  78. package/src/types/index.ts +37 -0
  79. package/src/tywrap.ts +274 -163
  80. package/src/utils/codec.ts +61 -4
  81. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/utils/codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../../src/utils/codec.ts"],"names":[],"mappings":"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"}
package/dist/version.js CHANGED
@@ -8,5 +8,5 @@
8
8
  * importing package.json from outside tsconfig `rootDir`.
9
9
  * Regenerate with: node scripts/generate-version.mjs
10
10
  */
11
- export const VERSION = "0.6.1";
11
+ export const VERSION = "0.7.0";
12
12
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tywrap",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "description": "Generate type-safe TypeScript wrappers for any Python library — Node.js, Deno, Bun, and browsers via Pyodide.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -149,8 +149,14 @@
149
149
  "vitest": "^4.0.16"
150
150
  },
151
151
  "peerDependencies": {
152
+ "apache-arrow": ">=14.0.0",
152
153
  "pyodide": ">=0.28.0"
153
154
  },
155
+ "peerDependenciesMeta": {
156
+ "apache-arrow": {
157
+ "optional": true
158
+ }
159
+ },
154
160
  "engines": {
155
161
  "node": ">=20.0.0",
156
162
  "deno": ">=1.46.0",
@@ -43,8 +43,10 @@ derived from TYWRAP_CODEC_FALLBACK=json so that "Node in json-fallback mode" and
43
43
  import base64
44
44
  import datetime as dt
45
45
  import decimal
46
+ import functools
46
47
  import importlib
47
48
  import importlib.util
49
+ import inspect
48
50
  import json
49
51
  import math
50
52
  import traceback
@@ -183,6 +185,41 @@ def get_allowed_attr(obj, attr_name, *, allow_private_attrs):
183
185
  return getattr(obj, attr_name)
184
186
 
185
187
 
188
+ def resolve_allowed_attr_path(root, dotted_name, *, allow_private_attrs):
189
+ """
190
+ Resolve a possibly-dotted attribute path from root, applying the
191
+ private/dunder getattr guard to EVERY segment.
192
+
193
+ A single segment (the common case, e.g. a module-level function) behaves
194
+ exactly like get_allowed_attr. Dotted names exist because @classmethod and
195
+ @staticmethod are invoked through their owning class: the generated wrapper
196
+ emits call(module, 'Class.method', ...), so the bridge must walk
197
+ module -> Class -> method. Guarding each segment means 'Class._secret' or
198
+ '_Hidden.method' are rejected exactly as a direct private getattr would be —
199
+ the dotted path opens no access the single-getattr path did not already.
200
+ """
201
+ obj = root
202
+ for segment in dotted_name.split('.'):
203
+ obj = get_allowed_attr(obj, segment, allow_private_attrs=allow_private_attrs)
204
+ return obj
205
+
206
+
207
+ def is_accessor_attr(obj, attr_name):
208
+ """
209
+ True when attr_name resolves to a @property or functools.cached_property on
210
+ obj's type — i.e. it is read by attribute access, not called.
211
+
212
+ Inspects type(obj)'s MRO via getattr_static (which never triggers the
213
+ descriptor protocol), NOT the instance dict. That matters for
214
+ cached_property: after the first read it stores its value in the instance
215
+ __dict__, so an instance-level static lookup would return the cached value
216
+ rather than the descriptor and misclassify it as a method on the next read.
217
+ Reading from the type keeps the classification stable across repeated reads.
218
+ """
219
+ descriptor = inspect.getattr_static(type(obj), attr_name, None)
220
+ return isinstance(descriptor, (property, functools.cached_property))
221
+
222
+
186
223
  class CodecError(Exception):
187
224
  """Raised when value encoding fails (e.g. NaN/Infinity not allowed)."""
188
225
 
@@ -852,7 +889,10 @@ def handle_call(params, *, force_json_markers, torch_allow_copy, allowed_modules
852
889
  args = deserialize(coerce_list(params.get('args'), 'args'))
853
890
  kwargs = deserialize(coerce_dict(params.get('kwargs'), 'kwargs'))
854
891
  mod = import_allowed_module(module_name, allowed_modules)
855
- func = get_allowed_attr(mod, function_name, allow_private_attrs=allow_private_attrs)
892
+ # function_name may be dotted ('Class.method') for @classmethod/@staticmethod
893
+ # calls, which the generated wrapper routes through call() rather than an
894
+ # instance handle. resolve_allowed_attr_path guards each segment.
895
+ func = resolve_allowed_attr_path(mod, function_name, allow_private_attrs=allow_private_attrs)
856
896
  res = func(*args, **kwargs)
857
897
  return serialize(res, force_json_markers=force_json_markers, torch_allow_copy=torch_allow_copy)
858
898
 
@@ -878,8 +918,20 @@ def handle_call_method(params, instances, *, force_json_markers, torch_allow_cop
878
918
  if handle_id not in instances:
879
919
  raise InstanceHandleError(f'Unknown instance handle: {handle_id}')
880
920
  obj = instances[handle_id]
881
- func = get_allowed_attr(obj, method_name, allow_private_attrs=allow_private_attrs)
882
- res = func(*args, **kwargs)
921
+ # A @property / functools.cached_property is read, not called: the generated
922
+ # `get prop()` accessor emits callMethod(handle, name, []). Classify before
923
+ # touching the value (so cached_property is detected on its first read) and
924
+ # return the attribute directly; everything else is a bound method to call.
925
+ if is_accessor_attr(obj, method_name):
926
+ # An accessor is read, never called: a generated `get prop()` always
927
+ # sends empty args. Reject a malformed request that supplies any so it
928
+ # fails loudly instead of silently dropping the arguments.
929
+ if args or kwargs:
930
+ raise ProtocolError(f'Accessor {method_name!r} does not accept arguments')
931
+ res = get_allowed_attr(obj, method_name, allow_private_attrs=allow_private_attrs)
932
+ else:
933
+ func = get_allowed_attr(obj, method_name, allow_private_attrs=allow_private_attrs)
934
+ res = func(*args, **kwargs)
883
935
  return serialize(res, force_json_markers=force_json_markers, torch_allow_copy=torch_allow_copy)
884
936
 
885
937
 
@@ -560,6 +560,7 @@ ${callPrelude}${guards} return getRuntimeBridge().call('${moduleId}', '${func.n
560
560
  this.getTypeParameters(cls.typeParameters),
561
561
  [
562
562
  ...cls.properties.map(property => property.type),
563
+ ...(cls.accessors ?? []).map(accessor => accessor.type),
563
564
  ...cls.methods.flatMap(method => [
564
565
  method.returnType,
565
566
  ...method.parameters.map(p => p.type),
@@ -604,6 +605,15 @@ ${callPrelude}${guards} return getRuntimeBridge().call('${moduleId}', '${func.n
604
605
  `${this.escapeIdentifier(p.name)}: ${this.typeToTsFromPython(p.type, classGenericContext, 'value')};`
605
606
  )
606
607
  .join(' ');
608
+ // @property / cached_property members are bridge-accessed getters; mirror
609
+ // the concrete class's `get name(): Promise<T>` as readonly Promise props
610
+ // so protocol typings include them too (IR 0.3.0).
611
+ const accessors = (cls.accessors ?? [])
612
+ .map(
613
+ a =>
614
+ `readonly ${this.escapeIdentifier(a.name)}: Promise<${this.typeToTsFromPython(a.type, classGenericContext, 'return')}>;`
615
+ )
616
+ .join(' ');
607
617
  const methods = cls.methods
608
618
  .filter(m => m.name !== '__init__')
609
619
  .map(m => {
@@ -628,7 +638,7 @@ ${callPrelude}${guards} return getRuntimeBridge().call('${moduleId}', '${func.n
628
638
  return `${this.escapeIdentifier(m.name)}: ${methodTypeParamDecl}(${paramsDecl}) => ${returnType};`;
629
639
  })
630
640
  .join(' ');
631
- return wrapAlias(`{ ${props} ${methods} }`);
641
+ return wrapAlias(`{ ${props} ${accessors} ${methods} }`);
632
642
  }
633
643
 
634
644
  if (cls.kind === 'dataclass' || cls.kind === 'pydantic') {
@@ -643,6 +653,7 @@ ${callPrelude}${guards} return getRuntimeBridge().call('${moduleId}', '${func.n
643
653
  return wrapAlias(`{ ${props} }`);
644
654
  }
645
655
 
656
+ const moduleId = moduleName ?? '__main__';
646
657
  const sortedMethods = [...cls.methods].sort((a, b) => a.name.localeCompare(b.name));
647
658
  const methodBodies: string[] = [];
648
659
  const methodDeclarations: string[] = [];
@@ -650,6 +661,12 @@ ${callPrelude}${guards} return getRuntimeBridge().call('${moduleId}', '${func.n
650
661
  sortedMethods
651
662
  .filter(method => method.name !== '__init__')
652
663
  .forEach(method => {
664
+ // @classmethod and @staticmethod become `static` members invoked through
665
+ // the class (`Class.method`), not the instance handle. Instance methods
666
+ // (the default, or an absent methodKind) keep the existing emission so
667
+ // their output stays byte-identical.
668
+ const isStatic = method.methodKind === 'class' || method.methodKind === 'static';
669
+ const staticPrefix = isStatic ? 'static ' : '';
653
670
  const fparams = method.parameters.filter(p => p.name !== 'self' && p.name !== 'cls');
654
671
  const methodOwnGenericContext = this.buildGenericRenderContext(
655
672
  this.getTypeParameters(method.typeParameters),
@@ -737,11 +754,11 @@ ${callPrelude}${guards} return getRuntimeBridge().call('${moduleId}', '${func.n
737
754
  }
738
755
  rest.push(`kwargs: ${kwargsType}`);
739
756
  overloads.push(
740
- ` ${mname}${methodTypeParamDecl}(${[...head, ...rest].join(', ')}): Promise<${returnType}>;`
757
+ ` ${staticPrefix}${mname}${methodTypeParamDecl}(${[...head, ...rest].join(', ')}): Promise<${returnType}>;`
741
758
  );
742
759
  if (varArgsParam && needsVarArgsArray) {
743
760
  overloads.push(
744
- ` ${mname}${methodTypeParamDecl}(${[...head, `kwargs: ${kwargsType}`].join(', ')}): Promise<${returnType}>;`
761
+ ` ${staticPrefix}${mname}${methodTypeParamDecl}(${[...head, `kwargs: ${kwargsType}`].join(', ')}): Promise<${returnType}>;`
745
762
  );
746
763
  }
747
764
  }
@@ -767,13 +784,18 @@ ${callPrelude}${guards} return getRuntimeBridge().call('${moduleId}', '${func.n
767
784
  const guardLines = emitArgGuards(callDescriptor);
768
785
  const guards = guardLines.length > 0 ? `${guardLines.join('\n')}\n` : '';
769
786
 
770
- methodBodies.push(`${overloadDecl} async ${mname}${methodTypeParamDecl}(${paramsDecl}): Promise<${returnType}> {
771
- ${callPrelude}${guards} return getRuntimeBridge().callMethod(this.__handle, '${method.name}', __args${
772
- needsKwargsParam ? ', __kwargs' : ''
773
- });
787
+ const callExpr = isStatic
788
+ ? `getRuntimeBridge().call('${moduleId}', '${cls.name}.${method.name}', __args${
789
+ needsKwargsParam ? ', __kwargs' : ''
790
+ })`
791
+ : `getRuntimeBridge().callMethod(this.__handle, '${method.name}', __args${
792
+ needsKwargsParam ? ', __kwargs' : ''
793
+ })`;
794
+ methodBodies.push(`${overloadDecl} ${staticPrefix}async ${mname}${methodTypeParamDecl}(${paramsDecl}): Promise<${returnType}> {
795
+ ${callPrelude}${guards} return ${callExpr};
774
796
  }`);
775
797
  methodDeclarations.push(
776
- `${overloadDecl}${overloads.length > 0 ? '' : ` ${mname}${methodTypeParamDecl}(${paramsDecl}): Promise<${returnType}>;\n`}`
798
+ `${overloadDecl}${overloads.length > 0 ? '' : ` ${staticPrefix}${mname}${methodTypeParamDecl}(${paramsDecl}): Promise<${returnType}>;\n`}`
777
799
  );
778
800
  });
779
801
 
@@ -898,7 +920,24 @@ ${callPrelude}${guards} return getRuntimeBridge().callMethod(this.__handle, '
898
920
  };
899
921
  })();
900
922
 
901
- const moduleId = moduleName ?? '__main__';
923
+ // @property / functools.cached_property TS getters returning Promise<T>.
924
+ // Reading the attribute fires the getter on the Python side; the bridge
925
+ // resolves it via callMethod with no args. Sorted for stable output.
926
+ const accessorBodies: string[] = [];
927
+ const accessorDeclarations: string[] = [];
928
+ const sortedAccessors = [...(cls.accessors ?? [])].sort((a, b) => a.name.localeCompare(b.name));
929
+ sortedAccessors.forEach(accessor => {
930
+ const aname = this.escapeIdentifier(accessor.name);
931
+ const accessorType = this.typeToTsFromPython(accessor.type, classGenericContext, 'return');
932
+ const jsdocAcc = this.generateJsDoc(accessor.docstring);
933
+ accessorBodies.push(
934
+ `${jsdocAcc} get ${aname}(): Promise<${accessorType}> { return getRuntimeBridge().callMethod(this.__handle, '${accessor.name}', []); }`
935
+ );
936
+ accessorDeclarations.push(`${jsdocAcc} get ${aname}(): Promise<${accessorType}>;\n`);
937
+ });
938
+ const accessorsImpl = accessorBodies.length > 0 ? `${accessorBodies.join('\n')}\n` : '';
939
+ const accessorsDecl = accessorDeclarations.length > 0 ? `${accessorDeclarations.join('')}` : '';
940
+
902
941
  const methodsSection = methodBodies.length > 0 ? `\n${methodBodies.join('\n')}\n` : '\n';
903
942
  const declarationMethodsSection =
904
943
  methodDeclarations.length > 0 ? `\n${methodDeclarations.join('')}\n` : '\n';
@@ -913,14 +952,14 @@ ${ctorSpec.callPrelude}${ctorGuards} const handle = await getRuntimeBridge().
913
952
  });
914
953
  return ${newClassExpr};
915
954
  }
916
- static fromHandle${classTypeParamDecl}(handle: string): ${classSelfType} { return ${newClassExpr}; }${methodsSection} async disposeHandle(): Promise<void> { await getRuntimeBridge().disposeInstance(this.__handle); }
955
+ static fromHandle${classTypeParamDecl}(handle: string): ${classSelfType} { return ${newClassExpr}; }${methodsSection}${accessorsImpl} async disposeHandle(): Promise<void> { await getRuntimeBridge().disposeInstance(this.__handle); }
917
956
  }
918
957
  `;
919
958
 
920
959
  const declaration = `${jsdoc}export class ${cname}${classTypeParamDecl} {
921
960
  private readonly __handle: string;
922
961
  private constructor(handle: string);
923
- ${ctorSpec.declaration} static fromHandle${classTypeParamDecl}(handle: string): ${classSelfType};${declarationMethodsSection} disposeHandle(): Promise<void>;
962
+ ${ctorSpec.declaration} static fromHandle${classTypeParamDecl}(handle: string): ${classSelfType};${declarationMethodsSection}${accessorsDecl} disposeHandle(): Promise<void>;
924
963
  }
925
964
  `;
926
965
 
@@ -0,0 +1,106 @@
1
+ /**
2
+ * BasePythonBridge - shared RPC delegation for the bridge facades.
3
+ *
4
+ * The three bridge facades (NodeBridge/HttpBridge/PyodideBridge) all extend
5
+ * DisposableBase (lifecycle/resources) and implement PythonRuntime by HOLDING
6
+ * an RpcClient. The PythonRuntime delegation was byte-identical across all
7
+ * three: each method does `await this.ensureReady()` then forwards to the held
8
+ * RpcClient. This base collapses that duplication onto a single
9
+ * `getRpcClient()` accessor while leaving each facade free to own its own
10
+ * RpcClient field (for constructor wiring, resource tracking, and — in
11
+ * NodeBridge's case — a caching override of call()).
12
+ *
13
+ * It carries no transport/codec/lifecycle specifics: doInit/doDispose remain
14
+ * abstract on DisposableBase and stay per-facade.
15
+ *
16
+ * @see https://github.com/bbopen/tywrap/issues/149
17
+ */
18
+
19
+ import type { PythonRuntime, BridgeInfo } from '../types/index.js';
20
+
21
+ import { DisposableBase } from './bounded-context.js';
22
+ import type { RpcClient, GetBridgeInfoOptions } from './rpc-client.js';
23
+ import type { TransportCapabilities } from './transport.js';
24
+
25
+ /**
26
+ * Shared base for the bridge facades. Implements the PythonRuntime RPC
27
+ * delegation (plus getBridgeInfo) over a single held RpcClient, exposed by the
28
+ * abstract {@link getRpcClient} accessor. Lifecycle (doInit/doDispose) and the
29
+ * RpcClient's construction/ownership remain the subclass's responsibility.
30
+ */
31
+ export abstract class BasePythonBridge extends DisposableBase implements PythonRuntime {
32
+ /**
33
+ * Return the held RpcClient that the shared delegating methods forward to.
34
+ * Subclasses construct, track, and own the RpcClient; this accessor lets the
35
+ * base reach it without dictating how it is stored.
36
+ */
37
+ protected abstract getRpcClient(): RpcClient;
38
+
39
+ // ===========================================================================
40
+ // RPC METHODS (delegate to the held RpcClient)
41
+ // ===========================================================================
42
+
43
+ async call<T = unknown>(
44
+ module: string,
45
+ functionName: string,
46
+ args: unknown[],
47
+ kwargs?: Record<string, unknown>
48
+ ): Promise<T> {
49
+ await this.ensureReady();
50
+ return this.getRpcClient().call<T>(module, functionName, args, kwargs);
51
+ }
52
+
53
+ async instantiate<T = unknown>(
54
+ module: string,
55
+ className: string,
56
+ args: unknown[],
57
+ kwargs?: Record<string, unknown>
58
+ ): Promise<T> {
59
+ await this.ensureReady();
60
+ return this.getRpcClient().instantiate<T>(module, className, args, kwargs);
61
+ }
62
+
63
+ async callMethod<T = unknown>(
64
+ handle: string,
65
+ methodName: string,
66
+ args: unknown[],
67
+ kwargs?: Record<string, unknown>
68
+ ): Promise<T> {
69
+ await this.ensureReady();
70
+ return this.getRpcClient().callMethod<T>(handle, methodName, args, kwargs);
71
+ }
72
+
73
+ async disposeInstance(handle: string): Promise<void> {
74
+ await this.ensureReady();
75
+ return this.getRpcClient().disposeInstance(handle);
76
+ }
77
+
78
+ /**
79
+ * Fetch bridge diagnostics and feature availability.
80
+ */
81
+ async getBridgeInfo(options?: GetBridgeInfoOptions): Promise<BridgeInfo> {
82
+ await this.ensureReady();
83
+ return this.getRpcClient().getBridgeInfo(options);
84
+ }
85
+
86
+ /**
87
+ * Describe this backend's transport-level capabilities (Arrow/binary/chunking/
88
+ * streaming support, max frame size). The descriptor is static and does NOT
89
+ * depend on lifecycle state, so this intentionally does not `ensureReady()` —
90
+ * callers can query it before connecting to decide how to use the bridge.
91
+ */
92
+ capabilities(): TransportCapabilities {
93
+ return this.getRpcClient().capabilities();
94
+ }
95
+
96
+ /**
97
+ * Ensure the facade is initialized before delegating an RPC. Replicates the
98
+ * auto-init that the bounded execute path provided pre-composition, so the
99
+ * facade's own doInit pre-work runs before any RPC.
100
+ */
101
+ protected async ensureReady(): Promise<void> {
102
+ if (!this.isReady) {
103
+ await this.init();
104
+ }
105
+ }
106
+ }
@@ -13,7 +13,7 @@ import {
13
13
  BridgeProtocolError,
14
14
  BridgeTimeoutError,
15
15
  } from './errors.js';
16
- import type { Transport } from './transport.js';
16
+ import type { Transport, TransportCapabilities } from './transport.js';
17
17
 
18
18
  // =============================================================================
19
19
  // OPTIONS
@@ -111,6 +111,26 @@ export class HttpTransport implements Transport {
111
111
  return !this._isDisposed;
112
112
  }
113
113
 
114
+ /**
115
+ * Static capability descriptor for the HTTP backend.
116
+ *
117
+ * The Python server can return Arrow IPC and arbitrary binary (bytes
118
+ * envelopes) in the HTTP response body. Chunking/streaming are not implemented
119
+ * (0.8.0). HTTP imposes no transport-level frame ceiling — the whole body is
120
+ * read in one shot — so `maxFrameBytes` is `Number.POSITIVE_INFINITY` (a higher
121
+ * layer, e.g. the codec payload limit, may still cap the size).
122
+ */
123
+ capabilities(): TransportCapabilities {
124
+ return {
125
+ backend: 'http',
126
+ supportsArrow: true,
127
+ supportsBinary: true,
128
+ supportsChunking: false,
129
+ supportsStreaming: false,
130
+ maxFrameBytes: Number.POSITIVE_INFINITY,
131
+ };
132
+ }
133
+
114
134
  // ===========================================================================
115
135
  // SEND
116
136
  // ===========================================================================
@@ -8,11 +8,10 @@
8
8
  * @see https://github.com/bbopen/tywrap/issues/149
9
9
  */
10
10
 
11
- import type { PythonRuntime, BridgeInfo } from '../types/index.js';
12
11
  import { autoRegisterArrowDecoder } from '../utils/codec.js';
13
12
 
14
- import { DisposableBase } from './bounded-context.js';
15
- import { RpcClient, type GetBridgeInfoOptions } from './rpc-client.js';
13
+ import { BasePythonBridge } from './base-bridge.js';
14
+ import { RpcClient } from './rpc-client.js';
16
15
  import { HttpTransport } from './http-transport.js';
17
16
  import type { CodecOptions } from './bridge-codec.js';
18
17
 
@@ -65,7 +64,7 @@ export interface HttpBridgeOptions {
65
64
  * await bridge.dispose();
66
65
  * ```
67
66
  */
68
- export class HttpBridge extends DisposableBase implements PythonRuntime {
67
+ export class HttpBridge extends BasePythonBridge {
69
68
  private readonly rpc: RpcClient;
70
69
 
71
70
  /**
@@ -110,56 +109,13 @@ export class HttpBridge extends DisposableBase implements PythonRuntime {
110
109
  }
111
110
 
112
111
  // ===========================================================================
113
- // RPC METHODS (delegate to the held RpcClient)
112
+ // RPC DELEGATION (the held RpcClient)
114
113
  // ===========================================================================
115
114
 
116
- async call<T = unknown>(
117
- module: string,
118
- functionName: string,
119
- args: unknown[],
120
- kwargs?: Record<string, unknown>
121
- ): Promise<T> {
122
- await this.ensureReady();
123
- return this.rpc.call<T>(module, functionName, args, kwargs);
124
- }
125
-
126
- async instantiate<T = unknown>(
127
- module: string,
128
- className: string,
129
- args: unknown[],
130
- kwargs?: Record<string, unknown>
131
- ): Promise<T> {
132
- await this.ensureReady();
133
- return this.rpc.instantiate<T>(module, className, args, kwargs);
134
- }
135
-
136
- async callMethod<T = unknown>(
137
- handle: string,
138
- methodName: string,
139
- args: unknown[],
140
- kwargs?: Record<string, unknown>
141
- ): Promise<T> {
142
- await this.ensureReady();
143
- return this.rpc.callMethod<T>(handle, methodName, args, kwargs);
144
- }
145
-
146
- async disposeInstance(handle: string): Promise<void> {
147
- await this.ensureReady();
148
- return this.rpc.disposeInstance(handle);
149
- }
150
-
151
- async getBridgeInfo(options?: GetBridgeInfoOptions): Promise<BridgeInfo> {
152
- await this.ensureReady();
153
- return this.rpc.getBridgeInfo(options);
154
- }
155
-
156
115
  /**
157
- * Ensure the facade is initialized before delegating an RPC, replicating the
158
- * auto-init that the bounded execute path provided pre-composition.
116
+ * Expose the held RpcClient to BasePythonBridge's shared delegating methods.
159
117
  */
160
- private async ensureReady(): Promise<void> {
161
- if (!this.isReady) {
162
- await this.init();
163
- }
118
+ protected getRpcClient(): RpcClient {
119
+ return this.rpc;
164
120
  }
165
121
  }
@@ -15,6 +15,7 @@ export { BridgeCodec, type CodecOptions } from './bridge-codec.js';
15
15
  // Transport contract — abstract I/O channel interface and guards
16
16
  export type {
17
17
  Transport,
18
+ TransportCapabilities,
18
19
  TransportOptions,
19
20
  ProtocolMessage,
20
21
  ProtocolResponse,