tywrap 0.2.0 → 0.3.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 +65 -31
- package/dist/cli.js +49 -2
- package/dist/cli.js.map +1 -1
- package/dist/config/index.d.ts +11 -7
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +43 -7
- package/dist/config/index.js.map +1 -1
- package/dist/core/analyzer.d.ts +1 -0
- package/dist/core/analyzer.d.ts.map +1 -1
- package/dist/core/analyzer.js +47 -12
- package/dist/core/analyzer.js.map +1 -1
- package/dist/core/annotation-parser.d.ts +8 -0
- package/dist/core/annotation-parser.d.ts.map +1 -0
- package/dist/core/annotation-parser.js +409 -0
- package/dist/core/annotation-parser.js.map +1 -0
- package/dist/core/discovery.d.ts +1 -0
- package/dist/core/discovery.d.ts.map +1 -1
- package/dist/core/discovery.js +9 -9
- package/dist/core/discovery.js.map +1 -1
- package/dist/core/generator.d.ts +9 -1
- package/dist/core/generator.d.ts.map +1 -1
- package/dist/core/generator.js +738 -104
- package/dist/core/generator.js.map +1 -1
- package/dist/core/mapper.d.ts +9 -7
- package/dist/core/mapper.d.ts.map +1 -1
- package/dist/core/mapper.js +129 -44
- package/dist/core/mapper.js.map +1 -1
- package/dist/index.d.ts +23 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -3
- package/dist/index.js.map +1 -1
- package/dist/runtime/base.d.ts +17 -7
- package/dist/runtime/base.d.ts.map +1 -1
- package/dist/runtime/base.js +18 -1
- package/dist/runtime/base.js.map +1 -1
- package/dist/runtime/bounded-context.d.ts +252 -0
- package/dist/runtime/bounded-context.d.ts.map +1 -0
- package/dist/runtime/bounded-context.js +454 -0
- package/dist/runtime/bounded-context.js.map +1 -0
- package/dist/runtime/bridge-core.d.ts +1 -0
- package/dist/runtime/bridge-core.d.ts.map +1 -1
- package/dist/runtime/bridge-core.js +52 -17
- package/dist/runtime/bridge-core.js.map +1 -1
- package/dist/runtime/bridge-protocol.d.ts +184 -0
- package/dist/runtime/bridge-protocol.d.ts.map +1 -0
- package/dist/runtime/bridge-protocol.js +344 -0
- package/dist/runtime/bridge-protocol.js.map +1 -0
- package/dist/runtime/disposable.d.ts +40 -0
- package/dist/runtime/disposable.d.ts.map +1 -0
- package/dist/runtime/disposable.js +49 -0
- package/dist/runtime/disposable.js.map +1 -0
- package/dist/runtime/errors.d.ts +10 -0
- package/dist/runtime/errors.d.ts.map +1 -1
- package/dist/runtime/errors.js +9 -0
- package/dist/runtime/errors.js.map +1 -1
- package/dist/runtime/http-io.d.ts +91 -0
- package/dist/runtime/http-io.d.ts.map +1 -0
- package/dist/runtime/http-io.js +195 -0
- package/dist/runtime/http-io.js.map +1 -0
- package/dist/runtime/http.d.ts +48 -13
- package/dist/runtime/http.d.ts.map +1 -1
- package/dist/runtime/http.js +60 -73
- package/dist/runtime/http.js.map +1 -1
- package/dist/runtime/node.d.ts +97 -130
- package/dist/runtime/node.d.ts.map +1 -1
- package/dist/runtime/node.js +392 -521
- package/dist/runtime/node.js.map +1 -1
- package/dist/runtime/optimized-node.d.ts +1 -1
- package/dist/runtime/optimized-node.d.ts.map +1 -1
- package/dist/runtime/optimized-node.js +1 -1
- package/dist/runtime/optimized-node.js.map +1 -1
- package/dist/runtime/pooled-transport.d.ts +135 -0
- package/dist/runtime/pooled-transport.d.ts.map +1 -0
- package/dist/runtime/pooled-transport.js +177 -0
- package/dist/runtime/pooled-transport.js.map +1 -0
- package/dist/runtime/process-io.d.ts +209 -0
- package/dist/runtime/process-io.d.ts.map +1 -0
- package/dist/runtime/process-io.js +729 -0
- package/dist/runtime/process-io.js.map +1 -0
- package/dist/runtime/pyodide-io.d.ts +154 -0
- package/dist/runtime/pyodide-io.d.ts.map +1 -0
- package/dist/runtime/pyodide-io.js +459 -0
- package/dist/runtime/pyodide-io.js.map +1 -0
- package/dist/runtime/pyodide.d.ts +51 -19
- package/dist/runtime/pyodide.d.ts.map +1 -1
- package/dist/runtime/pyodide.js +57 -186
- package/dist/runtime/pyodide.js.map +1 -1
- package/dist/runtime/safe-codec.d.ts +103 -0
- package/dist/runtime/safe-codec.d.ts.map +1 -0
- package/dist/runtime/safe-codec.js +519 -0
- package/dist/runtime/safe-codec.js.map +1 -0
- package/dist/runtime/transport.d.ts +191 -0
- package/dist/runtime/transport.d.ts.map +1 -0
- package/dist/runtime/transport.js +86 -0
- package/dist/runtime/transport.js.map +1 -0
- package/dist/runtime/validators.d.ts +120 -0
- package/dist/runtime/validators.d.ts.map +1 -0
- package/dist/runtime/validators.js +229 -0
- package/dist/runtime/validators.js.map +1 -0
- package/dist/runtime/worker-pool.d.ts +208 -0
- package/dist/runtime/worker-pool.d.ts.map +1 -0
- package/dist/runtime/worker-pool.js +419 -0
- package/dist/runtime/worker-pool.js.map +1 -0
- package/dist/types/index.d.ts +51 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/tywrap.d.ts.map +1 -1
- package/dist/tywrap.js +227 -328
- package/dist/tywrap.js.map +1 -1
- package/dist/utils/cache.d.ts.map +1 -1
- package/dist/utils/cache.js +53 -5
- package/dist/utils/cache.js.map +1 -1
- package/dist/utils/codec.d.ts.map +1 -1
- package/dist/utils/codec.js +114 -1
- package/dist/utils/codec.js.map +1 -1
- package/dist/utils/ir-cache.d.ts +28 -0
- package/dist/utils/ir-cache.d.ts.map +1 -0
- package/dist/utils/ir-cache.js +29 -0
- package/dist/utils/ir-cache.js.map +1 -0
- package/dist/utils/parallel-processor.d.ts +1 -1
- package/dist/utils/parallel-processor.d.ts.map +1 -1
- package/dist/utils/parallel-processor.js +111 -40
- package/dist/utils/parallel-processor.js.map +1 -1
- package/dist/utils/runtime.d.ts +5 -1
- package/dist/utils/runtime.d.ts.map +1 -1
- package/dist/utils/runtime.js +112 -18
- package/dist/utils/runtime.js.map +1 -1
- package/package.json +40 -18
- package/runtime/python_bridge.py +108 -15
- package/runtime/safe_codec.py +344 -0
- package/src/cli.ts +61 -2
- package/src/config/index.ts +63 -17
- package/src/core/analyzer.ts +52 -15
- package/src/core/annotation-parser.ts +500 -0
- package/src/core/discovery.ts +26 -12
- package/src/core/generator.ts +956 -116
- package/src/core/mapper.ts +158 -51
- package/src/index.ts +78 -6
- package/src/runtime/base.ts +18 -26
- package/src/runtime/bounded-context.ts +608 -0
- package/src/runtime/bridge-core.ts +58 -18
- package/src/runtime/bridge-protocol.ts +483 -0
- package/src/runtime/disposable.ts +65 -0
- package/src/runtime/errors.ts +14 -0
- package/src/runtime/http-io.ts +245 -0
- package/src/runtime/http.ts +76 -115
- package/src/runtime/node.ts +563 -676
- package/src/runtime/optimized-node.ts +4 -1
- package/src/runtime/pooled-transport.ts +263 -0
- package/src/runtime/process-io.ts +930 -0
- package/src/runtime/pyodide-io.ts +551 -0
- package/src/runtime/pyodide.ts +75 -215
- package/src/runtime/safe-codec.ts +651 -0
- package/src/runtime/transport.ts +278 -0
- package/src/runtime/validators.ts +252 -0
- package/src/runtime/worker-pool.ts +559 -0
- package/src/types/global.d.ts +11 -1
- package/src/types/index.ts +63 -0
- package/src/tywrap.ts +279 -358
- package/src/utils/cache.ts +59 -5
- package/src/utils/codec.ts +122 -1
- package/src/utils/ir-cache.ts +51 -0
- package/src/utils/parallel-processor.ts +119 -43
- package/src/utils/runtime.ts +129 -18
package/src/types/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ export interface PythonModule {
|
|
|
8
8
|
version?: string;
|
|
9
9
|
functions: PythonFunction[];
|
|
10
10
|
classes: PythonClass[];
|
|
11
|
+
typeAliases?: PythonTypeAlias[];
|
|
11
12
|
imports: PythonImport[];
|
|
12
13
|
exports: string[];
|
|
13
14
|
}
|
|
@@ -19,6 +20,7 @@ export interface PythonFunction {
|
|
|
19
20
|
decorators: string[];
|
|
20
21
|
isAsync: boolean;
|
|
21
22
|
isGenerator: boolean;
|
|
23
|
+
typeParameters?: PythonGenericParameter[];
|
|
22
24
|
returnType: PythonType;
|
|
23
25
|
parameters: Parameter[];
|
|
24
26
|
}
|
|
@@ -31,6 +33,23 @@ export interface PythonClass {
|
|
|
31
33
|
docstring?: string;
|
|
32
34
|
decorators: string[];
|
|
33
35
|
kind?: 'class' | 'protocol' | 'typed_dict' | 'namedtuple' | 'dataclass' | 'pydantic';
|
|
36
|
+
typeParameters?: PythonGenericParameter[];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface PythonTypeAlias {
|
|
40
|
+
name: string;
|
|
41
|
+
type: PythonType;
|
|
42
|
+
typeParameters?: PythonGenericParameter[];
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export type PythonGenericParameterKind = 'typevar' | 'paramspec' | 'typevartuple';
|
|
46
|
+
|
|
47
|
+
export interface PythonGenericParameter {
|
|
48
|
+
name: string;
|
|
49
|
+
kind: PythonGenericParameterKind;
|
|
50
|
+
bound?: PythonType;
|
|
51
|
+
constraints?: PythonType[];
|
|
52
|
+
variance?: 'covariant' | 'contravariant' | 'invariant';
|
|
34
53
|
}
|
|
35
54
|
|
|
36
55
|
export interface PythonImport {
|
|
@@ -47,12 +66,15 @@ export interface Parameter {
|
|
|
47
66
|
defaultValue?: unknown;
|
|
48
67
|
varArgs: boolean;
|
|
49
68
|
kwArgs: boolean;
|
|
69
|
+
positionalOnly?: boolean;
|
|
70
|
+
keywordOnly?: boolean;
|
|
50
71
|
}
|
|
51
72
|
|
|
52
73
|
export interface Property {
|
|
53
74
|
name: string;
|
|
54
75
|
type: PythonType;
|
|
55
76
|
readonly: boolean;
|
|
77
|
+
optional?: boolean;
|
|
56
78
|
setter?: boolean;
|
|
57
79
|
getter?: boolean;
|
|
58
80
|
}
|
|
@@ -76,6 +98,11 @@ export type PythonType =
|
|
|
76
98
|
| AnnotatedType
|
|
77
99
|
| CustomType
|
|
78
100
|
| TypeVarType
|
|
101
|
+
| ParamSpecType
|
|
102
|
+
| ParamSpecArgsType
|
|
103
|
+
| ParamSpecKwargsType
|
|
104
|
+
| TypeVarTupleType
|
|
105
|
+
| UnpackType
|
|
79
106
|
| FinalType
|
|
80
107
|
| ClassVarType;
|
|
81
108
|
|
|
@@ -103,6 +130,7 @@ export interface OptionalType {
|
|
|
103
130
|
export interface GenericType {
|
|
104
131
|
kind: 'generic';
|
|
105
132
|
name: string;
|
|
133
|
+
module?: string;
|
|
106
134
|
typeArgs: PythonType[];
|
|
107
135
|
}
|
|
108
136
|
|
|
@@ -115,6 +143,7 @@ export interface CustomType {
|
|
|
115
143
|
export interface CallableType {
|
|
116
144
|
kind: 'callable';
|
|
117
145
|
parameters: PythonType[];
|
|
146
|
+
parameterSpec?: ParamSpecType;
|
|
118
147
|
returnType: PythonType;
|
|
119
148
|
}
|
|
120
149
|
|
|
@@ -137,6 +166,31 @@ export interface TypeVarType {
|
|
|
137
166
|
variance?: 'covariant' | 'contravariant' | 'invariant';
|
|
138
167
|
}
|
|
139
168
|
|
|
169
|
+
export interface ParamSpecType {
|
|
170
|
+
kind: 'paramspec';
|
|
171
|
+
name: string;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export interface ParamSpecArgsType {
|
|
175
|
+
kind: 'paramspec_args';
|
|
176
|
+
name: string;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
export interface ParamSpecKwargsType {
|
|
180
|
+
kind: 'paramspec_kwargs';
|
|
181
|
+
name: string;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export interface TypeVarTupleType {
|
|
185
|
+
kind: 'typevartuple';
|
|
186
|
+
name: string;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
export interface UnpackType {
|
|
190
|
+
kind: 'unpack';
|
|
191
|
+
type: PythonType;
|
|
192
|
+
}
|
|
193
|
+
|
|
140
194
|
export interface FinalType {
|
|
141
195
|
kind: 'final';
|
|
142
196
|
type: PythonType;
|
|
@@ -242,6 +296,11 @@ export type RuntimeStrategy = 'pyodide' | 'node' | 'http' | 'auto';
|
|
|
242
296
|
|
|
243
297
|
export interface TywrapOptions {
|
|
244
298
|
pythonModules: Record<string, PythonModuleConfig>;
|
|
299
|
+
/**
|
|
300
|
+
* Additional Python import paths to prepend to PYTHONPATH during code generation
|
|
301
|
+
* and discovery (IR extraction). Useful for local modules not installed in site-packages.
|
|
302
|
+
*/
|
|
303
|
+
pythonImportPath?: string[];
|
|
245
304
|
output: OutputConfig;
|
|
246
305
|
runtime: RuntimeConfig;
|
|
247
306
|
performance: PerformanceConfig;
|
|
@@ -255,6 +314,10 @@ export interface PythonModuleConfig {
|
|
|
255
314
|
runtime: RuntimeStrategy;
|
|
256
315
|
functions?: string[];
|
|
257
316
|
classes?: string[];
|
|
317
|
+
/** Exclude specific exports by exact name. */
|
|
318
|
+
exclude?: string[];
|
|
319
|
+
/** Exclude exports matching one or more regex patterns (JavaScript RegExp source). */
|
|
320
|
+
excludePatterns?: string[];
|
|
258
321
|
alias?: string;
|
|
259
322
|
typeHints: 'strict' | 'loose' | 'ignore';
|
|
260
323
|
watch?: boolean;
|