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.
Files changed (118) hide show
  1. package/dist/core/annotation-parser.d.ts.map +1 -1
  2. package/dist/core/annotation-parser.js +19 -14
  3. package/dist/core/annotation-parser.js.map +1 -1
  4. package/dist/core/discovery.d.ts +17 -0
  5. package/dist/core/discovery.d.ts.map +1 -1
  6. package/dist/core/discovery.js +59 -49
  7. package/dist/core/discovery.js.map +1 -1
  8. package/dist/core/generator.d.ts.map +1 -1
  9. package/dist/core/generator.js +40 -9
  10. package/dist/core/generator.js.map +1 -1
  11. package/dist/core/validation.d.ts +23 -0
  12. package/dist/core/validation.d.ts.map +1 -1
  13. package/dist/core/validation.js +52 -48
  14. package/dist/core/validation.js.map +1 -1
  15. package/dist/dev.d.ts.map +1 -1
  16. package/dist/dev.js +175 -133
  17. package/dist/dev.js.map +1 -1
  18. package/dist/runtime/base-bridge.d.ts +57 -0
  19. package/dist/runtime/base-bridge.d.ts.map +1 -0
  20. package/dist/runtime/base-bridge.js +72 -0
  21. package/dist/runtime/base-bridge.js.map +1 -0
  22. package/dist/runtime/bridge-codec.d.ts +15 -0
  23. package/dist/runtime/bridge-codec.d.ts.map +1 -1
  24. package/dist/runtime/bridge-codec.js +45 -48
  25. package/dist/runtime/bridge-codec.js.map +1 -1
  26. package/dist/runtime/http-transport.d.ts +11 -1
  27. package/dist/runtime/http-transport.d.ts.map +1 -1
  28. package/dist/runtime/http-transport.js +19 -0
  29. package/dist/runtime/http-transport.js.map +1 -1
  30. package/dist/runtime/http.d.ts +5 -12
  31. package/dist/runtime/http.d.ts.map +1 -1
  32. package/dist/runtime/http.js +6 -29
  33. package/dist/runtime/http.js.map +1 -1
  34. package/dist/runtime/index.d.ts +1 -1
  35. package/dist/runtime/index.d.ts.map +1 -1
  36. package/dist/runtime/index.js.map +1 -1
  37. package/dist/runtime/node.d.ts +12 -19
  38. package/dist/runtime/node.d.ts.map +1 -1
  39. package/dist/runtime/node.js +14 -34
  40. package/dist/runtime/node.js.map +1 -1
  41. package/dist/runtime/pooled-transport.d.ts +21 -2
  42. package/dist/runtime/pooled-transport.d.ts.map +1 -1
  43. package/dist/runtime/pooled-transport.js +16 -0
  44. package/dist/runtime/pooled-transport.js.map +1 -1
  45. package/dist/runtime/pyodide-bootstrap-core.generated.d.ts.map +1 -1
  46. package/dist/runtime/pyodide-bootstrap-core.generated.js +1 -1
  47. package/dist/runtime/pyodide-bootstrap-core.generated.js.map +1 -1
  48. package/dist/runtime/pyodide-transport.d.ts +12 -1
  49. package/dist/runtime/pyodide-transport.d.ts.map +1 -1
  50. package/dist/runtime/pyodide-transport.js +20 -0
  51. package/dist/runtime/pyodide-transport.js.map +1 -1
  52. package/dist/runtime/pyodide.d.ts +5 -12
  53. package/dist/runtime/pyodide.d.ts.map +1 -1
  54. package/dist/runtime/pyodide.js +6 -29
  55. package/dist/runtime/pyodide.js.map +1 -1
  56. package/dist/runtime/rpc-client.d.ts +32 -1
  57. package/dist/runtime/rpc-client.d.ts.map +1 -1
  58. package/dist/runtime/rpc-client.js +45 -24
  59. package/dist/runtime/rpc-client.js.map +1 -1
  60. package/dist/runtime/subprocess-transport.d.ts +26 -1
  61. package/dist/runtime/subprocess-transport.d.ts.map +1 -1
  62. package/dist/runtime/subprocess-transport.js +72 -35
  63. package/dist/runtime/subprocess-transport.js.map +1 -1
  64. package/dist/runtime/transport.d.ts +59 -0
  65. package/dist/runtime/transport.d.ts.map +1 -1
  66. package/dist/runtime/transport.js +1 -0
  67. package/dist/runtime/transport.js.map +1 -1
  68. package/dist/types/index.d.ts +35 -0
  69. package/dist/types/index.d.ts.map +1 -1
  70. package/dist/tywrap.d.ts +0 -5
  71. package/dist/tywrap.d.ts.map +1 -1
  72. package/dist/tywrap.js +212 -169
  73. package/dist/tywrap.js.map +1 -1
  74. package/dist/utils/cache.d.ts +11 -0
  75. package/dist/utils/cache.d.ts.map +1 -1
  76. package/dist/utils/cache.js +50 -58
  77. package/dist/utils/cache.js.map +1 -1
  78. package/dist/utils/codec.d.ts +2 -0
  79. package/dist/utils/codec.d.ts.map +1 -1
  80. package/dist/utils/codec.js +53 -2
  81. package/dist/utils/codec.js.map +1 -1
  82. package/dist/utils/python.d.ts.map +1 -1
  83. package/dist/utils/python.js +28 -17
  84. package/dist/utils/python.js.map +1 -1
  85. package/dist/utils/runtime.d.ts.map +1 -1
  86. package/dist/utils/runtime.js +22 -16
  87. package/dist/utils/runtime.js.map +1 -1
  88. package/dist/version.js +1 -1
  89. package/package.json +7 -1
  90. package/runtime/__pycache__/_tywrap_member_fixtures.cpython-311.pyc +0 -0
  91. package/runtime/__pycache__/safe_codec.cpython-311.pyc +0 -0
  92. package/runtime/__pycache__/tywrap_bridge_core.cpython-311.pyc +0 -0
  93. package/runtime/tywrap_bridge_core.py +55 -3
  94. package/src/core/annotation-parser.ts +23 -18
  95. package/src/core/discovery.ts +70 -54
  96. package/src/core/generator.ts +50 -11
  97. package/src/core/validation.ts +84 -48
  98. package/src/dev.ts +237 -153
  99. package/src/runtime/base-bridge.ts +106 -0
  100. package/src/runtime/bridge-codec.ts +58 -70
  101. package/src/runtime/http-transport.ts +21 -1
  102. package/src/runtime/http.ts +7 -51
  103. package/src/runtime/index.ts +1 -0
  104. package/src/runtime/node.ts +17 -52
  105. package/src/runtime/pooled-transport.ts +25 -2
  106. package/src/runtime/pyodide-bootstrap-core.generated.ts +1 -1
  107. package/src/runtime/pyodide-transport.ts +22 -0
  108. package/src/runtime/pyodide.ts +7 -52
  109. package/src/runtime/rpc-client.ts +56 -32
  110. package/src/runtime/subprocess-transport.ts +89 -40
  111. package/src/runtime/transport.ts +71 -0
  112. package/src/types/index.ts +37 -0
  113. package/src/tywrap.ts +274 -187
  114. package/src/utils/cache.ts +59 -61
  115. package/src/utils/codec.ts +61 -4
  116. package/src/utils/python.ts +33 -20
  117. package/src/utils/runtime.ts +24 -13
  118. package/src/version.ts +1 -1
