@typespec/http-client-python 0.31.0 → 0.32.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 (45) hide show
  1. package/dist/emitter/emitter.d.ts.map +1 -1
  2. package/dist/emitter/emitter.js +10 -167
  3. package/dist/emitter/emitter.js.map +1 -1
  4. package/dist/emitter/node-runner.browser.d.ts +12 -0
  5. package/dist/emitter/node-runner.browser.d.ts.map +1 -0
  6. package/dist/emitter/node-runner.browser.js +16 -0
  7. package/dist/emitter/node-runner.browser.js.map +1 -0
  8. package/dist/emitter/node-runner.d.ts +12 -0
  9. package/dist/emitter/node-runner.d.ts.map +1 -0
  10. package/dist/emitter/node-runner.js +180 -0
  11. package/dist/emitter/node-runner.js.map +1 -0
  12. package/dist/emitter/pyodide-loader.browser.d.ts +12 -0
  13. package/dist/emitter/pyodide-loader.browser.d.ts.map +1 -0
  14. package/dist/emitter/pyodide-loader.browser.js +33 -0
  15. package/dist/emitter/pyodide-loader.browser.js.map +1 -0
  16. package/dist/emitter/pyodide-loader.d.ts +3 -0
  17. package/dist/emitter/pyodide-loader.d.ts.map +1 -0
  18. package/dist/emitter/pyodide-loader.js +6 -0
  19. package/dist/emitter/pyodide-loader.js.map +1 -0
  20. package/dist/emitter/types.d.ts.map +1 -1
  21. package/dist/emitter/types.js +7 -0
  22. package/dist/emitter/types.js.map +1 -1
  23. package/emitter/src/emitter.ts +9 -188
  24. package/emitter/src/node-runner.browser.ts +33 -0
  25. package/emitter/src/node-runner.ts +220 -0
  26. package/emitter/src/pyodide-loader.browser.ts +49 -0
  27. package/emitter/src/pyodide-loader.ts +6 -0
  28. package/emitter/src/types.ts +7 -0
  29. package/emitter/temp/tsconfig.tsbuildinfo +1 -1
  30. package/eng/scripts/ci/regenerate-common.ts +2 -5
  31. package/eng/scripts/setup/__pycache__/package_manager.cpython-311.pyc +0 -0
  32. package/eng/scripts/setup/__pycache__/venvtools.cpython-311.pyc +0 -0
  33. package/generator/build/lib/pygen/codegen/models/primitive_types.py +15 -1
  34. package/generator/build/lib/pygen/codegen/models/utils.py +13 -3
  35. package/generator/build/lib/pygen/codegen/serializers/builder_serializer.py +9 -2
  36. package/generator/build/lib/pygen/codegen/templates/model_base.py.jinja2 +34 -1
  37. package/generator/build/lib/pygen/codegen/templates/serialization.py.jinja2 +109 -0
  38. package/generator/component-detection-pip-report.json +2 -2
  39. package/generator/dist/pygen-0.1.0-py3-none-any.whl +0 -0
  40. package/generator/pygen/codegen/models/primitive_types.py +15 -1
  41. package/generator/pygen/codegen/models/utils.py +13 -3
  42. package/generator/pygen/codegen/serializers/builder_serializer.py +9 -2
  43. package/generator/pygen/codegen/templates/model_base.py.jinja2 +34 -1
  44. package/generator/pygen/codegen/templates/serialization.py.jinja2 +109 -0
  45. package/package.json +35 -31
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../emitter/src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../emitter/src/types.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,17 @@
1
1
  import { createSdkContext } from "@azure-tools/typespec-client-generator-core";
2
2
  import { EmitContext, emitFile, joinPaths, NoTarget } from "@typespec/compiler";
3
- import { execSync } from "child_process";
4
- import fs from "fs";
5
3
  import jsyaml from "js-yaml";
6
- import os from "os";
7
- import path, { dirname } from "path";
8
- import { loadPyodide, PyodideInterface } from "pyodide";
9
- import { fileURLToPath } from "url";
10
4
  import pkgJson from "../../package.json" with { type: "json" };
11
5
  import { emitCodeModel } from "./code-model.js";
