tywrap 0.4.0 → 0.5.1

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 (89) hide show
  1. package/README.md +1 -0
  2. package/dist/index.d.ts +3 -3
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +6 -6
  5. package/dist/index.js.map +1 -1
  6. package/dist/runtime/base.d.ts +7 -7
  7. package/dist/runtime/base.js +8 -8
  8. package/dist/runtime/bounded-context.d.ts +15 -31
  9. package/dist/runtime/bounded-context.d.ts.map +1 -1
  10. package/dist/runtime/bounded-context.js +16 -15
  11. package/dist/runtime/bounded-context.js.map +1 -1
  12. package/dist/runtime/http.d.ts +24 -5
  13. package/dist/runtime/http.d.ts.map +1 -1
  14. package/dist/runtime/http.js +57 -12
  15. package/dist/runtime/http.js.map +1 -1
  16. package/dist/runtime/node.d.ts +33 -7
  17. package/dist/runtime/node.d.ts.map +1 -1
  18. package/dist/runtime/node.js +139 -151
  19. package/dist/runtime/node.js.map +1 -1
  20. package/dist/runtime/pooled-transport.d.ts +2 -18
  21. package/dist/runtime/pooled-transport.d.ts.map +1 -1
  22. package/dist/runtime/pooled-transport.js +2 -29
  23. package/dist/runtime/pooled-transport.js.map +1 -1
  24. package/dist/runtime/process-io.d.ts +2 -18
  25. package/dist/runtime/process-io.d.ts.map +1 -1
  26. package/dist/runtime/process-io.js +3 -30
  27. package/dist/runtime/process-io.js.map +1 -1
  28. package/dist/runtime/pyodide-bootstrap-core.generated.d.ts +12 -0
  29. package/dist/runtime/pyodide-bootstrap-core.generated.d.ts.map +1 -0
  30. package/dist/runtime/pyodide-bootstrap-core.generated.js +12 -0
  31. package/dist/runtime/pyodide-bootstrap-core.generated.js.map +1 -0
  32. package/dist/runtime/pyodide-io.d.ts +7 -37
  33. package/dist/runtime/pyodide-io.d.ts.map +1 -1
  34. package/dist/runtime/pyodide-io.js +90 -214
  35. package/dist/runtime/pyodide-io.js.map +1 -1
  36. package/dist/runtime/pyodide.d.ts +25 -5
  37. package/dist/runtime/pyodide.d.ts.map +1 -1
  38. package/dist/runtime/pyodide.js +59 -10
  39. package/dist/runtime/pyodide.js.map +1 -1
  40. package/dist/runtime/{bridge-protocol.d.ts → rpc-client.d.ts} +59 -46
  41. package/dist/runtime/rpc-client.d.ts.map +1 -0
  42. package/dist/runtime/{bridge-protocol.js → rpc-client.js} +60 -42
  43. package/dist/runtime/rpc-client.js.map +1 -0
  44. package/dist/runtime/worker-pool.d.ts +2 -19
  45. package/dist/runtime/worker-pool.d.ts.map +1 -1
  46. package/dist/runtime/worker-pool.js +2 -30
  47. package/dist/runtime/worker-pool.js.map +1 -1
  48. package/dist/types/index.d.ts +8 -3
  49. package/dist/types/index.d.ts.map +1 -1
  50. package/dist/tywrap.d.ts.map +1 -1
  51. package/dist/tywrap.js +1 -3
  52. package/dist/tywrap.js.map +1 -1
  53. package/package.json +9 -12
  54. package/runtime/__pycache__/safe_codec.cpython-311.pyc +0 -0
  55. package/runtime/__pycache__/tywrap_bridge_core.cpython-311.pyc +0 -0
  56. package/runtime/python_bridge.py +85 -702
  57. package/runtime/safe_codec.py +10 -2
  58. package/runtime/tywrap_bridge_core.py +875 -0
  59. package/src/index.ts +6 -6
  60. package/src/runtime/base.ts +8 -8
  61. package/src/runtime/bounded-context.ts +17 -56
  62. package/src/runtime/http.ts +85 -13
  63. package/src/runtime/node.ts +165 -217
  64. package/src/runtime/pooled-transport.ts +2 -57
  65. package/src/runtime/process-io.ts +3 -55
  66. package/src/runtime/pyodide-bootstrap-core.generated.ts +12 -0
  67. package/src/runtime/pyodide-io.ts +92 -243
  68. package/src/runtime/pyodide.ts +87 -10
  69. package/src/runtime/{bridge-protocol.ts → rpc-client.ts} +76 -49
  70. package/src/runtime/worker-pool.ts +2 -58
  71. package/src/types/index.ts +20 -4
  72. package/src/tywrap.ts +1 -3
  73. package/dist/core/analyzer.d.ts +0 -64
  74. package/dist/core/analyzer.d.ts.map +0 -1
  75. package/dist/core/analyzer.js +0 -710
  76. package/dist/core/analyzer.js.map +0 -1
  77. package/dist/runtime/bridge-core.d.ts +0 -65
  78. package/dist/runtime/bridge-core.d.ts.map +0 -1
  79. package/dist/runtime/bridge-core.js +0 -379
  80. package/dist/runtime/bridge-core.js.map +0 -1
  81. package/dist/runtime/bridge-protocol.d.ts.map +0 -1
  82. package/dist/runtime/bridge-protocol.js.map +0 -1
  83. package/dist/utils/parallel-processor.d.ts +0 -146
  84. package/dist/utils/parallel-processor.d.ts.map +0 -1
  85. package/dist/utils/parallel-processor.js +0 -707
  86. package/dist/utils/parallel-processor.js.map +0 -1
  87. package/src/core/analyzer.ts +0 -824
  88. package/src/runtime/bridge-core.ts +0 -494
  89. package/src/utils/parallel-processor.ts +0 -955