@@ -185,28 +185,34 @@ async function loadPathModule() {
185
185
  }
186
186
  return null;
187
187
  }
188
+ /**
189
+ * Apply a single path segment to the accumulated normalized segments,
190
+ * resolving '..' and dropping '.'/empty segments in place.
191
+ */
192
+ function applyPathSegment(normalized, segment, isAbsolute) {
193
+ if (segment === '.' || segment === '') {
194
+ return; // Skip current directory and empty segments
195
+ }
196
+ if (segment !== '..') {
197
+ normalized.push(segment);
198
+ return;
199
+ }
200
+ // '..' segment: go up one directory when possible.
201
+ if (normalized.length > 0 && normalized[normalized.length - 1] !== '..') {
202
+ normalized.pop();
203
+ }
204
+ else if (!isAbsolute) {
205
+ normalized.push(segment); // Keep '..' if not absolute and at root
206
+ }
207
+ }
188
208
  /**
189
209
  * Normalize path by stripping '.' and resolving '..' components
190
210
  */
191
211
  function normalizePath(path) {
192
212
  const isAbsolute = path.startsWith('/');
193
- const segments = path.split('/');
194
213
  const normalized = [];
195
- for (const segment of segments) {
196
- if (segment === '.' || segment === '') {
197
- continue; // Skip current directory and empty segments
198
- }
199
- else if (segment === '..') {
200
- if (normalized.length > 0 && normalized[normalized.length - 1] !== '..') {
201
- normalized.pop(); // Go up one directory
202
- }
203
- else if (!isAbsolute) {
204
- normalized.push(segment); // Keep '..' if not absolute and at root
205
- }
206
- }
207
- else {
208
- normalized.push(segment);
209
- }
214
+ for (const segment of path.split('/')) {
215
+ applyPathSegment(normalized, segment, isAbsolute);
210
216
  }
211
217
  const result = normalized.join('/');
212
218
  return isAbsolute ? `/${result}` : result;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/utils/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/utils/runtime.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.0";
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.0",
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
 
@@ -118,30 +118,35 @@ export function parseAnnotationToPythonType(
118
118
  return { kind: 'custom', name: n };
119
119
  };
120
120
 
121
+ // Extracts the leading quoted string from the body of a `Name(...)` factory call
122
+ // (the `inner` already stripped of the outer `Name(` and trailing `)`). Returns
123
+ // the unquoted name, or null when the body is not a well-formed quoted argument.
124
+ const extractQuotedFactoryArg = (inner: string): string | null => {
125
+ if (inner.length < 2) {
126
+ return null;
127
+ }
128
+
129
+ const quote = inner[0];
130
+ if ((quote !== "'" && quote !== '"') || inner[inner.length - 1] !== quote) {
131
+ return null;
132
+ }
133
+
134
+ const commaIndex = inner.indexOf(',');
135
+ const quoted = commaIndex === -1 ? inner : inner.slice(0, commaIndex).trimEnd();
136
+ if (quoted.length < 2 || quoted[quoted.length - 1] !== quote) {
137
+ return null;
138
+ }
139
+
140
+ return quoted.slice(1, -1);
141
+ };
142
+
121
143
  const parseTypingFactoryName = (text: string, name: string): string | null => {
122
144
  for (const prefix of modulePrefixes) {
123
145
  const start = `${prefix}${name}(`;
124
146
  if (!text.startsWith(start) || !text.endsWith(')')) {
125
147
  continue;
126
148
  }
127
-
128
- const inner = text.slice(start.length, -1).trim();
129
- if (inner.length < 2) {
130
- return null;
131
- }
132
-
133
- const quote = inner[0];
134
- if ((quote !== "'" && quote !== '"') || inner[inner.length - 1] !== quote) {
135
- return null;
136
- }
137
-
138
- const commaIndex = inner.indexOf(',');
139
- const quoted = commaIndex === -1 ? inner : inner.slice(0, commaIndex).trimEnd();
140
- if (quoted.length < 2 || quoted[quoted.length - 1] !== quote) {
141
- return null;
142
- }
143
-
144
- return quoted.slice(1, -1);
149
+ return extractQuotedFactoryArg(text.slice(start.length, -1).trim());
145
150
  }
146
151
 
147
152
  return null;
@@ -122,38 +122,61 @@ export class ModuleDiscovery {
122
122
  return cached.path;
123
123
  }
124
124
 
125
- // Try to resolve using Python's module finder
126
- if (processUtils.isAvailable()) {
127
- try {
128
- const pythonPath = await this.getPythonExecutable();
129
- const result = await processUtils.exec(
130
- pythonPath,
131
- [
132
- '-c',
133
- `import ${moduleName}; print(${moduleName}.__file__ if hasattr(${moduleName}, '__file__') else '${moduleName}.__path__[0]' if hasattr(${moduleName}, '__path__') else 'builtin')`,
134
- ],
135
- { timeoutMs: this.options.timeoutMs }
136
- );
125
+ // Try to resolve using Python's module finder, then fall back to a
126
+ // filesystem search across the known Python paths.
127
+ return (
128
+ (await this.resolveViaInterpreter(moduleName)) ??
129
+ (await this.resolveViaSearchPaths(moduleName))
130
+ );
131
+ }
132
+
133
+ /**
134
+ * Resolve a module path by asking the Python interpreter for `__file__`.
135
+ * Caches and returns the resolved path, or `null` when the interpreter is
136
+ * unavailable, reports a builtin, or fails.
137
+ */
138
+ private async resolveViaInterpreter(moduleName: string): Promise<string | null> {
139
+ if (!processUtils.isAvailable()) {
140
+ return null;
141
+ }
137
142
 
138
- if (result.code === 0 && result.stdout.trim() !== 'builtin') {
139
- const modulePath = result.stdout.trim();
143
+ try {
144
+ const pythonPath = await this.getPythonExecutable();
145
+ const result = await processUtils.exec(
146
+ pythonPath,
147
+ [
148
+ '-c',
149
+ `import ${moduleName}; print(${moduleName}.__file__ if hasattr(${moduleName}, '__file__') else '${moduleName}.__path__[0]' if hasattr(${moduleName}, '__path__') else 'builtin')`,
150
+ ],
151
+ { timeoutMs: this.options.timeoutMs }
152
+ );
140
153
 
141
- // Cache the result
142
- this.moduleCache.set(moduleName, {
143
- name: moduleName,
144
- path: modulePath,
145
- isPackage: modulePath.endsWith('__init__.py'),
146
- dependencies: [],
147
- });
154
+ if (result.code === 0 && result.stdout.trim() !== 'builtin') {
155
+ const modulePath = result.stdout.trim();
148
156
 
149
- return modulePath;
150
- }
151
- } catch (error) {
152
- log.warn('Failed to resolve module', { moduleName, error: String(error) });
157
+ // Cache the result
158
+ this.moduleCache.set(moduleName, {
159
+ name: moduleName,
160
+ path: modulePath,
161
+ isPackage: modulePath.endsWith('__init__.py'),
162
+ dependencies: [],
163
+ });
164
+
165
+ return modulePath;
153
166
  }
167
+ } catch (error) {
168
+ log.warn('Failed to resolve module', { moduleName, error: String(error) });
154
169
  }
155
170
 
156
- // Fallback: search in known Python paths
171
+ return null;
172
+ }
173
+
174
+ /**
175
+ * Fallback resolution: probe `<path>/<module>.py` and
176
+ * `<path>/<module>/__init__.py` across the known Python search paths.
177
+ * Returns the first existing candidate, or `null`.
178
+ */
179
+ private async resolveViaSearchPaths(moduleName: string): Promise<string | null> {
157
180
  const searchPaths = await this.getPythonSearchPaths();
158
181
 
159
182
  for (const searchPath of searchPaths) {
@@ -237,40 +260,33 @@ export class ModuleDiscovery {
237
260
  */
238
261
  parseDependenciesFromSource(source: string): string[] {
239
262
  const dependencies: string[] = [];
240
- const lines = source.split('\n');
241
263
 
242
- for (const line of lines) {
243
- const trimmed = line.trim();
244
-
245
- // Skip comments and empty lines
246
- if (trimmed.startsWith('#') || trimmed === '') {
247
- continue;
264
+ for (const line of source.split('\n')) {
265
+ const moduleName = this.extractImportedModule(line.trim());
266
+ if (moduleName) {
267
+ dependencies.push(moduleName);
248
268
  }
269
+ }
249
270
 
250
- // Match import statements
251
- const importMatch = trimmed.match(/^import\s+([a-zA-Z_][a-zA-Z0-9_\.]*)/);
252
- if (importMatch?.[1]) {
253
- const fullModuleName = importMatch[1];
254
- const moduleName = fullModuleName.split('.')[0]; // Get top-level module
255
- if (moduleName) {
256
- dependencies.push(moduleName);
257
- }
258
- continue;
259
- }
271
+ return [...new Set(dependencies)]; // Remove duplicates
272
+ }
260
273
 
261
- // Match from ... import statements
262
- const fromMatch = trimmed.match(/^from\s+([a-zA-Z_][a-zA-Z0-9_\.]*)\s+import/);
263
- if (fromMatch?.[1]) {
264
- const fullModuleName = fromMatch[1];
265
- const moduleName = fullModuleName.split('.')[0]; // Get top-level module
266
- if (moduleName) {
267
- dependencies.push(moduleName);
268
- }
269
- continue;
270
- }
274
+ /**
275
+ * Extract the top-level module name imported by a single (trimmed) source
276
+ * line, or `null` when the line is a comment, blank, or not an import.
277
+ */
278
+ private extractImportedModule(trimmed: string): string | null {
279
+ // Skip comments and empty lines
280
+ if (trimmed.startsWith('#') || trimmed === '') {
281
+ return null;
271
282
  }
272
283
 
273
- return [...new Set(dependencies)]; // Remove duplicates
284
+ // Match `import x.y.z` and `from x.y.z import ...` statements.
285
+ const match =
286
+ trimmed.match(/^import\s+([a-zA-Z_][a-zA-Z0-9_\.]*)/) ??
287
+ trimmed.match(/^from\s+([a-zA-Z_][a-zA-Z0-9_\.]*)\s+import/);
288
+
289
+ return match?.[1]?.split('.')[0] ?? null; // Get top-level module
274
290
  }
275
291
 
276
292
  /**
@@ -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