@azure-tools/typespec-python 0.28.0 → 0.30.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/dist/scripts/eng/format.d.ts +2 -0
- package/dist/scripts/eng/format.d.ts.map +1 -0
- package/dist/scripts/eng/format.js +4 -0
- package/dist/scripts/eng/format.js.map +1 -0
- package/dist/scripts/eng/lint.d.ts +5 -0
- package/dist/scripts/eng/lint.d.ts.map +1 -0
- package/dist/scripts/eng/lint.js +66 -0
- package/dist/scripts/eng/lint.js.map +1 -0
- package/dist/scripts/{regenerate.d.ts.map → eng/regenerate.d.ts.map} +1 -1
- package/dist/scripts/{regenerate.js → eng/regenerate.js} +33 -30
- package/dist/scripts/eng/regenerate.js.map +1 -0
- package/dist/scripts/eng/run-tests.d.ts +2 -0
- package/dist/scripts/eng/run-tests.d.ts.map +1 -0
- package/dist/scripts/eng/run-tests.js +71 -0
- package/dist/scripts/eng/run-tests.js.map +1 -0
- package/dist/scripts/eng/utils.d.ts +3 -0
- package/dist/scripts/eng/utils.d.ts.map +1 -0
- package/dist/scripts/eng/utils.js +39 -0
- package/dist/scripts/eng/utils.js.map +1 -0
- package/dist/scripts/run-python3.d.ts +2 -0
- package/dist/scripts/run-python3.d.ts.map +1 -0
- package/dist/scripts/run-python3.js +23 -0
- package/dist/scripts/run-python3.js.map +1 -0
- package/dist/scripts/system-requirements.d.ts +17 -0
- package/dist/scripts/system-requirements.d.ts.map +1 -0
- package/{scripts/system-requirements.cjs → dist/scripts/system-requirements.js} +80 -97
- package/dist/scripts/system-requirements.js.map +1 -0
- package/dist/src/code-model.d.ts.map +1 -1
- package/dist/src/code-model.js +23 -17
- package/dist/src/code-model.js.map +1 -1
- package/dist/src/emitter.d.ts.map +1 -1
- package/dist/src/emitter.js +14 -3
- package/dist/src/emitter.js.map +1 -1
- package/dist/src/external-process.js +1 -1
- package/dist/src/external-process.js.map +1 -1
- package/dist/src/http.js +34 -23
- package/dist/src/http.js.map +1 -1
- package/dist/src/lib.d.ts +1 -0
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +1 -0
- package/dist/src/lib.js.map +1 -1
- package/dist/src/types.d.ts +7 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +42 -7
- package/dist/src/types.js.map +1 -1
- package/dist/src/utils.d.ts +3 -3
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +11 -13
- package/dist/src/utils.js.map +1 -1
- package/generator/pygen/black.py +2 -3
- package/generator/pygen/codegen/models/__init__.py +2 -0
- package/generator/pygen/codegen/models/code_model.py +2 -4
- package/generator/pygen/codegen/models/combined_type.py +1 -1
- package/generator/pygen/codegen/models/credential_types.py +7 -14
- package/generator/pygen/codegen/models/enum_type.py +1 -1
- package/generator/pygen/codegen/models/lro_operation.py +0 -1
- package/generator/pygen/codegen/models/lro_paging_operation.py +1 -1
- package/generator/pygen/codegen/models/model_type.py +6 -9
- package/generator/pygen/codegen/models/operation.py +13 -16
- package/generator/pygen/codegen/models/paging_operation.py +0 -1
- package/generator/pygen/codegen/models/parameter_list.py +2 -5
- package/generator/pygen/codegen/models/primitive_types.py +35 -3
- package/generator/pygen/codegen/models/property.py +1 -9
- package/generator/pygen/codegen/serializers/__init__.py +1 -1
- package/generator/pygen/codegen/serializers/builder_serializer.py +12 -13
- package/generator/pygen/codegen/serializers/general_serializer.py +2 -2
- package/generator/pygen/codegen/serializers/model_serializer.py +2 -0
- package/generator/pygen/codegen/serializers/sample_serializer.py +20 -15
- package/generator/pygen/codegen/templates/model_base.py.jinja2 +30 -18
- package/generator/pygen/codegen/templates/vendor.py.jinja2 +0 -2
- package/generator/pygen/m2r.py +1 -1
- package/generator/pygen/postprocess/__init__.py +2 -2
- package/generator/pygen/postprocess/venvtools.py +1 -3
- package/generator/pygen/preprocess/__init__.py +1 -1
- package/generator/pygen/utils.py +1 -3
- package/generator/setup.py +1 -1
- package/package.json +18 -25
- package/scripts/__pycache__/venvtools.cpython-310.pyc +0 -0
- package/scripts/eng/format.ts +5 -0
- package/scripts/eng/lint.ts +75 -0
- package/scripts/eng/mypy.ini +38 -0
- package/scripts/eng/pylintrc +58 -0
- package/scripts/eng/pyrightconfig.json +6 -0
- package/scripts/{regenerate.ts → eng/regenerate.ts} +45 -33
- package/scripts/eng/run-tests.ts +80 -0
- package/scripts/eng/utils.ts +38 -0
- package/scripts/run-python3.ts +25 -0
- package/scripts/run_tsp.py +7 -5
- package/scripts/system-requirements.ts +253 -0
- package/dist/scripts/regenerate.js.map +0 -1
- package/scripts/run-python3.cjs +0 -22
- /package/dist/scripts/{regenerate.d.ts → eng/regenerate.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../scripts/eng/format.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../scripts/eng/format.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../scripts/eng/lint.ts"],"names":[],"mappings":"AAuCA,wBAAgB,MAAM,SAErB;AAED,wBAAgB,IAAI,SAEnB;AAED,wBAAgB,OAAO,SAEtB;AAED,wBAAgB,MAAM,SAIrB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import yargs from "yargs";
|
|
3
|
+
import { hideBin } from "yargs/helpers";
|
|
4
|
+
import { runCommand, executeCommand } from "./utils.js";
|
|
5
|
+
const validCommands = ["pylint", "mypy", "pyright", "eslint"];
|
|
6
|
+
// PARSE INPUT ARGUMENTS
|
|
7
|
+
const argv = yargs(hideBin(process.argv))
|
|
8
|
+
.option("folderName", {
|
|
9
|
+
type: "string",
|
|
10
|
+
choices: ["generator", "autorest"],
|
|
11
|
+
description: "Specify the flavor",
|
|
12
|
+
default: "generator",
|
|
13
|
+
})
|
|
14
|
+
.option("command", {
|
|
15
|
+
alias: "c",
|
|
16
|
+
type: "string",
|
|
17
|
+
choices: validCommands,
|
|
18
|
+
description: "Specify the command to run",
|
|
19
|
+
})
|
|
20
|
+
.option("skipWarning", {
|
|
21
|
+
alias: "s",
|
|
22
|
+
type: "boolean",
|
|
23
|
+
description: "Skip to check warnings",
|
|
24
|
+
})
|
|
25
|
+
.option("skipEslint", {
|
|
26
|
+
alias: "e",
|
|
27
|
+
type: "boolean",
|
|
28
|
+
description: "Skip to check eslint",
|
|
29
|
+
}).argv;
|
|
30
|
+
export function pylint() {
|
|
31
|
+
runCommand(`pylint ${argv.folderName}/ --rcfile ./scripts/eng/pylintrc`, "pylint");
|
|
32
|
+
}
|
|
33
|
+
export function mypy() {
|
|
34
|
+
runCommand(`mypy ${argv.folderName}/ --config-file ./scripts/eng/mypy.ini`, "mypy");
|
|
35
|
+
}
|
|
36
|
+
export function pyright() {
|
|
37
|
+
runCommand(`pyright ${argv.folderName}/ -p ./scripts/eng/pyrightconfig.json`, "pyright");
|
|
38
|
+
}
|
|
39
|
+
export function eslint() {
|
|
40
|
+
// const checkWarning = argv.skipWarning ? "" : "--max-warnings=0";
|
|
41
|
+
const checkWarning = "";
|
|
42
|
+
executeCommand(`npx eslint . --ext .ts ${checkWarning} `, "eslint");
|
|
43
|
+
}
|
|
44
|
+
if (argv.command === "pylint") {
|
|
45
|
+
pylint();
|
|
46
|
+
}
|
|
47
|
+
else if (argv.command === "mypy") {
|
|
48
|
+
mypy();
|
|
49
|
+
}
|
|
50
|
+
else if (argv.command === "pyright") {
|
|
51
|
+
pyright();
|
|
52
|
+
}
|
|
53
|
+
else if (argv.command === "eslint") {
|
|
54
|
+
if (!argv.skipEslint) {
|
|
55
|
+
eslint();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
pylint();
|
|
60
|
+
mypy();
|
|
61
|
+
pyright();
|
|
62
|
+
if (!argv.skipEslint) {
|
|
63
|
+
eslint();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=lint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../scripts/eng/lint.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AASxD,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE9D,wBAAwB;AACxB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACpC,MAAM,CAAC,YAAY,EAAE;IAClB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;IAClC,WAAW,EAAE,oBAAoB;IACjC,OAAO,EAAE,WAAW;CACvB,CAAC;KACD,MAAM,CAAC,SAAS,EAAE;IACf,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,aAAa;IACtB,WAAW,EAAE,4BAA4B;CAC5C,CAAC;KACD,MAAM,CAAC,aAAa,EAAE;IACnB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,wBAAwB;CACxC,CAAC;KACD,MAAM,CAAC,YAAY,EAAE;IAClB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,sBAAsB;CACtC,CAAC,CAAC,IAAiB,CAAC;AAEzB,MAAM,UAAU,MAAM;IAClB,UAAU,CAAC,UAAU,IAAI,CAAC,UAAU,mCAAmC,EAAE,QAAQ,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,IAAI;IAChB,UAAU,CAAC,QAAQ,IAAI,CAAC,UAAU,wCAAwC,EAAE,MAAM,CAAC,CAAC;AACxF,CAAC;AAED,MAAM,UAAU,OAAO;IACnB,UAAU,CAAC,WAAW,IAAI,CAAC,UAAU,uCAAuC,EAAE,SAAS,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,UAAU,MAAM;IAClB,mEAAmE;IACnE,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,cAAc,CAAC,0BAA0B,YAAY,GAAG,EAAE,QAAQ,CAAC,CAAC;AACxE,CAAC;AAED,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC;CACZ;KAAM,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,EAAE;IAChC,IAAI,EAAE,CAAC;CACV;KAAM,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;IACnC,OAAO,EAAE,CAAC;CACb;KAAM,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;IAClC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;QAClB,MAAM,EAAE,CAAC;KACZ;CACJ;KAAM;IACH,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;QAClB,MAAM,EAAE,CAAC;KACZ;CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regenerate.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"regenerate.d.ts","sourceRoot":"","sources":["../../../scripts/eng/regenerate.ts"],"names":[],"mappings":""}
|
|
@@ -4,7 +4,7 @@ import { promisify } from "util";
|
|
|
4
4
|
import yargs from "yargs";
|
|
5
5
|
import { hideBin } from "yargs/helpers";
|
|
6
6
|
import { dirname, join, relative, resolve } from "path";
|
|
7
|
-
import { promises } from "fs";
|
|
7
|
+
import { promises, rmSync } from "fs";
|
|
8
8
|
import { fileURLToPath } from "url";
|
|
9
9
|
// Promisify the exec function
|
|
10
10
|
const exec = promisify(execCallback);
|
|
@@ -111,9 +111,16 @@ function getEmitterOption(spec) {
|
|
|
111
111
|
return Array.isArray(result) ? result : [result];
|
|
112
112
|
}
|
|
113
113
|
// Function to execute CLI commands asynchronously
|
|
114
|
-
async function executeCommand(
|
|
114
|
+
async function executeCommand(tspCommand) {
|
|
115
115
|
try {
|
|
116
|
-
|
|
116
|
+
rmSync(tspCommand.outputDir, { recursive: true, force: true });
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
console.error(`rm error: ${error}`);
|
|
120
|
+
}
|
|
121
|
+
try {
|
|
122
|
+
console.log(`exec: ${tspCommand.command}`);
|
|
123
|
+
const { stdout, stderr } = await exec(tspCommand.command);
|
|
117
124
|
if (stdout)
|
|
118
125
|
console.log(`stdout: ${stdout}`);
|
|
119
126
|
if (stderr)
|
|
@@ -142,6 +149,12 @@ async function getSubdirectories(baseDir, flags) {
|
|
|
142
149
|
const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath));
|
|
143
150
|
if (flags.flavor === "unbranded" && mainTspRelativePath.includes("azure"))
|
|
144
151
|
return;
|
|
152
|
+
// after xml support, remove this check
|
|
153
|
+
if (mainTspRelativePath.includes("xml"))
|
|
154
|
+
return;
|
|
155
|
+
// after fix test generation for nested operation group, remove this check
|
|
156
|
+
if (mainTspRelativePath.includes("client-operation-group"))
|
|
157
|
+
return;
|
|
145
158
|
const hasMainTsp = await promises
|
|
146
159
|
.access(mainTspPath)
|
|
147
160
|
.then(() => true)
|
|
@@ -176,12 +189,11 @@ function defaultPackageName(spec) {
|
|
|
176
189
|
.toLowerCase();
|
|
177
190
|
}
|
|
178
191
|
function addOptions(spec, generatedFolder, flags) {
|
|
179
|
-
var _a;
|
|
180
192
|
const emitterConfigs = [];
|
|
181
193
|
for (const config of getEmitterOption(spec)) {
|
|
182
194
|
const options = { ...config };
|
|
183
195
|
options["flavor"] = flags.flavor;
|
|
184
|
-
for (const [k, v] of Object.entries(
|
|
196
|
+
for (const [k, v] of Object.entries(SpecialFlags[flags.flavor] ?? {})) {
|
|
185
197
|
options[k] = v;
|
|
186
198
|
}
|
|
187
199
|
if (options["emitter-output-dir"] === undefined) {
|
|
@@ -194,48 +206,39 @@ function addOptions(spec, generatedFolder, flags) {
|
|
|
194
206
|
if (flags.flavor === "unbranded") {
|
|
195
207
|
options["company-name"] = "Unbranded";
|
|
196
208
|
}
|
|
197
|
-
options["examples-
|
|
209
|
+
options["examples-dir"] = toPosix(join(dirname(spec), "examples"));
|
|
198
210
|
const configs = Object.entries(options).flatMap(([k, v]) => {
|
|
199
211
|
return `--option @azure-tools/typespec-python.${k}=${v}`;
|
|
200
212
|
});
|
|
201
|
-
emitterConfigs.push(
|
|
213
|
+
emitterConfigs.push({
|
|
214
|
+
optionsStr: configs.join(" "),
|
|
215
|
+
outputDir: options["emitter-output-dir"],
|
|
216
|
+
});
|
|
202
217
|
}
|
|
203
218
|
return emitterConfigs;
|
|
204
219
|
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
return executeCommand(command);
|
|
220
|
+
function _getCmdList(spec, flags) {
|
|
221
|
+
return addOptions(spec, PLUGIN_DIR, flags).map((option) => {
|
|
222
|
+
return {
|
|
223
|
+
outputDir: option.outputDir,
|
|
224
|
+
command: `tsp compile ${spec} --emit=${toPosix(PLUGIN_DIR)} ${option.optionsStr}`,
|
|
225
|
+
};
|
|
212
226
|
});
|
|
213
|
-
await Promise.all(commandPromises);
|
|
214
227
|
}
|
|
215
228
|
async function regenerate(flags) {
|
|
216
229
|
if (flags.flavor === undefined) {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
return azureGeneration && unbrandedGeneration;
|
|
230
|
+
await regenerate({ ...flags, flavor: "azure" });
|
|
231
|
+
await regenerate({ ...flags, flavor: "unbranded" });
|
|
220
232
|
}
|
|
221
233
|
else {
|
|
222
234
|
const flagsResolved = { debug: false, flavor: flags.flavor, ...flags };
|
|
223
235
|
const CADL_RANCH_DIR = resolve(PLUGIN_DIR, "node_modules/@azure-tools/cadl-ranch-specs/http");
|
|
224
236
|
const subdirectories = await getSubdirectories(CADL_RANCH_DIR, flagsResolved);
|
|
225
|
-
const
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
});
|
|
229
|
-
await Promise.all(promises);
|
|
230
|
-
return true;
|
|
237
|
+
const cmdList = subdirectories.flatMap((subdirectory) => _getCmdList(subdirectory, flagsResolved));
|
|
238
|
+
const PromiseCommands = cmdList.map((tspCommand) => executeCommand(tspCommand));
|
|
239
|
+
await Promise.all(PromiseCommands);
|
|
231
240
|
}
|
|
232
241
|
}
|
|
233
|
-
// try {
|
|
234
|
-
// const output = await executeCommand('tsp compile');
|
|
235
|
-
// console.log(`Command output: ${output}`);
|
|
236
|
-
// } catch (error) {
|
|
237
|
-
// console.error(`Command failed: ${error}`);
|
|
238
|
-
// }
|
|
239
242
|
// PARSE INPUT ARGUMENTS
|
|
240
243
|
const argv = yargs(hideBin(process.argv))
|
|
241
244
|
.option("flavor", {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"regenerate.js","sourceRoot":"","sources":["../../../scripts/eng/regenerate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-tests.d.ts","sourceRoot":"","sources":["../../../scripts/eng/run-tests.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import { execSync } from "child_process";
|
|
3
|
+
import { readFileSync } from "fs";
|
|
4
|
+
import { join } from "path";
|
|
5
|
+
import yargs from "yargs";
|
|
6
|
+
import { hideBin } from "yargs/helpers";
|
|
7
|
+
import { fileURLToPath } from "url";
|
|
8
|
+
const validCommands = ["ci", "lint", "mypy", "pyright", "apiview"];
|
|
9
|
+
// Parse command-line arguments using yargs
|
|
10
|
+
const argv = yargs(hideBin(process.argv))
|
|
11
|
+
.option("validFolders", {
|
|
12
|
+
alias: "vf",
|
|
13
|
+
describe: "Specify the valid folders",
|
|
14
|
+
type: "array",
|
|
15
|
+
default: ["azure", "unbranded"],
|
|
16
|
+
})
|
|
17
|
+
.option("folder", {
|
|
18
|
+
alias: "f",
|
|
19
|
+
describe: "Specify the folder to use",
|
|
20
|
+
type: "string",
|
|
21
|
+
})
|
|
22
|
+
.option("command", {
|
|
23
|
+
alias: "c",
|
|
24
|
+
describe: "Specify the command to run",
|
|
25
|
+
choices: validCommands,
|
|
26
|
+
type: "string",
|
|
27
|
+
}).argv;
|
|
28
|
+
const foldersToProcess = argv.folder ? [argv.folder] : argv.validFolders;
|
|
29
|
+
const commandToRun = argv.command || "all";
|
|
30
|
+
function getCommand(command, folder) {
|
|
31
|
+
if (!validCommands.includes(command))
|
|
32
|
+
throw new Error(`Unknown command '${command}'.`);
|
|
33
|
+
return `FOLDER=${folder} tox -c ./test/${folder}/tox.ini -e ${command}`;
|
|
34
|
+
}
|
|
35
|
+
function sectionExistsInToxIni(command, folder) {
|
|
36
|
+
const toxIniPath = join(fileURLToPath(import.meta.url), `../../../test/${folder}/tox.ini`);
|
|
37
|
+
const toxIniContent = readFileSync(toxIniPath, "utf-8");
|
|
38
|
+
const sectionHeader = `[testenv:${command}]`;
|
|
39
|
+
return toxIniContent.includes(sectionHeader);
|
|
40
|
+
}
|
|
41
|
+
function myExecSync(command, folder) {
|
|
42
|
+
if (!sectionExistsInToxIni(command, folder)) {
|
|
43
|
+
console.log(`No section for ${command} in tox.ini for folder ${folder}. Skipping...`);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
execSync(getCommand(command, folder), { stdio: "inherit" });
|
|
47
|
+
}
|
|
48
|
+
foldersToProcess.forEach((folder) => {
|
|
49
|
+
try {
|
|
50
|
+
if (commandToRun === "all") {
|
|
51
|
+
for (const key of validCommands) {
|
|
52
|
+
console.log(`Running ${key} for folder ${folder}...`);
|
|
53
|
+
myExecSync(key, folder);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else if (getCommand(commandToRun, folder)) {
|
|
57
|
+
console.log(`Running ${commandToRun} for folder ${folder}...`);
|
|
58
|
+
myExecSync(commandToRun, folder);
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.error(`Error: Unknown command '${commandToRun}'.`);
|
|
62
|
+
process.exit(1);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.error(error.message);
|
|
67
|
+
console.error(`Error executing command for folder ${folder}: ${error.message}`);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=run-tests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-tests.js","sourceRoot":"","sources":["../../../scripts/eng/run-tests.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAQpC,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEnE,2CAA2C;AAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACpC,MAAM,CAAC,cAAc,EAAE;IACpB,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,2BAA2B;IACrC,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;CAClC,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IACd,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,2BAA2B;IACrC,IAAI,EAAE,QAAQ;CACjB,CAAC;KACD,MAAM,CAAC,SAAS,EAAE;IACf,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,4BAA4B;IACtC,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,QAAQ;CACjB,CAAC,CAAC,IAAiB,CAAC;AAEzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;AAEzE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;AAE3C,SAAS,UAAU,CAAC,OAAe,EAAE,MAAc;IAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;IACvF,OAAO,UAAU,MAAM,kBAAkB,MAAM,eAAe,OAAO,EAAE,CAAC;AAC5E,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAe,EAAE,MAAc;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,iBAAiB,MAAM,UAAU,CAAC,CAAC;IAC3F,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,MAAM,aAAa,GAAG,YAAY,OAAO,GAAG,CAAC;IAC7C,OAAO,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,MAAc;IAC/C,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;QACzC,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,0BAA0B,MAAM,eAAe,CAAC,CAAC;QACtF,OAAO;KACV;IACD,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAChE,CAAC;AAED,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IAChC,IAAI;QACA,IAAI,YAAY,KAAK,KAAK,EAAE;YACxB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,eAAe,MAAM,KAAK,CAAC,CAAC;gBACtD,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aAC3B;SACJ;aAAM,IAAI,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,WAAW,YAAY,eAAe,MAAM,KAAK,CAAC,CAAC;YAC/D,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;SACpC;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,2BAA2B,YAAY,IAAI,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;KACJ;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,sCAAsC,MAAM,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../scripts/eng/utils.ts"],"names":[],"mappings":"AASA,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAcjE;AAGD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,QAW7D"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import { exec } from "child_process";
|
|
3
|
+
import process from "process";
|
|
4
|
+
import { existsSync } from "fs";
|
|
5
|
+
import { dirname, join } from "path";
|
|
6
|
+
import { fileURLToPath } from "url";
|
|
7
|
+
import chalk from "chalk";
|
|
8
|
+
// execute the command
|
|
9
|
+
export function executeCommand(command, prettyName) {
|
|
10
|
+
exec(command, (error, stdout, stderr) => {
|
|
11
|
+
if (error) {
|
|
12
|
+
console.error(chalk.red(`Error executing ${command}(stdout): ${stdout}`));
|
|
13
|
+
console.error(chalk.red(`Error executing ${command}{stderr}: ${stderr}`));
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
if (stderr) {
|
|
17
|
+
// Process stderr output
|
|
18
|
+
console.log(chalk.yellow(`${command}:\n${stderr}`));
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
console.log(chalk.green(`${prettyName} passed`));
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
// Function to run a command and log the output
|
|
25
|
+
export function runCommand(command, prettyName) {
|
|
26
|
+
let pythonPath = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "venv/");
|
|
27
|
+
if (existsSync(join(pythonPath, "bin"))) {
|
|
28
|
+
pythonPath = join(pythonPath, "bin", "python");
|
|
29
|
+
}
|
|
30
|
+
else if (existsSync(join(pythonPath, "Scripts"))) {
|
|
31
|
+
pythonPath = join(pythonPath, "Scripts", "python");
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
throw new Error(pythonPath);
|
|
35
|
+
}
|
|
36
|
+
command = `${pythonPath} -m ${command}`;
|
|
37
|
+
executeCommand(command, prettyName);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../scripts/eng/utils.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,sBAAsB;AACtB,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,UAAkB;IAC9D,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;QACpC,IAAI,KAAK,EAAE;YACP,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,OAAO,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;QACD,IAAI,MAAM,EAAE;YACR,wBAAwB;YACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO;SACV;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,UAAkB;IAC1D,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACpF,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,EAAE;QACrC,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;KAClD;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,EAAE;QAChD,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;KACtD;SAAM;QACH,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;KAC/B;IACD,OAAO,GAAG,GAAG,UAAU,OAAO,OAAO,EAAE,CAAC;IACxC,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-python3.d.ts","sourceRoot":"","sources":["../../scripts/run-python3.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// This script wraps logic in @azure-tools/extension to resolve
|
|
2
|
+
// the path to Python 3 so that a Python script file can be run
|
|
3
|
+
// from an npm script in package.json. It uses the same Python 3
|
|
4
|
+
// path resolution algorithm as AutoRest so that the behavior
|
|
5
|
+
// is fully consistent (and also supports AUTOREST_PYTHON_EXE).
|
|
6
|
+
//
|
|
7
|
+
// Invoke it like so: "tsx run-python3.ts script.py"
|
|
8
|
+
import cp from "child_process";
|
|
9
|
+
import { patchPythonPath } from "./system-requirements.js";
|
|
10
|
+
async function runPython3(...args) {
|
|
11
|
+
const command = await patchPythonPath(["python", ...args], {
|
|
12
|
+
version: ">=3.8",
|
|
13
|
+
environmentVariable: "AUTOREST_PYTHON_EXE",
|
|
14
|
+
});
|
|
15
|
+
cp.execSync(command.join(" "), {
|
|
16
|
+
stdio: [0, 1, 2],
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
runPython3(...process.argv.slice(2)).catch((err) => {
|
|
20
|
+
console.error(err.toString()); // eslint-disable-line no-console
|
|
21
|
+
process.exit(1);
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=run-python3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-python3.js","sourceRoot":"","sources":["../../scripts/run-python3.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAC/D,iEAAiE;AACjE,6DAA6D;AAC7D,+DAA+D;AAC/D,EAAE;AACF,oDAAoD;AAEpD,OAAO,EAAE,MAAM,eAAe,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,KAAK,UAAU,UAAU,CAAC,GAAG,IAAc;IACvC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE;QACvD,OAAO,EAAE,OAAO;QAChB,mBAAmB,EAAE,qBAAqB;KAC7C,CAAC,CAAC;IACH,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC3B,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACnB,CAAC,CAAC;AACP,CAAC;AAED,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAC/C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,iCAAiC;IAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param command list of the command and arguments. First item in array must be a python exe @see KnownPythonExe. (e.g. ["python", "mypythonfile.py"]
|
|
3
|
+
* @param requirement
|
|
4
|
+
*/
|
|
5
|
+
export declare const patchPythonPath: (command: PythonCommandLine, requirement: SystemRequirement) => Promise<string[]>;
|
|
6
|
+
type KnownPythonExe = "python.exe" | "python3.exe" | "python" | "python3";
|
|
7
|
+
type PythonCommandLine = [KnownPythonExe, ...string[]];
|
|
8
|
+
interface SystemRequirement {
|
|
9
|
+
version?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Name of an environment variable where the user could provide the path to the exe.
|
|
12
|
+
* @example "AUTOREST_PYTHON_PATH"
|
|
13
|
+
*/
|
|
14
|
+
environmentVariable?: string;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=system-requirements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-requirements.d.ts","sourceRoot":"","sources":["../../scripts/system-requirements.ts"],"names":[],"mappings":"AAgLA;;;GAGG;AACH,eAAO,MAAM,eAAe,4CAEX,iBAAiB,KAC/B,QAAQ,MAAM,EAAE,CAOlB,CAAC;AAOF,KAAK,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAC1E,KAAK,iBAAiB,GAAG,CAAC,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAQvD,UAAU,iBAAiB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC"}
|