12
6
  import {
13
- blackExcludeDirs,
14
7
  BLOB_STORAGE_BASE_URL,
15
8
  PACKAGE_NAME,
16
9
  PYGEN_WHEEL_FILENAME,
17
10
  PYODIDE_VERSION,
18
11
  } from "./constants.js";
19
- import { saveCodeModelAsYaml } from "./external-process.js";
20
12
  import { PythonEmitterOptions, PythonSdkContext, reportDiagnostic } from "./lib.js";
21
- import { runPython3 } from "./run-python3.js";
13
+ import { runNodeEmit } from "./node-runner.js";
14
+ import { loadPyodide, PyodideInterface } from "./pyodide-loader.js";
22
15
  import { getRootNamespace, md2Rst } from "./utils.js";
23
16
 
24
17
  function getBrowserPygenWheelUrl(): string {
@@ -193,7 +186,6 @@ async function onEmitMain(context: EmitContext<PythonEmitterOptions>) {
193
186
  const program = context.program;
194
187
  const sdkContext = await createPythonSdkContext(context);
195
188
 
196
- const outputDir = context.emitterOutputDir;
197
189
  addDefaultOptions(sdkContext);
198
190
  const yamlMap = emitCodeModel(sdkContext);
199
191
  const parsedYamlMap = walkThroughNodes(yamlMap);
@@ -255,83 +247,13 @@ async function onEmitMain(context: EmitContext<PythonEmitterOptions>) {
255
247
  await runPyodideGeneration(pyodide, "/output", yamlFilePath, commandArgs);
256
248
  await copyPyodideOutputToHost(context, pyodide, "/output");
257
249
  } else {
258
- const root = path.join(dirname(fileURLToPath(import.meta.url)), "..", "..");
259
- const yamlPath = await saveCodeModelAsYaml("python-yaml-path", parsedYamlMap);
260
-
261
- if (!program.compilerOptions.noEmit && !program.hasError()) {
262
- // If emit-yaml-only mode, just copy YAML to output dir for batch processing
263
- if (resolvedOptions["emit-yaml-only"]) {
264
- if (!fs.existsSync(outputDir)) {
265
- fs.mkdirSync(outputDir, { recursive: true });
266
- }
267
- // Copy YAML to output dir with command args embedded
268
- // Use unique filename to avoid conflicts when multiple specs share output dir
269
- const configId = path.basename(yamlPath, ".yaml");
270
- const batchConfig = { yamlPath, commandArgs, outputDir };
271
- fs.writeFileSync(
272
- path.join(outputDir, `.tsp-codegen-${configId}.json`),
273
- JSON.stringify(batchConfig, null, 2),
274
- );
275
- return;
276
- }
277
- // if not using pyodide and there's no venv, we try to create venv
278
- if (!resolvedOptions["use-pyodide"] && !fs.existsSync(path.join(root, "venv"))) {
279
- try {
280
- await runPython3(path.join(root, "/eng/scripts/setup/install.py"));
281
- await runPython3(path.join(root, "/eng/scripts/setup/prepare.py"));
282
- } catch {
283
- // if the python env is not ready, we use pyodide instead
284
- resolvedOptions["use-pyodide"] = true;
285
- }
286
- }
287
-
288
- if (resolvedOptions["use-pyodide"]) {
289
- // here we run with pyodide
290
- const pyodide = await setupPyodideCall(root);
291
- // create the output folder if not exists
292
- if (!fs.existsSync(outputDir)) {
293
- fs.mkdirSync(outputDir, { recursive: true });
294
- }
295
- // mount output folder to pyodide
296
- pyodide.FS.mkdirTree("/output");
297
- pyodide.FS.mount(pyodide.FS.filesystems.NODEFS, { root: outputDir }, "/output");
298
- // mount yaml file to pyodide
299
- pyodide.FS.mkdirTree("/yaml");
300
- pyodide.FS.mount(pyodide.FS.filesystems.NODEFS, { root: path.dirname(yamlPath) }, "/yaml");
301
- await runPyodideGeneration(
302
- pyodide,
303
- "/output",
304
- `/yaml/${path.basename(yamlPath)}`,
305
- commandArgs,
306
- );
307
- } else {
308
- // here we run with native python
309
- let venvPath = path.join(root, "venv");
310
- if (fs.existsSync(path.join(venvPath, "bin"))) {
311
- venvPath = path.join(venvPath, "bin", "python");
312
- } else if (fs.existsSync(path.join(venvPath, "Scripts"))) {
313
- venvPath = path.join(venvPath, "Scripts", "python.exe");
314
- } else {
315
- reportDiagnostic(program, {
316
- code: "pyodide-flag-conflict",
317
- target: NoTarget,
318
- });
319
- }
320
- commandArgs["output-folder"] = outputDir;
321
- commandArgs["tsp-file"] = yamlPath;
322
- const commandFlags = Object.entries(commandArgs)
323
- .map(([key, value]) => `--${key}=${value}`)
324
- .join(" ");
325
- const command = `${venvPath} ${root}/eng/scripts/setup/run_tsp.py ${commandFlags}`;
326
- execSync(command);
327
-
328
- const excludePattern = blackExcludeDirs.join("|");
329
- execSync(
330
- `${venvPath} -m black --line-length=120 --quiet --fast ${outputDir} --exclude "${excludePattern}"`,
331
- );
332
- await checkForPylintIssues(outputDir, excludePattern);
333
- }
334
- }
250
+ await runNodeEmit({
251
+ context,
252
+ parsedYamlMap,
253
+ commandArgs,
254
+ resolvedOptions,
255
+ runPyodideGeneration,
256
+ });
335
257
  }
336
258
  }
337
259
 
@@ -367,104 +289,3 @@ async function setupPyodideCallBrowser() {
367
289
 
368
290
  return pyodide;
369
291
  }
370
-
371
- async function setupPyodideCall(root: string) {
372
- const pyodide = await loadPyodide({
373
- indexURL: path.dirname(fileURLToPath(import.meta.resolve("pyodide"))),
374
- });
375
- const micropipLockPath = path.join(root, "micropip.lock");
376
- while (true) {
377
- if (fs.existsSync(micropipLockPath)) {
378
- try {
379
- const stats = fs.statSync(micropipLockPath);
380
- const now = new Date().getTime();
381
- const lockAge = (now - stats.mtime.getTime()) / 1000;
382
- if (lockAge > 300) {
383
- fs.unlinkSync(micropipLockPath);
384
- }
385
- } catch {
386
- // ignore
387
- }
388
- }
389
- try {
390
- const fd = fs.openSync(micropipLockPath, "wx");
391
- // mount generator to pyodide
392
- pyodide.FS.mkdirTree("/generator");
393
- pyodide.FS.mount(
394
- pyodide.FS.filesystems.NODEFS,
395
- { root: path.join(root, "generator") },
396
- "/generator",
397
- );
398
- await pyodide.loadPackage("micropip");
399
- const micropip = pyodide.pyimport("micropip");
400
- await micropip.install(`emfs:/generator/dist/${PYGEN_WHEEL_FILENAME}`);
401
- fs.closeSync(fd);
402
- fs.unlinkSync(micropipLockPath);
403
- break;
404
- } catch {
405
- await new Promise((resolve) => setTimeout(resolve, 1000));
406
- }
407
- }
408
- return pyodide;
409
- }
410
-
411
- async function checkForPylintIssues(outputDir: string, excludePattern: string) {
412
- const excludeRegex = new RegExp(excludePattern);
413
-
414
- const shouldExcludePath = (filePath: string): boolean => {
415
- const relativePath = path.relative(outputDir, filePath);
416
- const normalizedPath = relativePath.replace(/\\/g, "/");
417
- return excludeRegex.test(normalizedPath);
418
- };
419
-
420
- const processFile = async (filePath: string) => {
421
- let fileContent = await fs.promises.readFile(filePath, "utf-8");
422
- const pylintDisables: string[] = [];
423
- const lineEnding = fileContent.includes("\r\n") && os.platform() === "win32" ? "\r\n" : "\n";
424
- const lines: string[] = fileContent.split(lineEnding);
425
- if (lines.length > 0) {
426
- if (!lines[0].includes("line-too-long") && lines.some((line) => line.length > 120)) {
427
- pylintDisables.push("line-too-long", "useless-suppression");
428
- }
429
- if (!lines[0].includes("too-many-lines") && lines.length > 1000) {
430
- pylintDisables.push("too-many-lines");
431
- }
432
- if (pylintDisables.length > 0) {
433
- fileContent = lines[0].includes("pylint: disable=")
434
- ? [lines[0] + "," + pylintDisables.join(",")].concat(lines.slice(1)).join(lineEnding)
435
- : `# pylint: disable=${pylintDisables.join(",")}${lineEnding}` + fileContent;
436
- await fs.promises.writeFile(filePath, fileContent);
437
- }
438
- }
439
- };
440
-
441
- const collectPythonFiles = async (dir: string): Promise<string[]> => {
442
- if (shouldExcludePath(dir)) {
443
- return [];
444
- }
445
-
446
- const entries = await fs.promises.readdir(dir, { withFileTypes: true });
447
-
448
- const promises = entries.map(async (entry) => {
449
- const filePath = path.join(dir, entry.name);
450
-
451
- if (shouldExcludePath(filePath)) {
452
- return [];
453
- }
454
-
455
- if (entry.isDirectory()) {
456
- return collectPythonFiles(filePath);
457
- } else if (entry.name.endsWith(".py")) {
458
- return [filePath];
459
- }
460
- return [];
461
- });
462
-
463
- const results = await Promise.all(promises);
464
- return results.flat();
465
- };
466
-
467
- // Collect all Python files first, then process in parallel
468
- const pythonFiles = await collectPythonFiles(outputDir);
469
- await Promise.all(pythonFiles.map(processFile));
470
- }
@@ -0,0 +1,33 @@
1
+ // Browser stub for `node-runner.ts`. Swapped in via the `"browser"` field in
2
+ // `package.json`. The emitter's browser flow short-circuits before reaching
3
+ // `runNodeEmit`, so this stub is defense-in-depth — if it does get called,
4
+ // surface a clear diagnostic rather than a cryptic missing-module error.
5
+
6
+ import type { EmitContext } from "@typespec/compiler";
7
+ import { NoTarget } from "@typespec/compiler";
8
+ import type { PyodideInterface } from "pyodide";
9
+ import { PythonEmitterOptions, reportDiagnostic } from "./lib.js";
10
+
11
+ export interface RunNodeEmitArgs {
12
+ context: EmitContext<PythonEmitterOptions>;
13
+ parsedYamlMap: Record<string, any>;
14
+ commandArgs: Record<string, string>;
15
+ resolvedOptions: PythonEmitterOptions;
16
+ runPyodideGeneration: (
17
+ pyodide: PyodideInterface,
18
+ outputFolder: string,
19
+ yamlFile: string,
20
+ commandArgs: Record<string, string>,
21
+ ) => Promise<void>;
22
+ }
23
+
24
+ export async function runNodeEmit({ context }: RunNodeEmitArgs): Promise<void> {
25
+ reportDiagnostic(context.program, {
26
+ code: "browser-runtime-load-failed",
27
+ target: NoTarget,
28
+ format: {
29
+ details:
30
+ "Native Python execution is not supported in the browser; the emitter must run in the in-browser Pyodide branch.",
31
+ },
32
+ });
33
+ }
@@ -0,0 +1,220 @@
1
+ // Node-only execution path for the Python emitter.
2
+ //
3
+ // All direct usage of Node built-ins (`fs`, `os`, `path`, `url`, `child_process`)
4
+ // lives here so that the emitter entry can be bundled for the browser. A sibling
5
+ // `node-runner.browser.ts` stub is swapped in via the `"browser"` field in
6
+ // `package.json` when bundling with `platform: "browser"`.
7
+
8
+ import { EmitContext, NoTarget } from "@typespec/compiler";
9
+ import { execSync } from "child_process";
10
+ import fs from "fs";
11
+ import os from "os";
12
+ import path, { dirname } from "path";
13
+ import { loadPyodide, PyodideInterface } from "pyodide";
14
+ import { fileURLToPath } from "url";
15
+ import { blackExcludeDirs, PYGEN_WHEEL_FILENAME } from "./constants.js";
16
+ import { saveCodeModelAsYaml } from "./external-process.js";
17
+ import { PythonEmitterOptions, reportDiagnostic } from "./lib.js";
18
+ import { runPython3 } from "./run-python3.js";
19
+
20
+ export interface RunNodeEmitArgs {
21
+ context: EmitContext<PythonEmitterOptions>;
22
+ parsedYamlMap: Record<string, any>;
23
+ commandArgs: Record<string, string>;
24
+ resolvedOptions: PythonEmitterOptions;
25
+ runPyodideGeneration: (
26
+ pyodide: PyodideInterface,
27
+ outputFolder: string,
28
+ yamlFile: string,
29
+ commandArgs: Record<string, string>,
30
+ ) => Promise<void>;
31
+ }
32
+
33
+ export async function runNodeEmit({
34
+ context,
35
+ parsedYamlMap,
36
+ commandArgs,
37
+ resolvedOptions,
38
+ runPyodideGeneration,
39
+ }: RunNodeEmitArgs): Promise<void> {
40
+ const program = context.program;
41
+ const outputDir = context.emitterOutputDir;
42
+ const root = path.join(dirname(fileURLToPath(import.meta.url)), "..", "..");
43
+ const yamlPath = await saveCodeModelAsYaml("python-yaml-path", parsedYamlMap);
44
+
45
+ if (program.compilerOptions.noEmit || program.hasError()) {
46
+ return;
47
+ }
48
+
49
+ // If emit-yaml-only mode, just copy YAML to output dir for batch processing
50
+ if (resolvedOptions["emit-yaml-only"]) {
51
+ if (!fs.existsSync(outputDir)) {
52
+ fs.mkdirSync(outputDir, { recursive: true });
53
+ }
54
+ // Copy YAML to output dir with command args embedded
55
+ // Use unique filename to avoid conflicts when multiple specs share output dir
56
+ const configId = path.basename(yamlPath, ".yaml");
57
+ const batchConfig = { yamlPath, commandArgs, outputDir };
58
+ fs.writeFileSync(
59
+ path.join(outputDir, `.tsp-codegen-${configId}.json`),
60
+ JSON.stringify(batchConfig, null, 2),
61
+ );
62
+ return;
63
+ }
64
+
65
+ // if not using pyodide and there's no venv, we try to create venv
66
+ if (!resolvedOptions["use-pyodide"] && !fs.existsSync(path.join(root, "venv"))) {
67
+ try {
68
+ await runPython3(path.join(root, "/eng/scripts/setup/install.py"));
69
+ await runPython3(path.join(root, "/eng/scripts/setup/prepare.py"));
70
+ } catch {
71
+ // if the python env is not ready, we use pyodide instead
72
+ resolvedOptions["use-pyodide"] = true;
73
+ }
74
+ }
75
+
76
+ if (resolvedOptions["use-pyodide"]) {
77
+ // here we run with pyodide
78
+ const pyodide = await setupPyodideCall(root);
79
+ // create the output folder if not exists
80
+ if (!fs.existsSync(outputDir)) {
81
+ fs.mkdirSync(outputDir, { recursive: true });
82
+ }
83
+ // mount output folder to pyodide
84
+ pyodide.FS.mkdirTree("/output");
85
+ pyodide.FS.mount(pyodide.FS.filesystems.NODEFS, { root: outputDir }, "/output");
86
+ // mount yaml file to pyodide
87
+ pyodide.FS.mkdirTree("/yaml");
88
+ pyodide.FS.mount(pyodide.FS.filesystems.NODEFS, { root: path.dirname(yamlPath) }, "/yaml");
89
+ await runPyodideGeneration(pyodide, "/output", `/yaml/${path.basename(yamlPath)}`, commandArgs);
90
+ return;
91
+ }
92
+
93
+ // here we run with native python
94
+ let venvPath = path.join(root, "venv");
95
+ if (fs.existsSync(path.join(venvPath, "bin"))) {
96
+ venvPath = path.join(venvPath, "bin", "python");
97
+ } else if (fs.existsSync(path.join(venvPath, "Scripts"))) {
98
+ venvPath = path.join(venvPath, "Scripts", "python.exe");
99
+ } else {
100
+ reportDiagnostic(program, {
101
+ code: "pyodide-flag-conflict",
102
+ target: NoTarget,
103
+ });
104
+ return;
105
+ }
106
+ commandArgs["output-folder"] = outputDir;
107
+ commandArgs["tsp-file"] = yamlPath;
108
+ const commandFlags = Object.entries(commandArgs)
109
+ .map(([key, value]) => `--${key}=${value}`)
110
+ .join(" ");
111
+ const command = `${venvPath} ${root}/eng/scripts/setup/run_tsp.py ${commandFlags}`;
112
+ execSync(command);
113
+
114
+ const excludePattern = blackExcludeDirs.join("|");
115
+ execSync(
116
+ `${venvPath} -m black --line-length=120 --quiet --fast ${outputDir} --exclude "${excludePattern}"`,
117
+ );
118
+ await checkForPylintIssues(outputDir, excludePattern);
119
+ }
120
+
121
+ async function setupPyodideCall(root: string): Promise<PyodideInterface> {
122
+ const pyodide = await loadPyodide({
123
+ indexURL: path.dirname(fileURLToPath(import.meta.resolve("pyodide"))),
124
+ });
125
+ const micropipLockPath = path.join(root, "micropip.lock");
126
+ while (true) {
127
+ if (fs.existsSync(micropipLockPath)) {
128
+ try {
129
+ const stats = fs.statSync(micropipLockPath);
130
+ const now = new Date().getTime();
131
+ const lockAge = (now - stats.mtime.getTime()) / 1000;
132
+ if (lockAge > 300) {
133
+ fs.unlinkSync(micropipLockPath);
134
+ }
135
+ } catch {
136
+ // ignore
137
+ }
138
+ }
139
+ try {
140
+ const fd = fs.openSync(micropipLockPath, "wx");
141
+ // mount generator to pyodide
142
+ pyodide.FS.mkdirTree("/generator");
143
+ pyodide.FS.mount(
144
+ pyodide.FS.filesystems.NODEFS,
145
+ { root: path.join(root, "generator") },
146
+ "/generator",
147
+ );
148
+ await pyodide.loadPackage("micropip");
149
+ const micropip = pyodide.pyimport("micropip");
150
+ await micropip.install(`emfs:/generator/dist/${PYGEN_WHEEL_FILENAME}`);
151
+ fs.closeSync(fd);
152
+ fs.unlinkSync(micropipLockPath);
153
+ break;
154
+ } catch {
155
+ await new Promise((resolve) => setTimeout(resolve, 1000));
156
+ }
157
+ }
158
+ return pyodide;
159
+ }
160
+
161
+ async function checkForPylintIssues(outputDir: string, excludePattern: string) {
162
+ const excludeRegex = new RegExp(excludePattern);
163
+
164
+ const shouldExcludePath = (filePath: string): boolean => {
165
+ const relativePath = path.relative(outputDir, filePath);
166
+ const normalizedPath = relativePath.replace(/\\/g, "/");
167
+ return excludeRegex.test(normalizedPath);
168
+ };
169
+
170
+ const processFile = async (filePath: string) => {
171
+ let fileContent = await fs.promises.readFile(filePath, "utf-8");
172
+ const pylintDisables: string[] = [];
173
+ const lineEnding = fileContent.includes("\r\n") && os.platform() === "win32" ? "\r\n" : "\n";
174
+ const lines: string[] = fileContent.split(lineEnding);
175
+ if (lines.length > 0) {
176
+ if (!lines[0].includes("line-too-long") && lines.some((line) => line.length > 120)) {
177
+ pylintDisables.push("line-too-long", "useless-suppression");
178
+ }
179
+ if (!lines[0].includes("too-many-lines") && lines.length > 1000) {
180
+ pylintDisables.push("too-many-lines");
181
+ }
182
+ if (pylintDisables.length > 0) {
183
+ fileContent = lines[0].includes("pylint: disable=")
184
+ ? [lines[0] + "," + pylintDisables.join(",")].concat(lines.slice(1)).join(lineEnding)
185
+ : `# pylint: disable=${pylintDisables.join(",")}${lineEnding}` + fileContent;
186
+ await fs.promises.writeFile(filePath, fileContent);
187
+ }
188
+ }
189
+ };
190
+
191
+ const collectPythonFiles = async (dir: string): Promise<string[]> => {
192
+ if (shouldExcludePath(dir)) {
193
+ return [];
194
+ }
195
+
196
+ const entries = await fs.promises.readdir(dir, { withFileTypes: true });
197
+
198
+ const promises = entries.map(async (entry) => {
199
+ const filePath = path.join(dir, entry.name);
200
+
201
+ if (shouldExcludePath(filePath)) {
202
+ return [];
203
+ }
204
+
205
+ if (entry.isDirectory()) {
206
+ return collectPythonFiles(filePath);
207
+ } else if (entry.name.endsWith(".py")) {
208
+ return [filePath];
209
+ }
210
+ return [];
211
+ });
212
+
213
+ const results = await Promise.all(promises);
214
+ return results.flat();
215
+ };
216
+
217
+ // Collect all Python files first, then process in parallel
218
+ const pythonFiles = await collectPythonFiles(outputDir);
219
+ await Promise.all(pythonFiles.map(processFile));
220
+ }
@@ -0,0 +1,49 @@
1
+ // Browser stub for `pyodide-loader.ts`. Loads pyodide via a `<script>` tag
2
+ // from the CDN at runtime so that the npm `pyodide` package (which contains
3
+ // static Node-builtin imports) never enters the browser bundle.
4
+
5
+ // Pull the type-only import from pyodide so type-checking still works; this
6
+ // declaration is fully erased at bundle time.
7
+ import type { PyodideInterface as _PyodideInterface } from "pyodide";
8
+
9
+ export type PyodideInterface = _PyodideInterface;
10
+
11
+ interface LoadPyodideOptions {
12
+ indexURL: string;
13
+ [key: string]: any;
14
+ }
15
+
16
+ declare global {
17
+ var loadPyodide: ((options: LoadPyodideOptions) => Promise<PyodideInterface>) | undefined;
18
+ }
19
+
20
+ let scriptLoadPromise: Promise<void> | null = null;
21
+
22
+ function loadPyodideScript(indexURL: string): Promise<void> {
23
+ if (scriptLoadPromise) return scriptLoadPromise;
24
+ scriptLoadPromise = new Promise<void>((resolve, reject) => {
25
+ if (typeof globalThis.loadPyodide === "function") {
26
+ resolve();
27
+ return;
28
+ }
29
+ const script = document.createElement("script");
30
+ // indexURL is expected to end with a trailing slash, matching pyodide's contract.
31
+ script.src = `${indexURL}pyodide.js`;
32
+ script.onload = () => resolve();
33
+ script.onerror = () => {
34
+ // Clear the cached promise so a later call can retry after a transient failure.
35
+ scriptLoadPromise = null;
36
+ reject(new Error(`Failed to load pyodide from ${script.src}`));
37
+ };
38
+ document.head.appendChild(script);
39
+ });
40
+ return scriptLoadPromise;
41
+ }
42
+
43
+ export async function loadPyodide(options: LoadPyodideOptions): Promise<PyodideInterface> {
44
+ await loadPyodideScript(options.indexURL);
45
+ if (typeof globalThis.loadPyodide !== "function") {
46
+ throw new Error("pyodide script loaded but globalThis.loadPyodide is not defined");
47
+ }
48
+ return globalThis.loadPyodide(options);
49
+ }
@@ -0,0 +1,6 @@
1
+ // Node-side re-export of `loadPyodide`. The browser swap (`pyodide-loader.browser.ts`)
2
+ // loads pyodide from its CDN script bundle instead, so that the browser bundle
3
+ // never statically imports the npm `pyodide` package (whose `pyodide.mjs`
4
+ // contains static `import "node:*"` calls that break esbuild's browser target).
5
+ export { loadPyodide } from "pyodide";
6
+ export type { PyodideInterface } from "pyodide";
@@ -479,6 +479,13 @@ function emitBuiltInType(
479
479
  encode: type.encode,
480
480
  });
481
481
  }
482
+ if (type.encode === "seconds" || type.encode === "milliseconds") {
483
+ return getSimpleTypeResult(context, {
484
+ type: type.kind,
485
+ encode: type.encode,
486
+ wireType: getType(context, type.wireType),
487
+ });
488
+ }
482
489
  }
483
490
  if (type.kind === "utcDateTime" || type.kind === "offsetDateTime") {
484
491
  if (type.encode === "unixTimestamp") {