@@ -1,146 +0,0 @@
1
- /**
2
- * Parallel Processing System for tywrap
3
- * High-performance parallel processing for large Python codebases
4
- */
5
- import { EventEmitter } from 'events';
6
- import type { AnalysisResult, PythonModule, GeneratedCode } from '../types/index.js';
7
- export interface ParallelTask<Data = unknown> {
8
- id: string;
9
- type: 'analyze' | 'generate' | 'validate' | 'custom';
10
- data: Data;
11
- options?: Record<string, unknown>;
12
- priority?: number;
13
- timeout?: number;
14
- }
15
- export interface ParallelResult<T = unknown> {
16
- taskId: string;
17
- success: boolean;
18
- result?: T;
19
- error?: string;
20
- duration: number;
21
- memoryUsage?: number;
22
- }
23
- export interface WorkerStats {
24
- workerId: string;
25
- tasksCompleted: number;
26
- totalTime: number;
27
- averageTime: number;
28
- errorCount: number;
29
- memoryPeak: number;
30
- isActive: boolean;
31
- }
32
- export interface ParallelProcessorOptions {
33
- maxWorkers?: number;
34
- taskTimeout?: number;
35
- retryAttempts?: number;
36
- enableMemoryMonitoring?: boolean;
37
- enableCaching?: boolean;
38
- workerScript?: string;
39
- batchSize?: number;
40
- loadBalancing?: 'round-robin' | 'least-loaded' | 'weighted';
41
- debug?: boolean;
42
- }
43
- export interface ParallelProcessorStats {
44
- activeWorkers: number;
45
- totalWorkers: number;
46
- tasksCompleted: number;
47
- totalErrors: number;
48
- averageTaskTime: number;
49
- queueLength: number;
50
- activeTasks: number;
51
- workerStats: WorkerStats[];
52
- }
53
- export declare class ParallelProcessor extends EventEmitter {
54
- private workers;
55
- private workerStats;
56
- private taskQueue;
57
- private queueInterval?;
58
- private activeTasks;
59
- private pendingResults;
60
- private roundRobinIndex;
61
- private options;
62
- private disposed;
63
- private debug;
64
- constructor(options?: ParallelProcessorOptions);
65
- private debugLog;
66
- /**
67
- * Initialize worker pool
68
- */
69
- init(): Promise<void>;
70
- /**
71
- * Process Python module analysis in parallel
72
- */
73
- analyzeModulesParallel(sources: Array<{
74
- name: string;
75
- content: string;
76
- path?: string;
77
- }>, options?: {
78
- chunkSize?: number;
79
- }): Promise<Array<ParallelResult<AnalysisResult>>>;
80
- /**
81
- * Generate TypeScript wrappers in parallel
82
- */
83
- generateWrappersParallel(modules: Array<{
84
- name: string;
85
- module: PythonModule;
86
- options?: Record<string, unknown>;
87
- }>, options?: {
88
- chunkSize?: number;
89
- }): Promise<Array<ParallelResult<GeneratedCode>>>;
90
- /**
91
- * Execute tasks in parallel with load balancing
92
- */
93
- executeTasks<Data, Result>(tasks: ParallelTask<Data>[]): Promise<Array<ParallelResult<Result>>>;
94
- /**
95
- * Execute single task
96
- */
97
- private executeTask;
98
- /**
99
- * Select optimal worker using load balancing strategy
100
- */
101
- private selectOptimalWorker;
102
- /**
103
- * Send task to specific worker
104
- */
105
- private sendTaskToWorker;
106
- /**
107
- * Spawn new worker
108
- */
109
- private spawnWorker;
110
- /**
111
- * Handle message from worker
112
- */
113
- private handleWorkerMessage;
114
- /**
115
- * Handle worker error
116
- */
117
- private handleWorkerError;
118
- /**
119
- * Handle worker exit
120
- */
121
- private handleWorkerExit;
122
- /**
123
- * Process task queue
124
- */
125
- private processQueue;
126
- /**
127
- * Get worker statistics
128
- */
129
- getWorkerStats(): WorkerStats[];
130
- /**
131
- * Get overall processing statistics
132
- */
133
- getStats(): ParallelProcessorStats;
134
- /**
135
- * Utility methods
136
- */
137
- private chunkArray;
138
- private sleep;
139
- /**
140
- * Gracefully dispose all workers
141
- */
142
- dispose(): Promise<void>;
143
- setDebug(debug: boolean): void;
144
- }
145
- export declare const globalParallelProcessor: ParallelProcessor;
146
- //# sourceMappingURL=parallel-processor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parallel-processor.d.ts","sourceRoot":"","sources":["../../src/utils/parallel-processor.ts"],"names":[],"mappings":"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"}