From fd2807ad66cad94d810a57357f701d128debcf3a Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Thu, 12 Mar 2026 00:46:15 +0000 Subject: [PATCH 1/9] Update dependencies --- packages/autorest.python/package.json | 2 +- packages/typespec-python/package.json | 66 +++++++++++++-------------- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/packages/autorest.python/package.json b/packages/autorest.python/package.json index bfd912cfe5..e52dead0ae 100644 --- a/packages/autorest.python/package.json +++ b/packages/autorest.python/package.json @@ -29,7 +29,7 @@ }, "homepage": "https://github.com/Azure/autorest.python/blob/main/README.md", "dependencies": { - "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk3OTY3NS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.2.tgz", + "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", "@autorest/system-requirements": "~1.0.2", "fs-extra": "~11.2.0", "tsx": "^4.21.0" diff --git a/packages/typespec-python/package.json b/packages/typespec-python/package.json index c59c25cbe8..b380d2a807 100644 --- a/packages/typespec-python/package.json +++ b/packages/typespec-python/package.json @@ -48,48 +48,48 @@ "generator/**" ], "peerDependencies": { - "@typespec/compiler": "^1.9.0", - "@typespec/http": "^1.9.0", - "@typespec/rest": ">=0.79.0 <1.0.0", - "@typespec/versioning": ">=0.79.0 <1.0.0", - "@typespec/openapi": "^1.9.0", - "@typespec/events": ">=0.79.0 <1.0.0", - "@typespec/sse": ">=0.79.0 <1.0.0", - "@typespec/streams": ">=0.79.0 <1.0.0", - "@typespec/xml": ">=0.79.0 <1.0.0", - "@azure-tools/typespec-azure-core": ">=0.65.0 <1.0.0", - "@azure-tools/typespec-azure-resource-manager": ">=0.65.0 <1.0.0", - "@azure-tools/typespec-autorest": ">=0.65.0 <1.0.0", - "@azure-tools/typespec-azure-rulesets": ">=0.65.0 <1.0.0", - "@azure-tools/typespec-client-generator-core": ">=0.65.3 <1.0.0" + "@typespec/compiler": "^1.10.0", + "@typespec/http": "^1.10.0", + "@typespec/rest": ">=0.80.0 <1.0.0", + "@typespec/versioning": ">=0.80.0 <1.0.0", + "@typespec/openapi": "^1.10.0", + "@typespec/events": ">=0.80.0 <1.0.0", + "@typespec/sse": ">=0.80.0 <1.0.0", + "@typespec/streams": ">=0.80.0 <1.0.0", + "@typespec/xml": ">=0.80.0 <1.0.0", + "@azure-tools/typespec-azure-core": ">=0.66.0 <1.0.0", + "@azure-tools/typespec-azure-resource-manager": ">=0.66.0 <1.0.0", + "@azure-tools/typespec-autorest": ">=0.66.0 <1.0.0", + "@azure-tools/typespec-azure-rulesets": ">=0.65.1 <1.0.0", + "@azure-tools/typespec-client-generator-core": ">=0.66.1 <1.0.0" }, "dependencies": { "js-yaml": "~4.1.0", "semver": "~7.6.2", "tsx": "^4.21.0", - "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk3OTY3NS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.2.tgz", + "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", "fs-extra": "~11.2.0" }, "devDependencies": { - "@typespec/compiler": "^1.9.0", - "@typespec/http": "^1.9.0", - "@typespec/rest": "~0.79.0", - "@typespec/versioning": "~0.79.0", - "@typespec/openapi": "^1.9.0", - "@typespec/events": "~0.79.0", - "@typespec/sse": "~0.79.0", - "@typespec/streams": "~0.79.0", + "@typespec/compiler": "^1.10.0", + "@typespec/http": "^1.10.0", + "@typespec/rest": "~0.80.0", + "@typespec/versioning": "~0.80.0", + "@typespec/openapi": "^1.10.0", + "@typespec/events": "~0.80.0", + "@typespec/sse": "~0.80.0", + "@typespec/streams": "~0.80.0", "@typespec/tspd": "~0.74.0", - "@typespec/xml": "~0.79.0", - "@azure-tools/typespec-azure-resource-manager": "~0.65.0", - "@azure-tools/typespec-azure-core": "~0.65.0", - "@azure-tools/typespec-azure-rulesets": "~0.65.0", - "@azure-tools/typespec-autorest": "~0.65.0", - "@azure-tools/typespec-client-generator-core": "~0.65.3", - "@azure-tools/azure-http-specs": "0.1.0-alpha.38-dev.6", - "@typespec/http-specs": "0.1.0-alpha.33-dev.2", - "@typespec/spector": "0.1.0-alpha.23", - "@typespec/spec-api": "0.1.0-alpha.12", + "@typespec/xml": "~0.80.0", + "@azure-tools/typespec-azure-resource-manager": "~0.66.0", + "@azure-tools/typespec-azure-core": "~0.66.0", + "@azure-tools/typespec-azure-rulesets": "~0.65.1", + "@azure-tools/typespec-autorest": "~0.66.0", + "@azure-tools/typespec-client-generator-core": "~0.66.1", + "@azure-tools/azure-http-specs": "0.1.0-alpha.38", + "@typespec/http-specs": "0.1.0-alpha.34", + "@typespec/spector": "0.1.0-alpha.24", + "@typespec/spec-api": "0.1.0-alpha.13", "@types/js-yaml": "~4.0.5", "@types/node": "~25.0.2", "@types/yargs": "~17.0.33", From 3493ff8444d42a4d2c0d4cce501157d1cdae7820 Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Thu, 12 Mar 2026 00:46:18 +0000 Subject: [PATCH 2/9] Sync shared files from typespec repo (2026-03-12 00:46:18) --- .../scripts/eng/regenerate-common.ts | 811 +++++++++--------- packages/typespec-python/src/lib.ts | 6 +- .../asynctests/test_special_words_async.py | 6 + .../mock_api_tests/test_special_words.py | 5 + .../asynctests/test_special_words_async.py | 7 + .../mock_api_tests/test_special_words.py | 6 + 6 files changed, 445 insertions(+), 396 deletions(-) diff --git a/packages/typespec-python/scripts/eng/regenerate-common.ts b/packages/typespec-python/scripts/eng/regenerate-common.ts index 9880418935..9f9a91266d 100644 --- a/packages/typespec-python/scripts/eng/regenerate-common.ts +++ b/packages/typespec-python/scripts/eng/regenerate-common.ts @@ -6,444 +6,467 @@ import { dirname, join, relative, resolve } from "path"; export const SKIP_SPECS: string[] = ["type/file"]; export const SpecialFlags: Record> = { - azure: { - "generate-test": true, - "generate-sample": true, - }, + azure: { + "generate-test": true, + "generate-sample": true, + }, }; // ---- Base emitter options (shared across repos) ---- -export const BASE_AZURE_EMITTER_OPTIONS: Record | Record[]> = { - "azure/client-generator-core/access": { - namespace: "specs.azure.clientgenerator.core.access", - }, - "azure/client-generator-core/alternate-type": { - namespace: "specs.azure.clientgenerator.core.alternatetype", - }, - "azure/client-generator-core/api-version": { - namespace: "specs.azure.clientgenerator.core.apiversion", - }, - "azure/client-generator-core/client-initialization/default": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.default", - }, - "azure/client-generator-core/client-initialization/individually": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.individually", - }, - "azure/client-generator-core/client-initialization/individuallyParent": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.individuallyparent", - }, - "azure/client-generator-core/client-location": { - namespace: "specs.azure.clientgenerator.core.clientlocation", - }, - "azure/client-generator-core/deserialize-empty-string-as-null": { - namespace: "specs.azure.clientgenerator.core.emptystring", - }, - "azure/client-generator-core/flatten-property": { - namespace: "specs.azure.clientgenerator.core.flattenproperty", - }, - "azure/client-generator-core/usage": { - namespace: "specs.azure.clientgenerator.core.usage", - }, - "azure/client-generator-core/override": { - namespace: "specs.azure.clientgenerator.core.override", - }, - "azure/client-generator-core/hierarchy-building": { - namespace: "specs.azure.clientgenerator.core.hierarchybuilding", - }, - "azure/core/basic": { - namespace: "specs.azure.core.basic", - }, - "azure/core/lro/rpc": { - namespace: "specs.azure.core.lro.rpc", - }, - "azure/core/lro/standard": { - namespace: "specs.azure.core.lro.standard", - }, - "azure/core/model": { - namespace: "specs.azure.core.model", - }, - "azure/core/page": { - namespace: "specs.azure.core.page", - }, - "azure/core/scalar": { - namespace: "specs.azure.core.scalar", - }, - "azure/core/traits": { - namespace: "specs.azure.core.traits", - }, - "azure/encode/duration": { - namespace: "specs.azure.encode.duration", - }, - "azure/example/basic": { - namespace: "specs.azure.example.basic", - }, - "azure/payload/pageable": { - namespace: "specs.azure.payload.pageable", - }, - "azure/versioning/previewVersion": { - namespace: "specs.azure.versioning.previewversion", - }, - "client/structure/default": { - namespace: "client.structure.service", - }, - "client/structure/multi-client": { - "package-name": "client-structure-multiclient", - "namespace": "client.structure.multiclient", - }, - "client/structure/renamed-operation": { - "package-name": "client-structure-renamedoperation", - "namespace": "client.structure.renamedoperation", - }, - "client/structure/two-operation-group": { - "package-name": "client-structure-twooperationgroup", - "namespace": "client.structure.twooperationgroup", - }, - "client/naming": { - namespace: "client.naming.main", - }, - "client/overload": { - namespace: "client.overload", - }, - "encode/duration": { - namespace: "encode.duration", - }, - "encode/numeric": { - namespace: "encode.numeric", - }, - "parameters/basic": { - namespace: "parameters.basic", - }, - "parameters/spread": { - namespace: "parameters.spread", - }, - "payload/content-negotiation": { - namespace: "payload.contentnegotiation", - }, - "payload/multipart": { - namespace: "payload.multipart", - }, - "serialization/encoded-name/json": { - namespace: "serialization.encodedname.json", - }, - "special-words": { - namespace: "specialwords", - }, - "service/multi-service": { - namespace: "service.multiservice", - }, +export const BASE_AZURE_EMITTER_OPTIONS: Record< + string, + Record | Record[] +> = { + "azure/client-generator-core/access": { + namespace: "specs.azure.clientgenerator.core.access", + }, + "azure/client-generator-core/alternate-type": { + namespace: "specs.azure.clientgenerator.core.alternatetype", + }, + "azure/client-generator-core/api-version": { + namespace: "specs.azure.clientgenerator.core.apiversion", + }, + "azure/client-generator-core/client-initialization/default": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.default", + }, + "azure/client-generator-core/client-initialization/individually": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.individually", + }, + "azure/client-generator-core/client-initialization/individuallyParent": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.individuallyparent", + }, + "azure/client-generator-core/client-location": { + namespace: "specs.azure.clientgenerator.core.clientlocation", + }, + "azure/client-generator-core/deserialize-empty-string-as-null": { + namespace: "specs.azure.clientgenerator.core.emptystring", + }, + "azure/client-generator-core/flatten-property": { + namespace: "specs.azure.clientgenerator.core.flattenproperty", + }, + "azure/client-generator-core/usage": { + namespace: "specs.azure.clientgenerator.core.usage", + }, + "azure/client-generator-core/override": { + namespace: "specs.azure.clientgenerator.core.override", + }, + "azure/client-generator-core/hierarchy-building": { + namespace: "specs.azure.clientgenerator.core.hierarchybuilding", + }, + "azure/core/basic": { + namespace: "specs.azure.core.basic", + }, + "azure/core/lro/rpc": { + namespace: "specs.azure.core.lro.rpc", + }, + "azure/core/lro/standard": { + namespace: "specs.azure.core.lro.standard", + }, + "azure/core/model": { + namespace: "specs.azure.core.model", + }, + "azure/core/page": { + namespace: "specs.azure.core.page", + }, + "azure/core/scalar": { + namespace: "specs.azure.core.scalar", + }, + "azure/core/traits": { + namespace: "specs.azure.core.traits", + }, + "azure/encode/duration": { + namespace: "specs.azure.encode.duration", + }, + "azure/example/basic": { + namespace: "specs.azure.example.basic", + }, + "azure/payload/pageable": { + namespace: "specs.azure.payload.pageable", + }, + "azure/versioning/previewVersion": { + namespace: "specs.azure.versioning.previewversion", + }, + "client/structure/default": { + namespace: "client.structure.service", + }, + "client/structure/multi-client": { + "package-name": "client-structure-multiclient", + namespace: "client.structure.multiclient", + }, + "client/structure/renamed-operation": { + "package-name": "client-structure-renamedoperation", + namespace: "client.structure.renamedoperation", + }, + "client/structure/two-operation-group": { + "package-name": "client-structure-twooperationgroup", + namespace: "client.structure.twooperationgroup", + }, + "client/naming": { + namespace: "client.naming.main", + }, + "client/overload": { + namespace: "client.overload", + }, + "encode/duration": { + namespace: "encode.duration", + }, + "encode/numeric": { + namespace: "encode.numeric", + }, + "parameters/basic": { + namespace: "parameters.basic", + }, + "parameters/spread": { + namespace: "parameters.spread", + }, + "payload/content-negotiation": { + namespace: "payload.contentnegotiation", + }, + "payload/multipart": { + namespace: "payload.multipart", + }, + "serialization/encoded-name/json": { + namespace: "serialization.encodedname.json", + }, + "special-words": { + namespace: "specialwords", + }, + "service/multi-service": { + namespace: "service.multiservice", + }, }; -export const BASE_EMITTER_OPTIONS: Record | Record[]> = { - "resiliency/srv-driven/old.tsp": { - "package-name": "resiliency-srv-driven1", - "namespace": "resiliency.srv.driven1", - "package-mode": "azure-dataplane", - "package-pprint-name": "ResiliencySrvDriven1", - }, - "resiliency/srv-driven": { - "package-name": "resiliency-srv-driven2", - "namespace": "resiliency.srv.driven2", - "package-mode": "azure-dataplane", - "package-pprint-name": "ResiliencySrvDriven2", - }, - "authentication/api-key": { - "clear-output-folder": "true", - }, - "authentication/http/custom": { - "package-name": "authentication-http-custom", - "namespace": "authentication.http.custom", - "package-pprint-name": "Authentication Http Custom", - }, - "authentication/union": [ - { - "package-name": "authentication-union", - "namespace": "authentication.union", - }, - { - "package-name": "setuppy-authentication-union", - "namespace": "setuppy.authentication.union", - "keep-setup-py": "true", - }, - ], - "type/array": { - "package-name": "typetest-array", - "namespace": "typetest.array", - }, - "type/dictionary": { - "package-name": "typetest-dictionary", - "namespace": "typetest.dictionary", - }, - "type/enum/extensible": { - "package-name": "typetest-enum-extensible", - "namespace": "typetest.enum.extensible", - }, - "type/enum/fixed": { - "package-name": "typetest-enum-fixed", - "namespace": "typetest.enum.fixed", - }, - "type/model/empty": { - "package-name": "typetest-model-empty", - "namespace": "typetest.model.empty", - }, - "type/model/inheritance/enum-discriminator": { - "package-name": "typetest-model-enumdiscriminator", - "namespace": "typetest.model.enumdiscriminator", - }, - "type/model/inheritance/nested-discriminator": { - "package-name": "typetest-model-nesteddiscriminator", - "namespace": "typetest.model.nesteddiscriminator", - }, - "type/model/inheritance/not-discriminated": { - "package-name": "typetest-model-notdiscriminated", - "namespace": "typetest.model.notdiscriminated", - }, - "type/model/inheritance/single-discriminator": { - "package-name": "typetest-model-singlediscriminator", - "namespace": "typetest.model.singlediscriminator", - }, - "type/model/inheritance/recursive": { - "package-name": "typetest-model-recursive", - "namespace": "typetest.model.recursive", - }, - "type/model/usage": { - "package-name": "typetest-model-usage", - "namespace": "typetest.model.usage", - }, - "type/model/visibility": [ - { - "package-name": "typetest-model-visibility", - "namespace": "typetest.model.visibility", - }, - { - "package-name": "headasbooleantrue", - "namespace": "headasbooleantrue", - "head-as-boolean": "true", - }, - { - "package-name": "headasbooleanfalse", - "namespace": "headasbooleanfalse", - "head-as-boolean": "false", - }, - ], - "type/property/nullable": { - "package-name": "typetest-property-nullable", - "namespace": "typetest.property.nullable", - }, - "type/property/optionality": { - "package-name": "typetest-property-optional", - "namespace": "typetest.property.optional", - }, - "type/property/additional-properties": { - "package-name": "typetest-property-additionalproperties", - "namespace": "typetest.property.additionalproperties", - }, - "type/scalar": { - "package-name": "typetest-scalar", - "namespace": "typetest.scalar", - }, - "type/property/value-types": { - "package-name": "typetest-property-valuetypes", - "namespace": "typetest.property.valuetypes", - }, - "type/union": { - "package-name": "typetest-union", - "namespace": "typetest.union", - }, - "type/union/discriminated": { - "package-name": "typetest-discriminatedunion", - "namespace": "typetest.discriminatedunion", - }, - "type/file": { - "package-name": "typetest-file", - "namespace": "typetest.file", - }, - "documentation": { - "package-name": "specs-documentation", - "namespace": "specs.documentation", - }, +export const BASE_EMITTER_OPTIONS: Record< + string, + Record | Record[] +> = { + "resiliency/srv-driven/old.tsp": { + "package-name": "resiliency-srv-driven1", + namespace: "resiliency.srv.driven1", + "package-mode": "azure-dataplane", + "package-pprint-name": "ResiliencySrvDriven1", + }, + "resiliency/srv-driven": { + "package-name": "resiliency-srv-driven2", + namespace: "resiliency.srv.driven2", + "package-mode": "azure-dataplane", + "package-pprint-name": "ResiliencySrvDriven2", + }, + "authentication/api-key": { + "clear-output-folder": "true", + }, + "authentication/http/custom": { + "package-name": "authentication-http-custom", + namespace: "authentication.http.custom", + "package-pprint-name": "Authentication Http Custom", + }, + "authentication/union": [ + { + "package-name": "authentication-union", + namespace: "authentication.union", + }, + { + "package-name": "setuppy-authentication-union", + namespace: "setuppy.authentication.union", + "keep-setup-py": "true", + }, + ], + "type/array": { + "package-name": "typetest-array", + namespace: "typetest.array", + }, + "type/dictionary": { + "package-name": "typetest-dictionary", + namespace: "typetest.dictionary", + }, + "type/enum/extensible": { + "package-name": "typetest-enum-extensible", + namespace: "typetest.enum.extensible", + }, + "type/enum/fixed": { + "package-name": "typetest-enum-fixed", + namespace: "typetest.enum.fixed", + }, + "type/model/empty": { + "package-name": "typetest-model-empty", + namespace: "typetest.model.empty", + }, + "type/model/inheritance/enum-discriminator": { + "package-name": "typetest-model-enumdiscriminator", + namespace: "typetest.model.enumdiscriminator", + }, + "type/model/inheritance/nested-discriminator": { + "package-name": "typetest-model-nesteddiscriminator", + namespace: "typetest.model.nesteddiscriminator", + }, + "type/model/inheritance/not-discriminated": { + "package-name": "typetest-model-notdiscriminated", + namespace: "typetest.model.notdiscriminated", + }, + "type/model/inheritance/single-discriminator": { + "package-name": "typetest-model-singlediscriminator", + namespace: "typetest.model.singlediscriminator", + }, + "type/model/inheritance/recursive": { + "package-name": "typetest-model-recursive", + namespace: "typetest.model.recursive", + }, + "type/model/usage": { + "package-name": "typetest-model-usage", + namespace: "typetest.model.usage", + }, + "type/model/visibility": [ + { + "package-name": "typetest-model-visibility", + namespace: "typetest.model.visibility", + }, + { + "package-name": "headasbooleantrue", + namespace: "headasbooleantrue", + "head-as-boolean": "true", + }, + { + "package-name": "headasbooleanfalse", + namespace: "headasbooleanfalse", + "head-as-boolean": "false", + }, + ], + "type/property/nullable": { + "package-name": "typetest-property-nullable", + namespace: "typetest.property.nullable", + }, + "type/property/optionality": { + "package-name": "typetest-property-optional", + namespace: "typetest.property.optional", + }, + "type/property/additional-properties": { + "package-name": "typetest-property-additionalproperties", + namespace: "typetest.property.additionalproperties", + }, + "type/scalar": { + "package-name": "typetest-scalar", + namespace: "typetest.scalar", + }, + "type/property/value-types": { + "package-name": "typetest-property-valuetypes", + namespace: "typetest.property.valuetypes", + }, + "type/union": { + "package-name": "typetest-union", + namespace: "typetest.union", + }, + "type/union/discriminated": { + "package-name": "typetest-discriminatedunion", + namespace: "typetest.discriminatedunion", + }, + "type/file": { + "package-name": "typetest-file", + namespace: "typetest.file", + }, + documentation: { + "package-name": "specs-documentation", + namespace: "specs.documentation", + }, }; // ---- Shared interfaces ---- export interface TspCommand { - outputDir: string; - command: string | string[]; + outputDir: string; + command: string | string[]; } export interface RegenerateFlagsInput { - flavor?: string; - debug?: boolean; - name?: string; - pyodide?: boolean; + flavor?: string; + debug?: boolean; + name?: string; + pyodide?: boolean; } export interface RegenerateFlags { - flavor: string; - debug: boolean; - name?: string; - pyodide?: boolean; + flavor: string; + debug: boolean; + name?: string; + pyodide?: boolean; } export interface ProcessedEmitterOption { - options: Record; - outputDir: string; + options: Record; + outputDir: string; } export interface RegenerateConfig { - azureHttpSpecs: string; - httpSpecs: string; - emitterOptions: Record | Record[]>; - azureEmitterOptions: Record | Record[]>; - preprocess: (flags: RegenerateFlagsInput) => Promise; - getCmdList: (spec: string, flags: RegenerateFlags) => TspCommand[]; - executeCommand: (cmd: TspCommand) => Promise; + azureHttpSpecs: string; + httpSpecs: string; + emitterOptions: Record | Record[]>; + azureEmitterOptions: Record | Record[]>; + preprocess: (flags: RegenerateFlagsInput) => Promise; + getCmdList: (spec: string, flags: RegenerateFlags) => TspCommand[]; + executeCommand: (cmd: TspCommand) => Promise; } // ---- Shared utility functions ---- export function toPosix(dir: string): string { - return dir.replace(/\\/g, "/"); + return dir.replace(/\\/g, "/"); } -export function getEmitterOption(spec: string, flavor: string, config: RegenerateConfig): Record[] { - const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; - const relativeSpec = toPosix(relative(specDir, spec)); - const key = relativeSpec.includes("resiliency/srv-driven/old.tsp") ? relativeSpec : dirname(relativeSpec); - const emitter_options = config.emitterOptions[key] || - (flavor === "azure" ? config.azureEmitterOptions[key] : [{}]) || [{}]; - return Array.isArray(emitter_options) ? emitter_options : [emitter_options]; +export function getEmitterOption( + spec: string, + flavor: string, + config: RegenerateConfig, +): Record[] { + const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; + const relativeSpec = toPosix(relative(specDir, spec)); + const key = relativeSpec.includes("resiliency/srv-driven/old.tsp") + ? relativeSpec + : dirname(relativeSpec); + const emitter_options = config.emitterOptions[key] || + (flavor === "azure" ? config.azureEmitterOptions[key] : [{}]) || [{}]; + return Array.isArray(emitter_options) ? emitter_options : [emitter_options]; } -export async function getSubdirectories(baseDir: string, flags: RegenerateFlags): Promise { - const subdirectories: string[] = []; - - async function searchDir(currentDir: string) { - const items = await promises.readdir(currentDir, { withFileTypes: true }); - - const promisesArray = items.map(async (item) => { - const subDirPath = join(currentDir, item.name); - if (item.isDirectory()) { - const mainTspPath = join(subDirPath, "main.tsp"); - const clientTspPath = join(subDirPath, "client.tsp"); - - const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath)); - - if (SKIP_SPECS.some((skipSpec) => mainTspRelativePath.includes(skipSpec))) return; - - const hasMainTsp = await promises - .access(mainTspPath) - .then(() => true) - .catch(() => false); - const hasClientTsp = await promises - .access(clientTspPath) - .then(() => true) - .catch(() => false); - - if (mainTspRelativePath.toLowerCase().includes(flags.name || "")) { - if (mainTspRelativePath.includes("resiliency/srv-driven")) { - subdirectories.push(resolve(subDirPath, "old.tsp")); - } - if (hasClientTsp) { - subdirectories.push(resolve(subDirPath, "client.tsp")); - } else if (hasMainTsp) { - subdirectories.push(resolve(subDirPath, "main.tsp")); - } - } - - // Recursively search in the subdirectory - await searchDir(subDirPath); - } - }); - - await Promise.all(promisesArray); - } +export async function getSubdirectories( + baseDir: string, + flags: RegenerateFlags, +): Promise { + const subdirectories: string[] = []; + + async function searchDir(currentDir: string) { + const items = await promises.readdir(currentDir, { withFileTypes: true }); + + const promisesArray = items.map(async (item) => { + const subDirPath = join(currentDir, item.name); + if (item.isDirectory()) { + const mainTspPath = join(subDirPath, "main.tsp"); + const clientTspPath = join(subDirPath, "client.tsp"); + + const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath)); + + if (SKIP_SPECS.some((skipSpec) => mainTspRelativePath.includes(skipSpec))) return; + + const hasMainTsp = await promises + .access(mainTspPath) + .then(() => true) + .catch(() => false); + const hasClientTsp = await promises + .access(clientTspPath) + .then(() => true) + .catch(() => false); + + if (mainTspRelativePath.toLowerCase().includes(flags.name || "")) { + if (mainTspRelativePath.includes("resiliency/srv-driven")) { + subdirectories.push(resolve(subDirPath, "old.tsp")); + } + if (hasClientTsp) { + subdirectories.push(resolve(subDirPath, "client.tsp")); + } else if (hasMainTsp) { + subdirectories.push(resolve(subDirPath, "main.tsp")); + } + } + + // Recursively search in the subdirectory + await searchDir(subDirPath); + } + }); + + await Promise.all(promisesArray); + } - await searchDir(baseDir); - return subdirectories; + await searchDir(baseDir); + return subdirectories; } export function defaultPackageName(spec: string, config: RegenerateConfig): string { - const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; - return toPosix(relative(specDir, dirname(spec))) - .replace(/\//g, "-") - .toLowerCase(); + const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; + return toPosix(relative(specDir, dirname(spec))) + .replace(/\//g, "-") + .toLowerCase(); } export function buildOptions( - spec: string, - generatedFolder: string, - flags: RegenerateFlags, - config: RegenerateConfig, + spec: string, + generatedFolder: string, + flags: RegenerateFlags, + config: RegenerateConfig, ): ProcessedEmitterOption[] { - const results: ProcessedEmitterOption[] = []; - for (const emitterConfig of getEmitterOption(spec, flags.flavor, config)) { - const options: Record = { ...emitterConfig }; - if (flags.pyodide) { - options["use-pyodide"] = "true"; - } - options["flavor"] = flags.flavor; - for (const [k, v] of Object.entries(SpecialFlags[flags.flavor] ?? {})) { - options[k] = v; - } - if (options["emitter-output-dir"] === undefined) { - const packageName = options["package-name"] || defaultPackageName(spec, config); - options["emitter-output-dir"] = toPosix(`${generatedFolder}/test/${flags.flavor}/generated/${packageName}`); - } - if (flags.debug) { - options["debug"] = "true"; - } - options["examples-dir"] = toPosix(join(dirname(spec), "examples")); - results.push({ - options, - outputDir: options["emitter-output-dir"], - }); + const results: ProcessedEmitterOption[] = []; + for (const emitterConfig of getEmitterOption(spec, flags.flavor, config)) { + const options: Record = { ...emitterConfig }; + if (flags.pyodide) { + options["use-pyodide"] = "true"; } - return results; -} - -export async function runTaskPool(tasks: Array<() => Promise>, poolLimit: number): Promise { - async function worker(start: number, end: number) { - while (start < end) { - await tasks[start](); - start++; - } + options["flavor"] = flags.flavor; + for (const [k, v] of Object.entries(SpecialFlags[flags.flavor] ?? {})) { + options[k] = v; } - - const workers = []; - let start = 0; - while (start < tasks.length) { - const end = Math.min(start + poolLimit, tasks.length); - workers.push((async () => await worker(start, end))()); - start = end; + if (options["emitter-output-dir"] === undefined) { + const packageName = options["package-name"] || defaultPackageName(spec, config); + options["emitter-output-dir"] = toPosix( + `${generatedFolder}/test/${flags.flavor}/generated/${packageName}`, + ); + } + if (flags.debug) { + options["debug"] = "true"; } - await Promise.all(workers); + options["examples-dir"] = toPosix(join(dirname(spec), "examples")); + results.push({ + options, + outputDir: options["emitter-output-dir"], + }); + } + return results; } -export async function regenerate(flags: RegenerateFlagsInput, config: RegenerateConfig): Promise { - if (flags.flavor === undefined) { - await regenerate({ flavor: "azure", ...flags }, config); - await regenerate({ flavor: "unbranded", ...flags }, config); - } else { - await config.preprocess(flags); - - const flagsResolved: RegenerateFlags = { debug: false, flavor: flags.flavor, ...flags }; - const subdirectoriesForAzure = await getSubdirectories(config.azureHttpSpecs, flagsResolved); - const subdirectoriesForNonAzure = await getSubdirectories(config.httpSpecs, flagsResolved); - const subdirectories = - flags.flavor === "azure" - ? [...subdirectoriesForAzure, ...subdirectoriesForNonAzure] - : subdirectoriesForNonAzure; - const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) => - config.getCmdList(subdirectory, flagsResolved), - ); - - // Create tasks as functions for the pool - const tasks: Array<() => Promise> = cmdList.map((tspCommand) => { - return () => config.executeCommand(tspCommand); - }); - - // Run tasks with a concurrency limit - await runTaskPool(tasks, 30); +export async function runTaskPool( + tasks: Array<() => Promise>, + poolLimit: number, +): Promise { + async function worker(start: number, end: number) { + while (start < end) { + await tasks[start](); + start++; } + } + + const workers = []; + let start = 0; + while (start < tasks.length) { + const end = Math.min(start + poolLimit, tasks.length); + workers.push((async () => await worker(start, end))()); + start = end; + } + await Promise.all(workers); +} + +export async function regenerate( + flags: RegenerateFlagsInput, + config: RegenerateConfig, +): Promise { + if (flags.flavor === undefined) { + await regenerate({ flavor: "azure", ...flags }, config); + await regenerate({ flavor: "unbranded", ...flags }, config); + } else { + await config.preprocess(flags); + + const flagsResolved: RegenerateFlags = { debug: false, flavor: flags.flavor, ...flags }; + const subdirectoriesForAzure = await getSubdirectories(config.azureHttpSpecs, flagsResolved); + const subdirectoriesForNonAzure = await getSubdirectories(config.httpSpecs, flagsResolved); + const subdirectories = + flags.flavor === "azure" + ? [...subdirectoriesForAzure, ...subdirectoriesForNonAzure] + : subdirectoriesForNonAzure; + const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) => + config.getCmdList(subdirectory, flagsResolved), + ); + + // Create tasks as functions for the pool + const tasks: Array<() => Promise> = cmdList.map((tspCommand) => { + return () => config.executeCommand(tspCommand); + }); + + // Run tasks with a concurrency limit + await runTaskPool(tasks, 30); + } } diff --git a/packages/typespec-python/src/lib.ts b/packages/typespec-python/src/lib.ts index 6e85d60424..8062bf9cc4 100644 --- a/packages/typespec-python/src/lib.ts +++ b/packages/typespec-python/src/lib.ts @@ -12,8 +12,10 @@ export interface PythonAzureEmitterOptions extends PythonEmitterOptions { "generate-test"?: boolean; } -export interface PythonSdkContext - extends SdkContext { +export interface PythonSdkContext extends SdkContext< + PythonAzureEmitterOptions, + TServiceOperation +> { __endpointPathParameters: Record[]; } diff --git a/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_special_words_async.py b/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_special_words_async.py index 9f22c8c5d1..6c01e8f073 100644 --- a/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_special_words_async.py +++ b/packages/typespec-python/test/azure/mock_api_tests/asynctests/test_special_words_async.py @@ -63,3 +63,9 @@ async def test_model_properties_dict_methods(client: SpecialWordsClient): @pytest.mark.asyncio async def test_model_properties_with_list(client: SpecialWordsClient): await client.model_properties.with_list(models.ModelWithList(list="ok")) + + +@pytest.mark.asyncio +async def test_extensible_strings(client: SpecialWordsClient): + for enum_value in models.ExtensibleString: + assert enum_value == await client.extensible_strings.put_extensible_string_value(body=enum_value) diff --git a/packages/typespec-python/test/azure/mock_api_tests/test_special_words.py b/packages/typespec-python/test/azure/mock_api_tests/test_special_words.py index cc083c94c0..ab23b59409 100644 --- a/packages/typespec-python/test/azure/mock_api_tests/test_special_words.py +++ b/packages/typespec-python/test/azure/mock_api_tests/test_special_words.py @@ -56,3 +56,8 @@ def test_model_properties_dict_methods(client: SpecialWordsClient): def test_model_properties_with_list(client: SpecialWordsClient): client.model_properties.with_list(models.ModelWithList(list="ok")) + + +def test_extensible_strings(client: SpecialWordsClient): + for enum_value in models.ExtensibleString: + assert enum_value == client.extensible_strings.put_extensible_string_value(body=enum_value) diff --git a/packages/typespec-python/test/unbranded/mock_api_tests/asynctests/test_special_words_async.py b/packages/typespec-python/test/unbranded/mock_api_tests/asynctests/test_special_words_async.py index eb11843ab3..112533fa2d 100644 --- a/packages/typespec-python/test/unbranded/mock_api_tests/asynctests/test_special_words_async.py +++ b/packages/typespec-python/test/unbranded/mock_api_tests/asynctests/test_special_words_async.py @@ -7,6 +7,7 @@ from specialwords.aio import SpecialWordsClient from specialwords.models import models from specialwords.modelproperties import models as model_properties_models +from specialwords.extensiblestrings import models as extensible_strings_models @pytest.fixture @@ -64,3 +65,9 @@ async def test_model_properties_dict_methods(client: SpecialWordsClient): @pytest.mark.asyncio async def test_model_properties_with_list(client: SpecialWordsClient): await client.model_properties.with_list(model_properties_models.ModelWithList(list="ok")) + + +@pytest.mark.asyncio +async def test_extensible_strings(client: SpecialWordsClient): + for enum_value in extensible_strings_models.ExtensibleString: + assert enum_value == await client.extensible_strings.put_extensible_string_value(body=enum_value) diff --git a/packages/typespec-python/test/unbranded/mock_api_tests/test_special_words.py b/packages/typespec-python/test/unbranded/mock_api_tests/test_special_words.py index 89679bfd78..83269cc1e4 100644 --- a/packages/typespec-python/test/unbranded/mock_api_tests/test_special_words.py +++ b/packages/typespec-python/test/unbranded/mock_api_tests/test_special_words.py @@ -7,6 +7,7 @@ from specialwords import SpecialWordsClient from specialwords.models import models from specialwords.modelproperties import models as model_properties_models +from specialwords.extensiblestrings import models as extensible_strings_models @pytest.fixture @@ -58,3 +59,8 @@ def test_model_properties_dict_methods(client: SpecialWordsClient): def test_model_properties_with_list(client: SpecialWordsClient): client.model_properties.with_list(model_properties_models.ModelWithList(list="ok")) + + +def test_extensible_strings(client: SpecialWordsClient): + for enum_value in extensible_strings_models.ExtensibleString: + assert enum_value == client.extensible_strings.put_extensible_string_value(body=enum_value) From e2260e1d32c82b1f0804e5d4ca6180f9cf88c93e Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Thu, 12 Mar 2026 00:47:21 +0000 Subject: [PATCH 3/9] Update dependencies (2026-03-12 00:47:21) --- .../scripts/eng/regenerate-common.ts | 811 +++++++++--------- packages/typespec-python/src/lib.ts | 6 +- pnpm-lock.yaml | 615 +++++++------ 3 files changed, 690 insertions(+), 742 deletions(-) diff --git a/packages/typespec-python/scripts/eng/regenerate-common.ts b/packages/typespec-python/scripts/eng/regenerate-common.ts index 9f9a91266d..9880418935 100644 --- a/packages/typespec-python/scripts/eng/regenerate-common.ts +++ b/packages/typespec-python/scripts/eng/regenerate-common.ts @@ -6,467 +6,444 @@ import { dirname, join, relative, resolve } from "path"; export const SKIP_SPECS: string[] = ["type/file"]; export const SpecialFlags: Record> = { - azure: { - "generate-test": true, - "generate-sample": true, - }, + azure: { + "generate-test": true, + "generate-sample": true, + }, }; // ---- Base emitter options (shared across repos) ---- -export const BASE_AZURE_EMITTER_OPTIONS: Record< - string, - Record | Record[] -> = { - "azure/client-generator-core/access": { - namespace: "specs.azure.clientgenerator.core.access", - }, - "azure/client-generator-core/alternate-type": { - namespace: "specs.azure.clientgenerator.core.alternatetype", - }, - "azure/client-generator-core/api-version": { - namespace: "specs.azure.clientgenerator.core.apiversion", - }, - "azure/client-generator-core/client-initialization/default": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.default", - }, - "azure/client-generator-core/client-initialization/individually": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.individually", - }, - "azure/client-generator-core/client-initialization/individuallyParent": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.individuallyparent", - }, - "azure/client-generator-core/client-location": { - namespace: "specs.azure.clientgenerator.core.clientlocation", - }, - "azure/client-generator-core/deserialize-empty-string-as-null": { - namespace: "specs.azure.clientgenerator.core.emptystring", - }, - "azure/client-generator-core/flatten-property": { - namespace: "specs.azure.clientgenerator.core.flattenproperty", - }, - "azure/client-generator-core/usage": { - namespace: "specs.azure.clientgenerator.core.usage", - }, - "azure/client-generator-core/override": { - namespace: "specs.azure.clientgenerator.core.override", - }, - "azure/client-generator-core/hierarchy-building": { - namespace: "specs.azure.clientgenerator.core.hierarchybuilding", - }, - "azure/core/basic": { - namespace: "specs.azure.core.basic", - }, - "azure/core/lro/rpc": { - namespace: "specs.azure.core.lro.rpc", - }, - "azure/core/lro/standard": { - namespace: "specs.azure.core.lro.standard", - }, - "azure/core/model": { - namespace: "specs.azure.core.model", - }, - "azure/core/page": { - namespace: "specs.azure.core.page", - }, - "azure/core/scalar": { - namespace: "specs.azure.core.scalar", - }, - "azure/core/traits": { - namespace: "specs.azure.core.traits", - }, - "azure/encode/duration": { - namespace: "specs.azure.encode.duration", - }, - "azure/example/basic": { - namespace: "specs.azure.example.basic", - }, - "azure/payload/pageable": { - namespace: "specs.azure.payload.pageable", - }, - "azure/versioning/previewVersion": { - namespace: "specs.azure.versioning.previewversion", - }, - "client/structure/default": { - namespace: "client.structure.service", - }, - "client/structure/multi-client": { - "package-name": "client-structure-multiclient", - namespace: "client.structure.multiclient", - }, - "client/structure/renamed-operation": { - "package-name": "client-structure-renamedoperation", - namespace: "client.structure.renamedoperation", - }, - "client/structure/two-operation-group": { - "package-name": "client-structure-twooperationgroup", - namespace: "client.structure.twooperationgroup", - }, - "client/naming": { - namespace: "client.naming.main", - }, - "client/overload": { - namespace: "client.overload", - }, - "encode/duration": { - namespace: "encode.duration", - }, - "encode/numeric": { - namespace: "encode.numeric", - }, - "parameters/basic": { - namespace: "parameters.basic", - }, - "parameters/spread": { - namespace: "parameters.spread", - }, - "payload/content-negotiation": { - namespace: "payload.contentnegotiation", - }, - "payload/multipart": { - namespace: "payload.multipart", - }, - "serialization/encoded-name/json": { - namespace: "serialization.encodedname.json", - }, - "special-words": { - namespace: "specialwords", - }, - "service/multi-service": { - namespace: "service.multiservice", - }, +export const BASE_AZURE_EMITTER_OPTIONS: Record | Record[]> = { + "azure/client-generator-core/access": { + namespace: "specs.azure.clientgenerator.core.access", + }, + "azure/client-generator-core/alternate-type": { + namespace: "specs.azure.clientgenerator.core.alternatetype", + }, + "azure/client-generator-core/api-version": { + namespace: "specs.azure.clientgenerator.core.apiversion", + }, + "azure/client-generator-core/client-initialization/default": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.default", + }, + "azure/client-generator-core/client-initialization/individually": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.individually", + }, + "azure/client-generator-core/client-initialization/individuallyParent": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.individuallyparent", + }, + "azure/client-generator-core/client-location": { + namespace: "specs.azure.clientgenerator.core.clientlocation", + }, + "azure/client-generator-core/deserialize-empty-string-as-null": { + namespace: "specs.azure.clientgenerator.core.emptystring", + }, + "azure/client-generator-core/flatten-property": { + namespace: "specs.azure.clientgenerator.core.flattenproperty", + }, + "azure/client-generator-core/usage": { + namespace: "specs.azure.clientgenerator.core.usage", + }, + "azure/client-generator-core/override": { + namespace: "specs.azure.clientgenerator.core.override", + }, + "azure/client-generator-core/hierarchy-building": { + namespace: "specs.azure.clientgenerator.core.hierarchybuilding", + }, + "azure/core/basic": { + namespace: "specs.azure.core.basic", + }, + "azure/core/lro/rpc": { + namespace: "specs.azure.core.lro.rpc", + }, + "azure/core/lro/standard": { + namespace: "specs.azure.core.lro.standard", + }, + "azure/core/model": { + namespace: "specs.azure.core.model", + }, + "azure/core/page": { + namespace: "specs.azure.core.page", + }, + "azure/core/scalar": { + namespace: "specs.azure.core.scalar", + }, + "azure/core/traits": { + namespace: "specs.azure.core.traits", + }, + "azure/encode/duration": { + namespace: "specs.azure.encode.duration", + }, + "azure/example/basic": { + namespace: "specs.azure.example.basic", + }, + "azure/payload/pageable": { + namespace: "specs.azure.payload.pageable", + }, + "azure/versioning/previewVersion": { + namespace: "specs.azure.versioning.previewversion", + }, + "client/structure/default": { + namespace: "client.structure.service", + }, + "client/structure/multi-client": { + "package-name": "client-structure-multiclient", + "namespace": "client.structure.multiclient", + }, + "client/structure/renamed-operation": { + "package-name": "client-structure-renamedoperation", + "namespace": "client.structure.renamedoperation", + }, + "client/structure/two-operation-group": { + "package-name": "client-structure-twooperationgroup", + "namespace": "client.structure.twooperationgroup", + }, + "client/naming": { + namespace: "client.naming.main", + }, + "client/overload": { + namespace: "client.overload", + }, + "encode/duration": { + namespace: "encode.duration", + }, + "encode/numeric": { + namespace: "encode.numeric", + }, + "parameters/basic": { + namespace: "parameters.basic", + }, + "parameters/spread": { + namespace: "parameters.spread", + }, + "payload/content-negotiation": { + namespace: "payload.contentnegotiation", + }, + "payload/multipart": { + namespace: "payload.multipart", + }, + "serialization/encoded-name/json": { + namespace: "serialization.encodedname.json", + }, + "special-words": { + namespace: "specialwords", + }, + "service/multi-service": { + namespace: "service.multiservice", + }, }; -export const BASE_EMITTER_OPTIONS: Record< - string, - Record | Record[] -> = { - "resiliency/srv-driven/old.tsp": { - "package-name": "resiliency-srv-driven1", - namespace: "resiliency.srv.driven1", - "package-mode": "azure-dataplane", - "package-pprint-name": "ResiliencySrvDriven1", - }, - "resiliency/srv-driven": { - "package-name": "resiliency-srv-driven2", - namespace: "resiliency.srv.driven2", - "package-mode": "azure-dataplane", - "package-pprint-name": "ResiliencySrvDriven2", - }, - "authentication/api-key": { - "clear-output-folder": "true", - }, - "authentication/http/custom": { - "package-name": "authentication-http-custom", - namespace: "authentication.http.custom", - "package-pprint-name": "Authentication Http Custom", - }, - "authentication/union": [ - { - "package-name": "authentication-union", - namespace: "authentication.union", - }, - { - "package-name": "setuppy-authentication-union", - namespace: "setuppy.authentication.union", - "keep-setup-py": "true", - }, - ], - "type/array": { - "package-name": "typetest-array", - namespace: "typetest.array", - }, - "type/dictionary": { - "package-name": "typetest-dictionary", - namespace: "typetest.dictionary", - }, - "type/enum/extensible": { - "package-name": "typetest-enum-extensible", - namespace: "typetest.enum.extensible", - }, - "type/enum/fixed": { - "package-name": "typetest-enum-fixed", - namespace: "typetest.enum.fixed", - }, - "type/model/empty": { - "package-name": "typetest-model-empty", - namespace: "typetest.model.empty", - }, - "type/model/inheritance/enum-discriminator": { - "package-name": "typetest-model-enumdiscriminator", - namespace: "typetest.model.enumdiscriminator", - }, - "type/model/inheritance/nested-discriminator": { - "package-name": "typetest-model-nesteddiscriminator", - namespace: "typetest.model.nesteddiscriminator", - }, - "type/model/inheritance/not-discriminated": { - "package-name": "typetest-model-notdiscriminated", - namespace: "typetest.model.notdiscriminated", - }, - "type/model/inheritance/single-discriminator": { - "package-name": "typetest-model-singlediscriminator", - namespace: "typetest.model.singlediscriminator", - }, - "type/model/inheritance/recursive": { - "package-name": "typetest-model-recursive", - namespace: "typetest.model.recursive", - }, - "type/model/usage": { - "package-name": "typetest-model-usage", - namespace: "typetest.model.usage", - }, - "type/model/visibility": [ - { - "package-name": "typetest-model-visibility", - namespace: "typetest.model.visibility", - }, - { - "package-name": "headasbooleantrue", - namespace: "headasbooleantrue", - "head-as-boolean": "true", - }, - { - "package-name": "headasbooleanfalse", - namespace: "headasbooleanfalse", - "head-as-boolean": "false", - }, - ], - "type/property/nullable": { - "package-name": "typetest-property-nullable", - namespace: "typetest.property.nullable", - }, - "type/property/optionality": { - "package-name": "typetest-property-optional", - namespace: "typetest.property.optional", - }, - "type/property/additional-properties": { - "package-name": "typetest-property-additionalproperties", - namespace: "typetest.property.additionalproperties", - }, - "type/scalar": { - "package-name": "typetest-scalar", - namespace: "typetest.scalar", - }, - "type/property/value-types": { - "package-name": "typetest-property-valuetypes", - namespace: "typetest.property.valuetypes", - }, - "type/union": { - "package-name": "typetest-union", - namespace: "typetest.union", - }, - "type/union/discriminated": { - "package-name": "typetest-discriminatedunion", - namespace: "typetest.discriminatedunion", - }, - "type/file": { - "package-name": "typetest-file", - namespace: "typetest.file", - }, - documentation: { - "package-name": "specs-documentation", - namespace: "specs.documentation", - }, +export const BASE_EMITTER_OPTIONS: Record | Record[]> = { + "resiliency/srv-driven/old.tsp": { + "package-name": "resiliency-srv-driven1", + "namespace": "resiliency.srv.driven1", + "package-mode": "azure-dataplane", + "package-pprint-name": "ResiliencySrvDriven1", + }, + "resiliency/srv-driven": { + "package-name": "resiliency-srv-driven2", + "namespace": "resiliency.srv.driven2", + "package-mode": "azure-dataplane", + "package-pprint-name": "ResiliencySrvDriven2", + }, + "authentication/api-key": { + "clear-output-folder": "true", + }, + "authentication/http/custom": { + "package-name": "authentication-http-custom", + "namespace": "authentication.http.custom", + "package-pprint-name": "Authentication Http Custom", + }, + "authentication/union": [ + { + "package-name": "authentication-union", + "namespace": "authentication.union", + }, + { + "package-name": "setuppy-authentication-union", + "namespace": "setuppy.authentication.union", + "keep-setup-py": "true", + }, + ], + "type/array": { + "package-name": "typetest-array", + "namespace": "typetest.array", + }, + "type/dictionary": { + "package-name": "typetest-dictionary", + "namespace": "typetest.dictionary", + }, + "type/enum/extensible": { + "package-name": "typetest-enum-extensible", + "namespace": "typetest.enum.extensible", + }, + "type/enum/fixed": { + "package-name": "typetest-enum-fixed", + "namespace": "typetest.enum.fixed", + }, + "type/model/empty": { + "package-name": "typetest-model-empty", + "namespace": "typetest.model.empty", + }, + "type/model/inheritance/enum-discriminator": { + "package-name": "typetest-model-enumdiscriminator", + "namespace": "typetest.model.enumdiscriminator", + }, + "type/model/inheritance/nested-discriminator": { + "package-name": "typetest-model-nesteddiscriminator", + "namespace": "typetest.model.nesteddiscriminator", + }, + "type/model/inheritance/not-discriminated": { + "package-name": "typetest-model-notdiscriminated", + "namespace": "typetest.model.notdiscriminated", + }, + "type/model/inheritance/single-discriminator": { + "package-name": "typetest-model-singlediscriminator", + "namespace": "typetest.model.singlediscriminator", + }, + "type/model/inheritance/recursive": { + "package-name": "typetest-model-recursive", + "namespace": "typetest.model.recursive", + }, + "type/model/usage": { + "package-name": "typetest-model-usage", + "namespace": "typetest.model.usage", + }, + "type/model/visibility": [ + { + "package-name": "typetest-model-visibility", + "namespace": "typetest.model.visibility", + }, + { + "package-name": "headasbooleantrue", + "namespace": "headasbooleantrue", + "head-as-boolean": "true", + }, + { + "package-name": "headasbooleanfalse", + "namespace": "headasbooleanfalse", + "head-as-boolean": "false", + }, + ], + "type/property/nullable": { + "package-name": "typetest-property-nullable", + "namespace": "typetest.property.nullable", + }, + "type/property/optionality": { + "package-name": "typetest-property-optional", + "namespace": "typetest.property.optional", + }, + "type/property/additional-properties": { + "package-name": "typetest-property-additionalproperties", + "namespace": "typetest.property.additionalproperties", + }, + "type/scalar": { + "package-name": "typetest-scalar", + "namespace": "typetest.scalar", + }, + "type/property/value-types": { + "package-name": "typetest-property-valuetypes", + "namespace": "typetest.property.valuetypes", + }, + "type/union": { + "package-name": "typetest-union", + "namespace": "typetest.union", + }, + "type/union/discriminated": { + "package-name": "typetest-discriminatedunion", + "namespace": "typetest.discriminatedunion", + }, + "type/file": { + "package-name": "typetest-file", + "namespace": "typetest.file", + }, + "documentation": { + "package-name": "specs-documentation", + "namespace": "specs.documentation", + }, }; // ---- Shared interfaces ---- export interface TspCommand { - outputDir: string; - command: string | string[]; + outputDir: string; + command: string | string[]; } export interface RegenerateFlagsInput { - flavor?: string; - debug?: boolean; - name?: string; - pyodide?: boolean; + flavor?: string; + debug?: boolean; + name?: string; + pyodide?: boolean; } export interface RegenerateFlags { - flavor: string; - debug: boolean; - name?: string; - pyodide?: boolean; + flavor: string; + debug: boolean; + name?: string; + pyodide?: boolean; } export interface ProcessedEmitterOption { - options: Record; - outputDir: string; + options: Record; + outputDir: string; } export interface RegenerateConfig { - azureHttpSpecs: string; - httpSpecs: string; - emitterOptions: Record | Record[]>; - azureEmitterOptions: Record | Record[]>; - preprocess: (flags: RegenerateFlagsInput) => Promise; - getCmdList: (spec: string, flags: RegenerateFlags) => TspCommand[]; - executeCommand: (cmd: TspCommand) => Promise; + azureHttpSpecs: string; + httpSpecs: string; + emitterOptions: Record | Record[]>; + azureEmitterOptions: Record | Record[]>; + preprocess: (flags: RegenerateFlagsInput) => Promise; + getCmdList: (spec: string, flags: RegenerateFlags) => TspCommand[]; + executeCommand: (cmd: TspCommand) => Promise; } // ---- Shared utility functions ---- export function toPosix(dir: string): string { - return dir.replace(/\\/g, "/"); + return dir.replace(/\\/g, "/"); } -export function getEmitterOption( - spec: string, - flavor: string, - config: RegenerateConfig, -): Record[] { - const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; - const relativeSpec = toPosix(relative(specDir, spec)); - const key = relativeSpec.includes("resiliency/srv-driven/old.tsp") - ? relativeSpec - : dirname(relativeSpec); - const emitter_options = config.emitterOptions[key] || - (flavor === "azure" ? config.azureEmitterOptions[key] : [{}]) || [{}]; - return Array.isArray(emitter_options) ? emitter_options : [emitter_options]; +export function getEmitterOption(spec: string, flavor: string, config: RegenerateConfig): Record[] { + const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; + const relativeSpec = toPosix(relative(specDir, spec)); + const key = relativeSpec.includes("resiliency/srv-driven/old.tsp") ? relativeSpec : dirname(relativeSpec); + const emitter_options = config.emitterOptions[key] || + (flavor === "azure" ? config.azureEmitterOptions[key] : [{}]) || [{}]; + return Array.isArray(emitter_options) ? emitter_options : [emitter_options]; } -export async function getSubdirectories( - baseDir: string, - flags: RegenerateFlags, -): Promise { - const subdirectories: string[] = []; - - async function searchDir(currentDir: string) { - const items = await promises.readdir(currentDir, { withFileTypes: true }); - - const promisesArray = items.map(async (item) => { - const subDirPath = join(currentDir, item.name); - if (item.isDirectory()) { - const mainTspPath = join(subDirPath, "main.tsp"); - const clientTspPath = join(subDirPath, "client.tsp"); - - const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath)); - - if (SKIP_SPECS.some((skipSpec) => mainTspRelativePath.includes(skipSpec))) return; - - const hasMainTsp = await promises - .access(mainTspPath) - .then(() => true) - .catch(() => false); - const hasClientTsp = await promises - .access(clientTspPath) - .then(() => true) - .catch(() => false); - - if (mainTspRelativePath.toLowerCase().includes(flags.name || "")) { - if (mainTspRelativePath.includes("resiliency/srv-driven")) { - subdirectories.push(resolve(subDirPath, "old.tsp")); - } - if (hasClientTsp) { - subdirectories.push(resolve(subDirPath, "client.tsp")); - } else if (hasMainTsp) { - subdirectories.push(resolve(subDirPath, "main.tsp")); - } - } - - // Recursively search in the subdirectory - await searchDir(subDirPath); - } - }); - - await Promise.all(promisesArray); - } +export async function getSubdirectories(baseDir: string, flags: RegenerateFlags): Promise { + const subdirectories: string[] = []; + + async function searchDir(currentDir: string) { + const items = await promises.readdir(currentDir, { withFileTypes: true }); + + const promisesArray = items.map(async (item) => { + const subDirPath = join(currentDir, item.name); + if (item.isDirectory()) { + const mainTspPath = join(subDirPath, "main.tsp"); + const clientTspPath = join(subDirPath, "client.tsp"); + + const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath)); + + if (SKIP_SPECS.some((skipSpec) => mainTspRelativePath.includes(skipSpec))) return; + + const hasMainTsp = await promises + .access(mainTspPath) + .then(() => true) + .catch(() => false); + const hasClientTsp = await promises + .access(clientTspPath) + .then(() => true) + .catch(() => false); + + if (mainTspRelativePath.toLowerCase().includes(flags.name || "")) { + if (mainTspRelativePath.includes("resiliency/srv-driven")) { + subdirectories.push(resolve(subDirPath, "old.tsp")); + } + if (hasClientTsp) { + subdirectories.push(resolve(subDirPath, "client.tsp")); + } else if (hasMainTsp) { + subdirectories.push(resolve(subDirPath, "main.tsp")); + } + } + + // Recursively search in the subdirectory + await searchDir(subDirPath); + } + }); + + await Promise.all(promisesArray); + } - await searchDir(baseDir); - return subdirectories; + await searchDir(baseDir); + return subdirectories; } export function defaultPackageName(spec: string, config: RegenerateConfig): string { - const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; - return toPosix(relative(specDir, dirname(spec))) - .replace(/\//g, "-") - .toLowerCase(); + const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; + return toPosix(relative(specDir, dirname(spec))) + .replace(/\//g, "-") + .toLowerCase(); } export function buildOptions( - spec: string, - generatedFolder: string, - flags: RegenerateFlags, - config: RegenerateConfig, + spec: string, + generatedFolder: string, + flags: RegenerateFlags, + config: RegenerateConfig, ): ProcessedEmitterOption[] { - const results: ProcessedEmitterOption[] = []; - for (const emitterConfig of getEmitterOption(spec, flags.flavor, config)) { - const options: Record = { ...emitterConfig }; - if (flags.pyodide) { - options["use-pyodide"] = "true"; - } - options["flavor"] = flags.flavor; - for (const [k, v] of Object.entries(SpecialFlags[flags.flavor] ?? {})) { - options[k] = v; - } - if (options["emitter-output-dir"] === undefined) { - const packageName = options["package-name"] || defaultPackageName(spec, config); - options["emitter-output-dir"] = toPosix( - `${generatedFolder}/test/${flags.flavor}/generated/${packageName}`, - ); - } - if (flags.debug) { - options["debug"] = "true"; + const results: ProcessedEmitterOption[] = []; + for (const emitterConfig of getEmitterOption(spec, flags.flavor, config)) { + const options: Record = { ...emitterConfig }; + if (flags.pyodide) { + options["use-pyodide"] = "true"; + } + options["flavor"] = flags.flavor; + for (const [k, v] of Object.entries(SpecialFlags[flags.flavor] ?? {})) { + options[k] = v; + } + if (options["emitter-output-dir"] === undefined) { + const packageName = options["package-name"] || defaultPackageName(spec, config); + options["emitter-output-dir"] = toPosix(`${generatedFolder}/test/${flags.flavor}/generated/${packageName}`); + } + if (flags.debug) { + options["debug"] = "true"; + } + options["examples-dir"] = toPosix(join(dirname(spec), "examples")); + results.push({ + options, + outputDir: options["emitter-output-dir"], + }); } - options["examples-dir"] = toPosix(join(dirname(spec), "examples")); - results.push({ - options, - outputDir: options["emitter-output-dir"], - }); - } - return results; + return results; } -export async function runTaskPool( - tasks: Array<() => Promise>, - poolLimit: number, -): Promise { - async function worker(start: number, end: number) { - while (start < end) { - await tasks[start](); - start++; +export async function runTaskPool(tasks: Array<() => Promise>, poolLimit: number): Promise { + async function worker(start: number, end: number) { + while (start < end) { + await tasks[start](); + start++; + } + } + + const workers = []; + let start = 0; + while (start < tasks.length) { + const end = Math.min(start + poolLimit, tasks.length); + workers.push((async () => await worker(start, end))()); + start = end; } - } - - const workers = []; - let start = 0; - while (start < tasks.length) { - const end = Math.min(start + poolLimit, tasks.length); - workers.push((async () => await worker(start, end))()); - start = end; - } - await Promise.all(workers); + await Promise.all(workers); } -export async function regenerate( - flags: RegenerateFlagsInput, - config: RegenerateConfig, -): Promise { - if (flags.flavor === undefined) { - await regenerate({ flavor: "azure", ...flags }, config); - await regenerate({ flavor: "unbranded", ...flags }, config); - } else { - await config.preprocess(flags); - - const flagsResolved: RegenerateFlags = { debug: false, flavor: flags.flavor, ...flags }; - const subdirectoriesForAzure = await getSubdirectories(config.azureHttpSpecs, flagsResolved); - const subdirectoriesForNonAzure = await getSubdirectories(config.httpSpecs, flagsResolved); - const subdirectories = - flags.flavor === "azure" - ? [...subdirectoriesForAzure, ...subdirectoriesForNonAzure] - : subdirectoriesForNonAzure; - const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) => - config.getCmdList(subdirectory, flagsResolved), - ); - - // Create tasks as functions for the pool - const tasks: Array<() => Promise> = cmdList.map((tspCommand) => { - return () => config.executeCommand(tspCommand); - }); - - // Run tasks with a concurrency limit - await runTaskPool(tasks, 30); - } +export async function regenerate(flags: RegenerateFlagsInput, config: RegenerateConfig): Promise { + if (flags.flavor === undefined) { + await regenerate({ flavor: "azure", ...flags }, config); + await regenerate({ flavor: "unbranded", ...flags }, config); + } else { + await config.preprocess(flags); + + const flagsResolved: RegenerateFlags = { debug: false, flavor: flags.flavor, ...flags }; + const subdirectoriesForAzure = await getSubdirectories(config.azureHttpSpecs, flagsResolved); + const subdirectoriesForNonAzure = await getSubdirectories(config.httpSpecs, flagsResolved); + const subdirectories = + flags.flavor === "azure" + ? [...subdirectoriesForAzure, ...subdirectoriesForNonAzure] + : subdirectoriesForNonAzure; + const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) => + config.getCmdList(subdirectory, flagsResolved), + ); + + // Create tasks as functions for the pool + const tasks: Array<() => Promise> = cmdList.map((tspCommand) => { + return () => config.executeCommand(tspCommand); + }); + + // Run tasks with a concurrency limit + await runTaskPool(tasks, 30); + } } diff --git a/packages/typespec-python/src/lib.ts b/packages/typespec-python/src/lib.ts index 8062bf9cc4..6e85d60424 100644 --- a/packages/typespec-python/src/lib.ts +++ b/packages/typespec-python/src/lib.ts @@ -12,10 +12,8 @@ export interface PythonAzureEmitterOptions extends PythonEmitterOptions { "generate-test"?: boolean; } -export interface PythonSdkContext extends SdkContext< - PythonAzureEmitterOptions, - TServiceOperation -> { +export interface PythonSdkContext + extends SdkContext { __endpointPathParameters: Record[]; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 82e9bce5f8..15b1bb237e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,8 +60,8 @@ importers: specifier: ~1.0.2 version: 1.0.2 '@typespec/http-client-python': - specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk3OTY3NS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.2.tgz - version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk3OTY3NS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.2.tgz(sjuqmbhka3ctg7d4p66zqqaix4) + specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz + version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4) fs-extra: specifier: ~11.2.0 version: 11.2.0 @@ -82,8 +82,8 @@ importers: packages/typespec-python: dependencies: '@typespec/http-client-python': - specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk3OTY3NS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.2.tgz - version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk3OTY3NS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.2.tgz(sjuqmbhka3ctg7d4p66zqqaix4) + specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz + version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4) fs-extra: specifier: ~11.2.0 version: 11.2.0 @@ -98,23 +98,23 @@ importers: version: 4.21.0 devDependencies: '@azure-tools/azure-http-specs': - specifier: 0.1.0-alpha.38-dev.6 - version: 0.1.0-alpha.38-dev.6(hnj6frj7evimbkzzvgztepttvq) + specifier: 0.1.0-alpha.38 + version: 0.1.0-alpha.38(r74tij2xjffkelbxz776v3uwiq) '@azure-tools/typespec-autorest': - specifier: ~0.65.0 - version: 0.65.0(pqg7vsrbtnqcusmn36y4aubeqq) + specifier: ~0.66.0 + version: 0.66.0(3lynfktgeabz5vvk7tfr76nhnu) '@azure-tools/typespec-azure-core': - specifier: ~0.65.0 - version: 0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))) + specifier: ~0.66.0 + version: 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) '@azure-tools/typespec-azure-resource-manager': - specifier: ~0.65.0 - version: 0.65.0(johpl2q7psekbtitavec7kyn4q) + specifier: ~0.66.0 + version: 0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4) '@azure-tools/typespec-azure-rulesets': - specifier: ~0.65.0 - version: 0.65.0(@azure-tools/typespec-azure-core@0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.65.0(johpl2q7psekbtitavec7kyn4q))(@azure-tools/typespec-client-generator-core@0.65.3(2mw2ubb6kax6ffmhdfvmqzlbg4))(@typespec/compiler@1.9.0(@types/node@25.0.10)) + specifier: ~0.65.1 + version: 0.65.1(@azure-tools/typespec-azure-core@0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4))(@azure-tools/typespec-client-generator-core@0.66.1(ytghvnltyh5gcxrxscm6xki6su))(@typespec/compiler@1.10.0(@types/node@25.0.10)) '@azure-tools/typespec-client-generator-core': - specifier: ~0.65.3 - version: 0.65.3(2mw2ubb6kax6ffmhdfvmqzlbg4) + specifier: ~0.66.1 + version: 0.66.1(ytghvnltyh5gcxrxscm6xki6su) '@types/fs-extra': specifier: 11.0.4 version: 11.0.4 @@ -131,44 +131,44 @@ importers: specifier: ~17.0.33 version: 17.0.33 '@typespec/compiler': - specifier: ^1.9.0 - version: 1.9.0(@types/node@25.0.10) + specifier: ^1.10.0 + version: 1.10.0(@types/node@25.0.10) '@typespec/events': - specifier: ~0.79.0 - version: 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + specifier: ~0.80.0 + version: 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) '@typespec/http': - specifier: ^1.9.0 - version: 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) + specifier: ^1.10.0 + version: 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) '@typespec/http-specs': - specifier: 0.1.0-alpha.33-dev.2 - version: 0.1.0-alpha.33-dev.2(@types/node@25.0.10)(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))(@typespec/versioning@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))(@typespec/xml@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) + specifier: 0.1.0-alpha.34 + version: 0.1.0-alpha.34(@types/node@25.0.10)(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/versioning@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/xml@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) '@typespec/openapi': - specifier: ^1.9.0 - version: 1.9.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) + specifier: ^1.10.0 + version: 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) '@typespec/rest': - specifier: ~0.79.0 - version: 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) + specifier: ~0.80.0 + version: 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) '@typespec/spec-api': - specifier: 0.1.0-alpha.12 - version: 0.1.0-alpha.12 + specifier: 0.1.0-alpha.13 + version: 0.1.0-alpha.13 '@typespec/spector': - specifier: 0.1.0-alpha.23 - version: 0.1.0-alpha.23(@types/node@25.0.10)(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) + specifier: 0.1.0-alpha.24 + version: 0.1.0-alpha.24(@types/node@25.0.10)(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) '@typespec/sse': - specifier: ~0.79.0 - version: 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/events@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) + specifier: ~0.80.0 + version: 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/events@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) '@typespec/streams': - specifier: ~0.79.0 - version: 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + specifier: ~0.80.0 + version: 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) '@typespec/tspd': specifier: ~0.74.0 version: 0.74.0(@types/node@25.0.10)(typescript@5.9.3) '@typespec/versioning': - specifier: ~0.79.0 - version: 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + specifier: ~0.80.0 + version: 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) '@typespec/xml': - specifier: ~0.79.0 - version: 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + specifier: ~0.80.0 + version: 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) c8: specifier: ^10.1.3 version: 10.1.3 @@ -212,76 +212,76 @@ packages: resolution: {integrity: sha512-T21naRb6JDdjjn2s/zwr9iCIv/9jviL/PRtiWAhi+3UA2WKH2wrId2VqJa4uVD7iEV8BLkuGgFmMkaMBG26hFw==} engines: {node: '>=12.0.0'} - '@azure-tools/azure-http-specs@0.1.0-alpha.38-dev.6': - resolution: {integrity: sha512-MXjnMSArEM1+ADCmSrYDsOlTzL9bQWaVMtrTtOK8+2eAL87dZdfxiFuiPr9jWHYC8m8nIwLZ+h4dE7TSQR0KwQ==} + '@azure-tools/azure-http-specs@0.1.0-alpha.38': + resolution: {integrity: sha512-OkwmMhmSNOV4PO4UA4Tm4ufyA0UPcOrWgZuhybQjWzUq0bbryW9y5ODyknvUV0Z0IOAInW1dUJQ2wRX9pLqNCA==} engines: {node: '>=20.0.0'} peerDependencies: - '@azure-tools/typespec-azure-core': ^0.65.0 || >=0.66.0-dev <0.66.0 - '@typespec/compiler': ^1.9.0 - '@typespec/http': ^1.9.1 - '@typespec/rest': ^0.79.0 || >=0.80.0-dev <0.80.0 - '@typespec/versioning': ^0.79.0 || >=0.80.0-dev <0.80.0 - '@typespec/xml': ^0.79.0 || >=0.80.0-dev <0.80.0 - - '@azure-tools/typespec-autorest@0.65.0': - resolution: {integrity: sha512-R8pZt7rYdA2Hr3nck93OGapkQZe3MSzoYq4PgRtsGDHcvA5Qp7RBQMF/tP5DEcFWDDm+unoQeDpbD02POb/LTA==} + '@azure-tools/typespec-azure-core': ^0.66.0 + '@typespec/compiler': ^1.10.0 + '@typespec/http': ^1.10.0 + '@typespec/rest': ^0.80.0 + '@typespec/versioning': ^0.80.0 + '@typespec/xml': ^0.80.0 + + '@azure-tools/typespec-autorest@0.66.0': + resolution: {integrity: sha512-sznnlQ2Cyxny7bXSl+PzGu+qQf/rrSIvf2qR7G/bqWbK6MNykXwiDk9uR5q93Y8spA9vv4jk38Il4rSXqmAzLQ==} engines: {node: '>=20.0.0'} peerDependencies: - '@azure-tools/typespec-azure-core': ^0.65.0 - '@azure-tools/typespec-azure-resource-manager': ^0.65.0 - '@azure-tools/typespec-client-generator-core': ^0.65.0 - '@typespec/compiler': ^1.9.0 - '@typespec/http': ^1.9.0 - '@typespec/openapi': ^1.9.0 - '@typespec/rest': ^0.79.0 - '@typespec/versioning': ^0.79.0 - '@typespec/xml': ^0.79.0 + '@azure-tools/typespec-azure-core': ^0.66.0 + '@azure-tools/typespec-azure-resource-manager': ^0.66.0 + '@azure-tools/typespec-client-generator-core': ^0.66.0 + '@typespec/compiler': ^1.10.0 + '@typespec/http': ^1.10.0 + '@typespec/openapi': ^1.10.0 + '@typespec/rest': ^0.80.0 + '@typespec/versioning': ^0.80.0 + '@typespec/xml': ^0.80.0 peerDependenciesMeta: '@typespec/xml': optional: true - '@azure-tools/typespec-azure-core@0.65.0': - resolution: {integrity: sha512-dYgHtt0CY0Q9AimdIsMV41jHKLmAT4r++TLwyxAHRbxdiRG+Sll1UKJzOIIoq45Bq64wCfEltu5OOnyPA01/sQ==} + '@azure-tools/typespec-azure-core@0.66.0': + resolution: {integrity: sha512-OBKxRN7AucK3snh+GtLKSDdcZTz08IgcSZlIO3c4KSlmcR5twT1NMyqf1+V8SAhyOdZimndb+ikzrkkgab+GpA==} engines: {node: '>=20.0.0'} peerDependencies: - '@typespec/compiler': ^1.9.0 - '@typespec/http': ^1.9.0 - '@typespec/rest': ^0.79.0 + '@typespec/compiler': ^1.10.0 + '@typespec/http': ^1.10.0 + '@typespec/rest': ^0.80.0 - '@azure-tools/typespec-azure-resource-manager@0.65.0': - resolution: {integrity: sha512-3rvyGDIYSqraZ7jHfq5Bfet8u3ZeERWJWhwWMNvbShnrS/vVR3iuu/1z2M0p5mTRFuwUaSMlL/dbtBp1YqgGAg==} + '@azure-tools/typespec-azure-resource-manager@0.66.0': + resolution: {integrity: sha512-UbgYUaYTt7prsv+RYxd2kiOWjeEeoH56QOqgXnSOFhYzq/h9fyDaQAm6+CY7cklziED+MYy3uMQd1BG9mNwlfQ==} engines: {node: '>=20.0.0'} peerDependencies: - '@azure-tools/typespec-azure-core': ^0.65.0 - '@typespec/compiler': ^1.9.0 - '@typespec/http': ^1.9.0 - '@typespec/openapi': ^1.9.0 - '@typespec/rest': ^0.79.0 - '@typespec/versioning': ^0.79.0 - - '@azure-tools/typespec-azure-rulesets@0.65.0': - resolution: {integrity: sha512-oGuCw61uU9fUASog/1iD1rGeGhcKgnAuyBWA63wRcMMrcW1ZqUK2xvjV1XJuoYRlMxU8HpQShFcvsj715pNVLQ==} + '@azure-tools/typespec-azure-core': ^0.66.0 + '@typespec/compiler': ^1.10.0 + '@typespec/http': ^1.10.0 + '@typespec/openapi': ^1.10.0 + '@typespec/rest': ^0.80.0 + '@typespec/versioning': ^0.80.0 + + '@azure-tools/typespec-azure-rulesets@0.65.1': + resolution: {integrity: sha512-iF9prvhrKX2ZTzUinyLdelfqmKsxla7hwEj/6l4hvgpXEnTckxlCwKqfBTOGwvJ4ofQ5L2DIJWWR2+X8yLWRBg==} engines: {node: '>=20.0.0'} peerDependencies: - '@azure-tools/typespec-azure-core': ^0.65.0 - '@azure-tools/typespec-azure-resource-manager': ^0.65.0 - '@azure-tools/typespec-client-generator-core': ^0.65.0 - '@typespec/compiler': ^1.9.0 + '@azure-tools/typespec-azure-core': ^0.66.0 + '@azure-tools/typespec-azure-resource-manager': ^0.66.0 + '@azure-tools/typespec-client-generator-core': ^0.66.0 + '@typespec/compiler': ^1.10.0 - '@azure-tools/typespec-client-generator-core@0.65.3': - resolution: {integrity: sha512-sJ9J7cIhJE9aISIeJW7uuEdLXkulF6GY64VyHdkgziQADUVRKDwgyoA7uGCfAz84dKU5JtWTJuCsIvfiQDzfSA==} + '@azure-tools/typespec-client-generator-core@0.66.1': + resolution: {integrity: sha512-aGxEeuk5fqeb9YfalNWTQtAVLIzPkbxObcmCH02XtHvd4Vd2u1hy4l714OB3rz0V+xR30IOSRGLfFnbEv3c1oA==} engines: {node: '>=20.0.0'} peerDependencies: - '@azure-tools/typespec-azure-core': ^0.65.0 - '@typespec/compiler': ^1.9.0 - '@typespec/events': ^0.79.0 - '@typespec/http': ^1.9.0 - '@typespec/openapi': ^1.9.0 - '@typespec/rest': ^0.79.0 - '@typespec/sse': ^0.79.0 - '@typespec/streams': ^0.79.0 - '@typespec/versioning': ^0.79.0 - '@typespec/xml': ^0.79.0 + '@azure-tools/typespec-azure-core': ^0.66.0 + '@typespec/compiler': ^1.10.0 + '@typespec/events': ^0.80.0 + '@typespec/http': ^1.10.0 + '@typespec/openapi': ^1.10.0 + '@typespec/rest': ^0.80.0 + '@typespec/sse': ^0.80.0 + '@typespec/streams': ^0.80.0 + '@typespec/versioning': ^0.80.0 + '@typespec/xml': ^0.80.0 '@azure/abort-controller@2.1.2': resolution: {integrity: sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==} @@ -359,20 +359,16 @@ packages: resolution: {integrity: sha512-SriLPKezypIsiZ+TtlFfE46uuBIap2HeaQVS78e1P7rz5OSbq0rsd52WE1mC5f7vAeLiXqv7I7oRhL3WFZEw3Q==} engines: {node: '>=18.0.0'} - '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.28.6': resolution: {integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/code-frame@7.29.0': + resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + '@babel/helper-validator-identifier@7.24.7': + resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.28.5': @@ -1714,115 +1710,115 @@ packages: resolution: {integrity: sha512-b1tx0orFCCh/THWPQa2ZwWzvOeyzzp36vkJYOpVg0u8UVOIsfVrnuC9FqAw9gRKn+rG2VmWQ/zDJZzkxUnj/XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typespec/compiler@1.9.0': - resolution: {integrity: sha512-Rz9fFWQSTJSnhBfZvtA/bDIuO82fknYdtyMsL9lZNJE82rquC6JByHPFsnbGH1VXA0HhMj9L7Oqyp3f0m/BTOA==} + '@typespec/compiler@1.10.0': + resolution: {integrity: sha512-R6BATDkughntPpaxeESJF+wxma5PEjgmnnKvH0/ByqUH8VyhIckQWE9kkP0Uc/EJ0o0VYhe8qCwWQvV70k5lTw==} engines: {node: '>=20.0.0'} hasBin: true - '@typespec/events@0.79.0': - resolution: {integrity: sha512-41R2jA7k21uMArjyUdvnqYzVnPPaSEcGi40dLMiRVP79m6XgnD3INuTdlMblaS1i+5jJ1BtS1o4QhBBuS/5/qg==} + '@typespec/events@0.80.0': + resolution: {integrity: sha512-FrWEUwxhDNbE2YN4fyqV5Qrz9qFJbvPoiKrJM7dexkb7eyhepq3dbc5zZgAm/qFBQ+XxGQQVJ4swXxKT+338fw==} engines: {node: '>=20.0.0'} peerDependencies: - '@typespec/compiler': ^1.9.0 + '@typespec/compiler': ^1.10.0 - '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk3OTY3NS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.2.tgz': - resolution: {tarball: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk3OTY3NS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.2.tgz} - version: 0.27.2 + '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz': + resolution: {tarball: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz} + version: 0.28.0 engines: {node: '>=20.0.0'} peerDependencies: - '@azure-tools/typespec-autorest': '>=0.65.0 <1.0.0' - '@azure-tools/typespec-azure-core': '>=0.65.0 <1.0.0' - '@azure-tools/typespec-azure-resource-manager': '>=0.65.0 <1.0.0' - '@azure-tools/typespec-azure-rulesets': '>=0.65.0 <1.0.0' - '@azure-tools/typespec-client-generator-core': '>=0.65.3 <1.0.0' - '@typespec/compiler': ^1.9.0 - '@typespec/events': '>=0.79.0 <1.0.0' - '@typespec/http': ^1.9.0 - '@typespec/openapi': ^1.9.0 - '@typespec/rest': '>=0.79.0 <1.0.0' - '@typespec/sse': '>=0.79.0 <1.0.0' - '@typespec/streams': '>=0.79.0 <1.0.0' - '@typespec/versioning': '>=0.79.0 <1.0.0' - '@typespec/xml': '>=0.79.0 <1.0.0' - - '@typespec/http-specs@0.1.0-alpha.33-dev.2': - resolution: {integrity: sha512-Ex7PVBJgJAmNLKMbp9jA6+fXalcau3Rf+J7N8XMwCICvz6yFcRJKF07/NsM3Doc87e43VovnrJb2I2tb7LSuDw==} + '@azure-tools/typespec-autorest': '>=0.66.0 <1.0.0' + '@azure-tools/typespec-azure-core': '>=0.66.0 <1.0.0' + '@azure-tools/typespec-azure-resource-manager': '>=0.66.0 <1.0.0' + '@azure-tools/typespec-azure-rulesets': '>=0.65.1 <1.0.0' + '@azure-tools/typespec-client-generator-core': '>=0.66.1 <1.0.0' + '@typespec/compiler': ^1.10.0 + '@typespec/events': '>=0.80.0 <1.0.0' + '@typespec/http': ^1.10.0 + '@typespec/openapi': ^1.10.0 + '@typespec/rest': '>=0.80.0 <1.0.0' + '@typespec/sse': '>=0.80.0 <1.0.0' + '@typespec/streams': '>=0.80.0 <1.0.0' + '@typespec/versioning': '>=0.80.0 <1.0.0' + '@typespec/xml': '>=0.80.0 <1.0.0' + + '@typespec/http-specs@0.1.0-alpha.34': + resolution: {integrity: sha512-xyOOFVUjBgZLYeDaoaZ6Mj6DoLjvDhhUvSRZIpWroAUHL+P30XR2wZ6dKLtOgF9uPn7S2MvpSvAAs4Z+mYh9YQ==} engines: {node: '>=16.0.0'} peerDependencies: - '@typespec/compiler': ^1.9.0 - '@typespec/http': ^1.9.0 - '@typespec/rest': ^0.79.0 || >=0.80.0-dev <0.80.0 - '@typespec/versioning': ^0.79.0 || >=0.80.0-dev <0.80.0 - '@typespec/xml': ^0.79.0 || >=0.80.0-dev <0.80.0 - - '@typespec/http@1.9.1': - resolution: {integrity: sha512-agcwmbB/hK/o9KmM38UB8OGZwLgB17lJ7b4EjqYGpyshqcRMTESMRxnJIH7rRzUq4HJDTqal0tsb8z0K0zXuDg==} + '@typespec/compiler': ^1.10.0 + '@typespec/http': ^1.10.0 + '@typespec/rest': ^0.80.0 + '@typespec/versioning': ^0.80.0 + '@typespec/xml': ^0.80.0 + + '@typespec/http@1.10.0': + resolution: {integrity: sha512-/fj55fmUj4m/FmNdfH0V52menVrmS2r5Xj9d1H+pnjQbxvvaxS906RSRcoF8kbg3PvlibP/Py5u82TAk53AyqA==} engines: {node: '>=20.0.0'} peerDependencies: - '@typespec/compiler': ^1.9.0 - '@typespec/streams': ^0.79.0 + '@typespec/compiler': ^1.10.0 + '@typespec/streams': ^0.80.0 peerDependenciesMeta: '@typespec/streams': optional: true - '@typespec/openapi@1.9.0': - resolution: {integrity: sha512-5ieXCWRLcyFLv3IFk26ena/RW/NxvT5KiHaoNVFRd79J0XZjFcE0Od6Lxxqj4dWmCo3C8oKtOwFoQuie18G3lQ==} + '@typespec/openapi@1.10.0': + resolution: {integrity: sha512-tukmyp+c9CFlA2FdF61XfT9eTe5WXWz6J8pOrJ9+IYg0BcBwhJkvDj6BYpDD6SjxbRr1wO5ZL2Whe6MequsyVw==} engines: {node: '>=20.0.0'} peerDependencies: - '@typespec/compiler': ^1.9.0 - '@typespec/http': ^1.9.0 + '@typespec/compiler': ^1.10.0 + '@typespec/http': ^1.10.0 - '@typespec/rest@0.79.0': - resolution: {integrity: sha512-6QIX7oaUGy/z4rseUrC86LjHxZn8rAAY4fXvGnlPRce6GhEdTb9S9OQPmlPeWngXwCx/07P2+FCR915APqmZxg==} + '@typespec/rest@0.80.0': + resolution: {integrity: sha512-xczXLoB2akSIDner41gQYTS9CG6TdCN0QHYvXBT6ZrYEnBh+pMvdymW//5CSOTamZLOGo9AOJVJaFfwbFA4vQQ==} engines: {node: '>=20.0.0'} peerDependencies: - '@typespec/compiler': ^1.9.0 - '@typespec/http': ^1.9.0 + '@typespec/compiler': ^1.10.0 + '@typespec/http': ^1.10.0 - '@typespec/spec-api@0.1.0-alpha.12': - resolution: {integrity: sha512-cAJ1vj6qk2Vw5g1uesohBItA6fl8KqrTRIwj0DdpPaBtQeaUS7yRJZgGQQz/JLeqDj2B+8z2pooLuvEBtnS+jA==} + '@typespec/spec-api@0.1.0-alpha.13': + resolution: {integrity: sha512-ed0qqGM92vKuangmENUYMeDQZpSlsEMYdeH7+wMl+bIgXzfZ7yv07fNwcmROzSEJd0CzdCTgz+Hp+ifmR4USNQ==} engines: {node: '>=20.0.0'} '@typespec/spec-coverage-sdk@0.1.0-alpha.5-dev.0': resolution: {integrity: sha512-I0p1ogrB3hW16K9IJyxFUz6AvuQ8NDsiLrav5ujGGJbW3gXdp+N6MzxXp5NNs4jfHoryX4kkA7xlTiPqKz3Pcw==} engines: {node: '>=16.0.0'} - '@typespec/spector@0.1.0-alpha.23': - resolution: {integrity: sha512-z5ORR/HnaLKYcTL2a73sUfC4LmuOqlCRmSPF8h5NtUNDpER3s4aLlFu4DgcaVYTgHruiBLMkLyHpfNPxKDzY7g==} + '@typespec/spector@0.1.0-alpha.24': + resolution: {integrity: sha512-POUSFunRZ4UbPEs+YLz0vE9tDoc6chQ/61moyiWO/k4hD2R1KTH0qlRHhuKW8/Y2wa8Jbuex39Ft/O3reHZSTQ==} engines: {node: '>=16.0.0'} hasBin: true - '@typespec/sse@0.79.0': - resolution: {integrity: sha512-YQYlDWCNBza75S360jc51emwntWXMZfkvqXKng+etKP4iCuogJfTX1J8h1yd8tZwkuUNBcklEPCuz3O/+psopg==} + '@typespec/sse@0.80.0': + resolution: {integrity: sha512-/lxYgMaxgEcjBVhep9tf/VnFD2wnkZlkmjUHLeZL8Cuf+qip61Ren6Ml91YtNnnIFYsuuymDzRclrA073ZBR6Q==} engines: {node: '>=20.0.0'} peerDependencies: - '@typespec/compiler': ^1.9.0 - '@typespec/events': ^0.79.0 - '@typespec/http': ^1.9.0 - '@typespec/streams': ^0.79.0 + '@typespec/compiler': ^1.10.0 + '@typespec/events': ^0.80.0 + '@typespec/http': ^1.10.0 + '@typespec/streams': ^0.80.0 - '@typespec/streams@0.79.0': - resolution: {integrity: sha512-nOXpLcEYNdWvLY/6WJ16rD6hGs7bKSmkH+WwgyVwdRON5KJ559quw56pns2DSANw+NaV0lJxJq/8ek5xKCGD6g==} + '@typespec/streams@0.80.0': + resolution: {integrity: sha512-lNvzrvX/ZRIxRpxIBZu90XNsT+uWsMbLtxHd9edspHAiID3c9WKZbl2fnLcPqdR/60odqKve4yGzB9gF58GUDQ==} engines: {node: '>=20.0.0'} peerDependencies: - '@typespec/compiler': ^1.9.0 + '@typespec/compiler': ^1.10.0 '@typespec/tspd@0.74.0': resolution: {integrity: sha512-3djIZittIUk7PWzBvXTyu3UII8WXujjBnKz+ADzKUEPcLCZgVMjdXUAjeYQHM8q7AJr6jAovUqAQSft49wCk3Q==} engines: {node: '>=20.0.0'} hasBin: true - '@typespec/versioning@0.79.0': - resolution: {integrity: sha512-mk65zpKNm+ARyHASnre/lp3o3FKzb0P8Nj96ji182JUy7ShrVCCF0u+bC+ZXQ8ZTRza1d0xBjRC/Xr4iM+Uwag==} + '@typespec/versioning@0.80.0': + resolution: {integrity: sha512-WQCT0jN2lSRfwOy+Cd1KUYzenpKR5TdoX0uW6zQdvxQ9nQZIXoaSaReh9/ldhmSV4xv3p2dqF9oq1cdbVGfJTg==} engines: {node: '>=20.0.0'} peerDependencies: - '@typespec/compiler': ^1.9.0 + '@typespec/compiler': ^1.10.0 - '@typespec/xml@0.79.0': - resolution: {integrity: sha512-BqbbtkL9xuiAhehHKKUCMtRg0a1vjSvoiAOanvTIuoFq3N8PbKVV3dKTcyI/oS3iCCkJErdu11HQcAoD/VsIsA==} + '@typespec/xml@0.80.0': + resolution: {integrity: sha512-Qfy5eyCcOF3xYOU/dejhpmmeY75U1Q9C8XBE+GvSZ3lakRfKBIpT+X6Q07qmKSAbGYJZKYLWCIAy/dgCuu/OAA==} engines: {node: '>=20.0.0'} peerDependencies: - '@typespec/compiler': ^1.9.0 + '@typespec/compiler': ^1.10.0 '@vitest/expect@4.0.18': resolution: {integrity: sha512-8sCWUyckXXYvx4opfzVY03EOiYVxyNrHS5QxX3DAIi5dpJAAkyJezHCP77VMX4HKA2LDT/Jpfo8i2r5BE3GnQQ==} @@ -1912,9 +1908,6 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} - ajv@8.18.0: resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} @@ -2462,9 +2455,9 @@ packages: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} - env-paths@3.0.0: - resolution: {integrity: sha512-dtJUTepzMW3Lm/NPxRf3wP4642UWhjL2sQxc+ym2YMj1m/H2zDNQOlezafzkHwn6sMstjHTwG6iQQsctDW/b1A==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + env-paths@4.0.0: + resolution: {integrity: sha512-pxP8eL2SwwaTRi/KHYwLYXinDs7gL3jxFcBYmEdYfZmZXbaVDvdppd0XBU8qVz03rDfKZMXg1omHCbsJjZrMsw==} + engines: {node: '>=20'} err-code@2.0.3: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} @@ -3174,6 +3167,10 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} + is-safe-filename@0.1.1: + resolution: {integrity: sha512-4SrR7AdnY11LHfDKTZY1u6Ga3RuxZdl3YKWWShO5iyuG5h8QS4GD2tOb04peBJ5I7pXbR+CGBNEhTcwK+FzN3g==} + engines: {node: '>=20'} + is-set@2.0.3: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} @@ -4002,10 +3999,6 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - qs@6.14.0: - resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} - engines: {node: '>=0.6'} - qs@6.14.1: resolution: {integrity: sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==} engines: {node: '>=0.6'} @@ -4160,11 +4153,6 @@ packages: engines: {node: '>=10'} hasBin: true - semver@7.7.1: - resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} - engines: {node: '>=10'} - hasBin: true - semver@7.7.4: resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} engines: {node: '>=10'} @@ -5003,70 +4991,70 @@ snapshots: command-exists: 1.2.9 semver: 7.6.3 - '@azure-tools/azure-http-specs@0.1.0-alpha.38-dev.6(hnj6frj7evimbkzzvgztepttvq)': + '@azure-tools/azure-http-specs@0.1.0-alpha.38(r74tij2xjffkelbxz776v3uwiq)': dependencies: - '@azure-tools/typespec-azure-core': 0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))) - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/rest': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/spec-api': 0.1.0-alpha.12 - '@typespec/spector': 0.1.0-alpha.23(@types/node@25.0.10)(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/versioning': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) - '@typespec/xml': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/rest': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/spec-api': 0.1.0-alpha.13 + '@typespec/spector': 0.1.0-alpha.24(@types/node@25.0.10)(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/versioning': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@typespec/xml': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) transitivePeerDependencies: - '@types/node' - '@typespec/streams' - supports-color - '@azure-tools/typespec-autorest@0.65.0(pqg7vsrbtnqcusmn36y4aubeqq)': + '@azure-tools/typespec-autorest@0.66.0(3lynfktgeabz5vvk7tfr76nhnu)': dependencies: - '@azure-tools/typespec-azure-core': 0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))) - '@azure-tools/typespec-azure-resource-manager': 0.65.0(johpl2q7psekbtitavec7kyn4q) - '@azure-tools/typespec-client-generator-core': 0.65.3(2mw2ubb6kax6ffmhdfvmqzlbg4) - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/openapi': 1.9.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/rest': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/versioning': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) + '@azure-tools/typespec-azure-resource-manager': 0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4) + '@azure-tools/typespec-client-generator-core': 0.66.1(ytghvnltyh5gcxrxscm6xki6su) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/openapi': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/rest': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/versioning': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) optionalDependencies: - '@typespec/xml': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + '@typespec/xml': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) - '@azure-tools/typespec-azure-core@0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))))': + '@azure-tools/typespec-azure-core@0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))))': dependencies: - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/rest': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/rest': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) - '@azure-tools/typespec-azure-resource-manager@0.65.0(johpl2q7psekbtitavec7kyn4q)': + '@azure-tools/typespec-azure-resource-manager@0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4)': dependencies: - '@azure-tools/typespec-azure-core': 0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))) - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/openapi': 1.9.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/rest': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/versioning': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/openapi': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/rest': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/versioning': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) change-case: 5.4.4 pluralize: 8.0.0 - '@azure-tools/typespec-azure-rulesets@0.65.0(@azure-tools/typespec-azure-core@0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.65.0(johpl2q7psekbtitavec7kyn4q))(@azure-tools/typespec-client-generator-core@0.65.3(2mw2ubb6kax6ffmhdfvmqzlbg4))(@typespec/compiler@1.9.0(@types/node@25.0.10))': - dependencies: - '@azure-tools/typespec-azure-core': 0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))) - '@azure-tools/typespec-azure-resource-manager': 0.65.0(johpl2q7psekbtitavec7kyn4q) - '@azure-tools/typespec-client-generator-core': 0.65.3(2mw2ubb6kax6ffmhdfvmqzlbg4) - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - - '@azure-tools/typespec-client-generator-core@0.65.3(2mw2ubb6kax6ffmhdfvmqzlbg4)': - dependencies: - '@azure-tools/typespec-azure-core': 0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))) - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/events': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/openapi': 1.9.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/rest': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/sse': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/events@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/streams': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) - '@typespec/versioning': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) - '@typespec/xml': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + '@azure-tools/typespec-azure-rulesets@0.65.1(@azure-tools/typespec-azure-core@0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4))(@azure-tools/typespec-client-generator-core@0.66.1(ytghvnltyh5gcxrxscm6xki6su))(@typespec/compiler@1.10.0(@types/node@25.0.10))': + dependencies: + '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) + '@azure-tools/typespec-azure-resource-manager': 0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4) + '@azure-tools/typespec-client-generator-core': 0.66.1(ytghvnltyh5gcxrxscm6xki6su) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + + '@azure-tools/typespec-client-generator-core@0.66.1(ytghvnltyh5gcxrxscm6xki6su)': + dependencies: + '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/events': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/openapi': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/rest': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/sse': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/events@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/streams': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@typespec/versioning': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@typespec/xml': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) change-case: 5.4.4 pluralize: 8.0.0 yaml: 2.8.2 @@ -5228,13 +5216,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/code-frame@7.27.1': + '@babel/code-frame@7.28.6': dependencies: - '@babel/helper-validator-identifier': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/code-frame@7.28.6': + '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.28.5 js-tokens: 4.0.0 @@ -5242,8 +5230,6 @@ snapshots: '@babel/helper-validator-identifier@7.24.7': {} - '@babel/helper-validator-identifier@7.27.1': {} - '@babel/helper-validator-identifier@7.28.5': {} '@bcoe/v8-coverage@1.0.2': {} @@ -5852,8 +5838,8 @@ snapshots: '@modelcontextprotocol/sdk@1.25.3(hono@4.11.7)(zod@3.25.76)': dependencies: '@hono/node-server': 1.19.9(hono@4.11.7) - ajv: 8.17.1 - ajv-formats: 3.0.1(ajv@8.17.1) + ajv: 8.18.0 + ajv-formats: 3.0.1(ajv@8.18.0) content-type: 1.0.5 cors: 2.8.6 cross-spawn: 7.0.6 @@ -6687,19 +6673,19 @@ snapshots: '@typescript-eslint/types': 8.7.0 eslint-visitor-keys: 3.4.3 - '@typespec/compiler@1.9.0(@types/node@25.0.10)': + '@typespec/compiler@1.10.0(@types/node@25.0.10)': dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.29.0 '@inquirer/prompts': 8.0.2(@types/node@25.0.10) - ajv: 8.17.1 + ajv: 8.18.0 change-case: 5.4.4 - env-paths: 3.0.0 + env-paths: 4.0.0 globby: 16.1.0 is-unicode-supported: 2.1.0 mustache: 4.2.0 picocolors: 1.1.1 prettier: 3.8.1 - semver: 7.7.1 + semver: 7.7.4 tar: 7.5.2 temporal-polyfill: 0.3.0 vscode-languageserver: 9.0.1 @@ -6709,26 +6695,26 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@typespec/events@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))': - dependencies: - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - - '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk3OTY3NS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.27.2.tgz(sjuqmbhka3ctg7d4p66zqqaix4)': - dependencies: - '@azure-tools/typespec-autorest': 0.65.0(pqg7vsrbtnqcusmn36y4aubeqq) - '@azure-tools/typespec-azure-core': 0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))) - '@azure-tools/typespec-azure-resource-manager': 0.65.0(johpl2q7psekbtitavec7kyn4q) - '@azure-tools/typespec-azure-rulesets': 0.65.0(@azure-tools/typespec-azure-core@0.65.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.65.0(johpl2q7psekbtitavec7kyn4q))(@azure-tools/typespec-client-generator-core@0.65.3(2mw2ubb6kax6ffmhdfvmqzlbg4))(@typespec/compiler@1.9.0(@types/node@25.0.10)) - '@azure-tools/typespec-client-generator-core': 0.65.3(2mw2ubb6kax6ffmhdfvmqzlbg4) - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/events': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/openapi': 1.9.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/rest': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/sse': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/events@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/streams': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) - '@typespec/versioning': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) - '@typespec/xml': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + '@typespec/events@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))': + dependencies: + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + + '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4)': + dependencies: + '@azure-tools/typespec-autorest': 0.66.0(3lynfktgeabz5vvk7tfr76nhnu) + '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) + '@azure-tools/typespec-azure-resource-manager': 0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4) + '@azure-tools/typespec-azure-rulesets': 0.65.1(@azure-tools/typespec-azure-core@0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))))(@azure-tools/typespec-azure-resource-manager@0.66.0(k6nr6f5qksyfcg3hsm34qlzqf4))(@azure-tools/typespec-client-generator-core@0.66.1(ytghvnltyh5gcxrxscm6xki6su))(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@azure-tools/typespec-client-generator-core': 0.66.1(ytghvnltyh5gcxrxscm6xki6su) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/events': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/openapi': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/rest': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/sse': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/events@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/streams': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@typespec/versioning': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@typespec/xml': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) js-yaml: 4.1.1 marked: 15.0.7 pyodide: 0.26.2 @@ -6738,38 +6724,38 @@ snapshots: - bufferutil - utf-8-validate - '@typespec/http-specs@0.1.0-alpha.33-dev.2(@types/node@25.0.10)(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))(@typespec/versioning@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))(@typespec/xml@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))': + '@typespec/http-specs@0.1.0-alpha.34(@types/node@25.0.10)(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/versioning@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/xml@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))': dependencies: - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/rest': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/spec-api': 0.1.0-alpha.12 - '@typespec/spector': 0.1.0-alpha.23(@types/node@25.0.10)(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/versioning': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) - '@typespec/xml': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/rest': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/spec-api': 0.1.0-alpha.13 + '@typespec/spector': 0.1.0-alpha.24(@types/node@25.0.10)(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/versioning': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@typespec/xml': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) deep-equal: 2.2.3 transitivePeerDependencies: - '@types/node' - '@typespec/streams' - supports-color - '@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))': + '@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))': dependencies: - '@typespec/compiler': 1.9.0(@types/node@25.0.10) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) optionalDependencies: - '@typespec/streams': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + '@typespec/streams': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) - '@typespec/openapi@1.9.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))': + '@typespec/openapi@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))': dependencies: - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) - '@typespec/rest@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))': + '@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))': dependencies: - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) - '@typespec/spec-api@0.1.0-alpha.12': + '@typespec/spec-api@0.1.0-alpha.13': dependencies: deep-equal: 2.2.3 express: 5.2.1 @@ -6785,16 +6771,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typespec/spector@0.1.0-alpha.23(@types/node@25.0.10)(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))': + '@typespec/spector@0.1.0-alpha.24(@types/node@25.0.10)(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))': dependencies: '@azure/identity': 4.13.0 - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/rest': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))) - '@typespec/spec-api': 0.1.0-alpha.12 + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/rest': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))) + '@typespec/spec-api': 0.1.0-alpha.13 '@typespec/spec-coverage-sdk': 0.1.0-alpha.5-dev.0 - '@typespec/versioning': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) - ajv: 8.17.1 + '@typespec/versioning': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) + ajv: 8.18.0 body-parser: 2.2.2 deep-equal: 2.2.3 express: 5.2.1 @@ -6812,16 +6798,16 @@ snapshots: - '@typespec/streams' - supports-color - '@typespec/sse@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/events@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))(@typespec/http@1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)))': + '@typespec/sse@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/events@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))': dependencies: - '@typespec/compiler': 1.9.0(@types/node@25.0.10) - '@typespec/events': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) - '@typespec/http': 1.9.1(@typespec/compiler@1.9.0(@types/node@25.0.10))(@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))) - '@typespec/streams': 0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10)) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) + '@typespec/events': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) + '@typespec/http': 1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))) + '@typespec/streams': 0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)) - '@typespec/streams@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))': + '@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))': dependencies: - '@typespec/compiler': 1.9.0(@types/node@25.0.10) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) '@typespec/tspd@0.74.0(@types/node@25.0.10)(typescript@5.9.3)': dependencies: @@ -6832,7 +6818,7 @@ snapshots: '@microsoft/api-extractor-model': 7.33.4(@types/node@25.0.10) '@microsoft/tsdoc': 0.16.0 '@microsoft/tsdoc-config': 0.18.1 - '@typespec/compiler': 1.9.0(@types/node@25.0.10) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) picocolors: 1.1.1 prettier: 3.8.1 typedoc: 0.28.4(typescript@5.9.3) @@ -6843,13 +6829,13 @@ snapshots: - '@types/node' - typescript - '@typespec/versioning@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))': + '@typespec/versioning@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))': dependencies: - '@typespec/compiler': 1.9.0(@types/node@25.0.10) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) - '@typespec/xml@0.79.0(@typespec/compiler@1.9.0(@types/node@25.0.10))': + '@typespec/xml@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))': dependencies: - '@typespec/compiler': 1.9.0(@types/node@25.0.10) + '@typespec/compiler': 1.10.0(@types/node@25.0.10) '@vitest/expect@4.0.18': dependencies: @@ -6931,10 +6917,6 @@ snapshots: optionalDependencies: ajv: 8.18.0 - ajv-formats@3.0.1(ajv@8.17.1): - optionalDependencies: - ajv: 8.17.1 - ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: ajv: 8.18.0 @@ -6946,13 +6928,6 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.17.1: - dependencies: - fast-deep-equal: 3.1.3 - fast-uri: 3.0.1 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 @@ -7076,7 +7051,7 @@ snapshots: bytes: 3.1.2 content-type: 1.0.5 debug: 4.4.3 - http-errors: 2.0.0 + http-errors: 2.0.1 iconv-lite: 0.7.2 on-finished: 2.4.1 qs: 6.14.1 @@ -7600,7 +7575,9 @@ snapshots: env-paths@2.2.1: {} - env-paths@3.0.0: {} + env-paths@4.0.0: + dependencies: + is-safe-filename: 0.1.1 err-code@2.0.3: {} @@ -7956,19 +7933,19 @@ snapshots: etag: 1.8.1 finalhandler: 2.1.0 fresh: 2.0.0 - http-errors: 2.0.0 + http-errors: 2.0.1 merge-descriptors: 2.0.0 mime-types: 3.0.1 on-finished: 2.4.1 once: 1.4.0 parseurl: 1.3.3 proxy-addr: 2.0.7 - qs: 6.14.0 + qs: 6.14.1 range-parser: 1.2.1 router: 2.2.0 send: 1.2.0 serve-static: 2.2.0 - statuses: 2.0.1 + statuses: 2.0.2 type-is: 2.0.1 vary: 1.1.2 transitivePeerDependencies: @@ -8057,7 +8034,7 @@ snapshots: escape-html: 1.0.3 on-finished: 2.4.1 parseurl: 1.3.3 - statuses: 2.0.1 + statuses: 2.0.2 transitivePeerDependencies: - supports-color @@ -8483,6 +8460,8 @@ snapshots: call-bind: 1.0.7 has-tostringtag: 1.0.2 + is-safe-filename@0.1.1: {} + is-set@2.0.3: {} is-shared-array-buffer@1.0.3: @@ -9253,7 +9232,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.27.1 + '@babel/code-frame': 7.28.6 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -9356,10 +9335,6 @@ snapshots: dependencies: side-channel: 1.1.0 - qs@6.14.0: - dependencies: - side-channel: 1.1.0 - qs@6.14.1: dependencies: side-channel: 1.1.0 @@ -9535,8 +9510,6 @@ snapshots: semver@7.6.3: {} - semver@7.7.1: {} - semver@7.7.4: {} send@0.19.0: @@ -9564,12 +9537,12 @@ snapshots: escape-html: 1.0.3 etag: 1.8.1 fresh: 2.0.0 - http-errors: 2.0.0 + http-errors: 2.0.1 mime-types: 3.0.1 ms: 2.1.3 on-finished: 2.4.1 range-parser: 1.2.1 - statuses: 2.0.1 + statuses: 2.0.2 transitivePeerDependencies: - supports-color From 1d9ef8eab3745a741e6c688199fdc2ce97063044 Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Thu, 12 Mar 2026 00:52:44 +0000 Subject: [PATCH 4/9] Regenerate for typespec-python (2026-03-12 00:52:44) --- .../azure/example/basic/models/_enums.py | 1 - .../resources/models/_enums.py | 4 - .../second/sub/models/_enums.py | 1 - .../firstnamespace/models/_enums.py | 4 +- .../secondnamespace/models/_enums.py | 4 +- .../client/naming/main/models/_enums.py | 3 - .../clientoperationgroup/models/_enums.py | 5 - .../client/structure/service/models/_enums.py | 5 - .../structure/multiclient/models/_enums.py | 5 - .../renamedoperation/models/_enums.py | 5 - .../twooperationgroup/models/_enums.py | 5 - .../encode/array/models/_enums.py | 6 - .../server/path/multiple/models/_enums.py | 2 +- .../service/multiservice/models/_enums.py | 4 - .../special-words/apiview-properties.json | 3 + ...ial_words_extensible_strings_operations.py | 25 ++++ ...rds_extensible_strings_operations_async.py | 26 ++++ .../special-words/specialwords/_client.py | 13 +- .../special-words/specialwords/aio/_client.py | 13 +- .../specialwords/aio/operations/__init__.py | 2 + .../aio/operations/_operations.py | 95 +++++++++++- .../specialwords/models/__init__.py | 5 + .../specialwords/models/_enums.py | 48 +++++++ .../specialwords/operations/__init__.py | 2 + .../specialwords/operations/_operations.py | 112 ++++++++++++++- .../streaming-jsonl/apiview-properties.json | 1 + .../streaming/jsonl/basic/models/__init__.py | 27 ++++ .../streaming/jsonl/basic/models/_models.py | 40 ++++++ .../streaming/jsonl/basic/models/_patch.py | 21 +++ .../model/enumdiscriminator/models/_enums.py | 4 +- .../model/enumdiscriminator/models/_models.py | 8 +- .../property/valuetypes/models/_enums.py | 1 - .../property/valuetypes/models/_models.py | 4 +- .../typetest/union/models/_enums.py | 2 - .../versioning/added/models/_enums.py | 3 - .../versioning/removed/models/_enums.py | 3 - .../versioning/renamedfrom/models/_enums.py | 1 - .../encode/array/models/_enums.py | 6 - .../server/path/multiple/models/_enums.py | 2 +- .../special-words/specialwords/_client.py | 6 + .../special-words/specialwords/aio/_client.py | 6 + .../extensiblestrings/__init__.py | 1 + .../extensiblestrings/aio/__init__.py | 1 + .../aio/operations/__init__.py | 19 +++ .../aio/operations/_operations.py | 115 +++++++++++++++ .../aio/operations/_patch.py | 18 +++ .../extensiblestrings/models/__init__.py | 21 +++ .../extensiblestrings/models/_enums.py | 42 ++++++ .../extensiblestrings/models/_patch.py | 18 +++ .../extensiblestrings/operations/__init__.py | 19 +++ .../operations/_operations.py | 135 ++++++++++++++++++ .../extensiblestrings/operations/_patch.py | 18 +++ .../streaming/jsonl/basic/models/__init__.py | 21 +++ .../streaming/jsonl/basic/models/_models.py | 34 +++++ .../streaming/jsonl/basic/models/_patch.py | 18 +++ .../model/enumdiscriminator/models/_enums.py | 4 +- .../model/enumdiscriminator/models/_models.py | 8 +- .../property/valuetypes/models/_enums.py | 1 - .../property/valuetypes/models/_models.py | 4 +- .../typetest/union/models/_enums.py | 2 - .../versioning/added/models/_enums.py | 3 - .../versioning/removed/models/_enums.py | 3 - .../versioning/renamedfrom/models/_enums.py | 1 - 63 files changed, 943 insertions(+), 96 deletions(-) create mode 100644 packages/typespec-python/test/azure/generated/special-words/generated_tests/test_special_words_extensible_strings_operations.py create mode 100644 packages/typespec-python/test/azure/generated/special-words/generated_tests/test_special_words_extensible_strings_operations_async.py create mode 100644 packages/typespec-python/test/azure/generated/special-words/specialwords/models/_enums.py create mode 100644 packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/__init__.py create mode 100644 packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/_models.py create mode 100644 packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/_patch.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/__init__.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/__init__.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/__init__.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/_operations.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/_patch.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/__init__.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_enums.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_patch.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/__init__.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/_operations.py create mode 100644 packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/_patch.py create mode 100644 packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/__init__.py create mode 100644 packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/_models.py create mode 100644 packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/_patch.py diff --git a/packages/typespec-python/test/azure/generated/azure-example-basic/specs/azure/example/basic/models/_enums.py b/packages/typespec-python/test/azure/generated/azure-example-basic/specs/azure/example/basic/models/_enums.py index 98106e61e0..f152be28fe 100644 --- a/packages/typespec-python/test/azure/generated/azure-example-basic/specs/azure/example/basic/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/azure-example-basic/specs/azure/example/basic/models/_enums.py @@ -14,4 +14,3 @@ class EnumEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of Enum.""" ENUM_VALUE1 = "EnumValue1" - """ENUM_VALUE1.""" diff --git a/packages/typespec-python/test/azure/generated/azure-resource-manager-resources/azure/resourcemanager/resources/models/_enums.py b/packages/typespec-python/test/azure/generated/azure-resource-manager-resources/azure/resourcemanager/resources/models/_enums.py index 81672497c8..9c49e6f3b7 100644 --- a/packages/typespec-python/test/azure/generated/azure-resource-manager-resources/azure/resourcemanager/resources/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/azure-resource-manager-resources/azure/resourcemanager/resources/models/_enums.py @@ -33,10 +33,6 @@ class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): CANCELED = "Canceled" """Resource creation was canceled.""" PROVISIONING = "Provisioning" - """PROVISIONING.""" UPDATING = "Updating" - """UPDATING.""" DELETING = "Deleting" - """DELETING.""" ACCEPTED = "Accepted" - """ACCEPTED.""" diff --git a/packages/typespec-python/test/azure/generated/client-namespace/client/clientnamespace/second/sub/models/_enums.py b/packages/typespec-python/test/azure/generated/client-namespace/client/clientnamespace/second/sub/models/_enums.py index 3031f9651f..c2a45b1ecb 100644 --- a/packages/typespec-python/test/azure/generated/client-namespace/client/clientnamespace/second/sub/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-namespace/client/clientnamespace/second/sub/models/_enums.py @@ -14,4 +14,3 @@ class SecondClientEnumType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of SecondClientEnumType.""" SECOND = "second" - """SECOND.""" diff --git a/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/firstnamespace/models/_enums.py b/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/firstnamespace/models/_enums.py index c3085f4b88..d98414d2ea 100644 --- a/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/firstnamespace/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/firstnamespace/models/_enums.py @@ -14,6 +14,6 @@ class Status(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Status enum in first namespace.""" ACTIVE = "active" - """Active status.""" + """Active status""" INACTIVE = "inactive" - """Inactive status.""" + """Inactive status""" diff --git a/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/secondnamespace/models/_enums.py b/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/secondnamespace/models/_enums.py index 931969e530..e33decedd7 100644 --- a/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/secondnamespace/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/secondnamespace/models/_enums.py @@ -14,6 +14,6 @@ class SecondStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Status enum in second namespace.""" RUNNING = "running" - """Running status.""" + """Running status""" STOPPED = "stopped" - """Stopped status.""" + """Stopped status""" diff --git a/packages/typespec-python/test/azure/generated/client-naming/client/naming/main/models/_enums.py b/packages/typespec-python/test/azure/generated/client-naming/client/naming/main/models/_enums.py index c044283ff2..f9715a7ef7 100644 --- a/packages/typespec-python/test/azure/generated/client-naming/client/naming/main/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-naming/client/naming/main/models/_enums.py @@ -14,13 +14,10 @@ class ClientExtensibleEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientExtensibleEnum.""" ENUM_VALUE1 = "value1" - """ENUM_VALUE1.""" class ExtensibleEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ExtensibleEnum.""" CLIENT_ENUM_VALUE1 = "value1" - """CLIENT_ENUM_VALUE1.""" CLIENT_ENUM_VALUE2 = "value2" - """CLIENT_ENUM_VALUE2.""" diff --git a/packages/typespec-python/test/azure/generated/client-structure-clientoperationgroup/client/structure/clientoperationgroup/models/_enums.py b/packages/typespec-python/test/azure/generated/client-structure-clientoperationgroup/client/structure/clientoperationgroup/models/_enums.py index 8b6a08d878..40cfd7a2cd 100644 --- a/packages/typespec-python/test/azure/generated/client-structure-clientoperationgroup/client/structure/clientoperationgroup/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-structure-clientoperationgroup/client/structure/clientoperationgroup/models/_enums.py @@ -14,12 +14,7 @@ class ClientType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientType.""" DEFAULT = "default" - """DEFAULT.""" MULTI_CLIENT = "multi-client" - """MULTI_CLIENT.""" RENAMED_OPERATION = "renamed-operation" - """RENAMED_OPERATION.""" TWO_OPERATION_GROUP = "two-operation-group" - """TWO_OPERATION_GROUP.""" CLIENT_OPERATION_GROUP = "client-operation-group" - """CLIENT_OPERATION_GROUP.""" diff --git a/packages/typespec-python/test/azure/generated/client-structure-default/client/structure/service/models/_enums.py b/packages/typespec-python/test/azure/generated/client-structure-default/client/structure/service/models/_enums.py index 8b6a08d878..40cfd7a2cd 100644 --- a/packages/typespec-python/test/azure/generated/client-structure-default/client/structure/service/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-structure-default/client/structure/service/models/_enums.py @@ -14,12 +14,7 @@ class ClientType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientType.""" DEFAULT = "default" - """DEFAULT.""" MULTI_CLIENT = "multi-client" - """MULTI_CLIENT.""" RENAMED_OPERATION = "renamed-operation" - """RENAMED_OPERATION.""" TWO_OPERATION_GROUP = "two-operation-group" - """TWO_OPERATION_GROUP.""" CLIENT_OPERATION_GROUP = "client-operation-group" - """CLIENT_OPERATION_GROUP.""" diff --git a/packages/typespec-python/test/azure/generated/client-structure-multiclient/client/structure/multiclient/models/_enums.py b/packages/typespec-python/test/azure/generated/client-structure-multiclient/client/structure/multiclient/models/_enums.py index 8b6a08d878..40cfd7a2cd 100644 --- a/packages/typespec-python/test/azure/generated/client-structure-multiclient/client/structure/multiclient/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-structure-multiclient/client/structure/multiclient/models/_enums.py @@ -14,12 +14,7 @@ class ClientType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientType.""" DEFAULT = "default" - """DEFAULT.""" MULTI_CLIENT = "multi-client" - """MULTI_CLIENT.""" RENAMED_OPERATION = "renamed-operation" - """RENAMED_OPERATION.""" TWO_OPERATION_GROUP = "two-operation-group" - """TWO_OPERATION_GROUP.""" CLIENT_OPERATION_GROUP = "client-operation-group" - """CLIENT_OPERATION_GROUP.""" diff --git a/packages/typespec-python/test/azure/generated/client-structure-renamedoperation/client/structure/renamedoperation/models/_enums.py b/packages/typespec-python/test/azure/generated/client-structure-renamedoperation/client/structure/renamedoperation/models/_enums.py index 8b6a08d878..40cfd7a2cd 100644 --- a/packages/typespec-python/test/azure/generated/client-structure-renamedoperation/client/structure/renamedoperation/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-structure-renamedoperation/client/structure/renamedoperation/models/_enums.py @@ -14,12 +14,7 @@ class ClientType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientType.""" DEFAULT = "default" - """DEFAULT.""" MULTI_CLIENT = "multi-client" - """MULTI_CLIENT.""" RENAMED_OPERATION = "renamed-operation" - """RENAMED_OPERATION.""" TWO_OPERATION_GROUP = "two-operation-group" - """TWO_OPERATION_GROUP.""" CLIENT_OPERATION_GROUP = "client-operation-group" - """CLIENT_OPERATION_GROUP.""" diff --git a/packages/typespec-python/test/azure/generated/client-structure-twooperationgroup/client/structure/twooperationgroup/models/_enums.py b/packages/typespec-python/test/azure/generated/client-structure-twooperationgroup/client/structure/twooperationgroup/models/_enums.py index 8b6a08d878..40cfd7a2cd 100644 --- a/packages/typespec-python/test/azure/generated/client-structure-twooperationgroup/client/structure/twooperationgroup/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-structure-twooperationgroup/client/structure/twooperationgroup/models/_enums.py @@ -14,12 +14,7 @@ class ClientType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientType.""" DEFAULT = "default" - """DEFAULT.""" MULTI_CLIENT = "multi-client" - """MULTI_CLIENT.""" RENAMED_OPERATION = "renamed-operation" - """RENAMED_OPERATION.""" TWO_OPERATION_GROUP = "two-operation-group" - """TWO_OPERATION_GROUP.""" CLIENT_OPERATION_GROUP = "client-operation-group" - """CLIENT_OPERATION_GROUP.""" diff --git a/packages/typespec-python/test/azure/generated/encode-array/encode/array/models/_enums.py b/packages/typespec-python/test/azure/generated/encode-array/encode/array/models/_enums.py index fc527f9045..498e7cc1e1 100644 --- a/packages/typespec-python/test/azure/generated/encode-array/encode/array/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/encode-array/encode/array/models/_enums.py @@ -14,19 +14,13 @@ class Colors(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of Colors.""" BLUE = "blue" - """BLUE.""" RED = "red" - """RED.""" GREEN = "green" - """GREEN.""" class ColorsExtensibleEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ColorsExtensibleEnum.""" BLUE = "blue" - """BLUE.""" RED = "red" - """RED.""" GREEN = "green" - """GREEN.""" diff --git a/packages/typespec-python/test/azure/generated/server-path-multiple/server/path/multiple/models/_enums.py b/packages/typespec-python/test/azure/generated/server-path-multiple/server/path/multiple/models/_enums.py index cb2e861bd3..f7253648a1 100644 --- a/packages/typespec-python/test/azure/generated/server-path-multiple/server/path/multiple/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/server-path-multiple/server/path/multiple/models/_enums.py @@ -14,4 +14,4 @@ class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Service versions.""" V1_0 = "v1.0" - """Version 1.0.""" + """Version 1.0""" diff --git a/packages/typespec-python/test/azure/generated/service-multi-service/service/multiservice/models/_enums.py b/packages/typespec-python/test/azure/generated/service-multi-service/service/multiservice/models/_enums.py index 5450500973..da729d08d7 100644 --- a/packages/typespec-python/test/azure/generated/service-multi-service/service/multiservice/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/service-multi-service/service/multiservice/models/_enums.py @@ -14,15 +14,11 @@ class VersionsA(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of VersionsA.""" AV1 = "av1" - """AV1.""" AV2 = "av2" - """AV2.""" class VersionsB(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of VersionsB.""" BV1 = "bv1" - """BV1.""" BV2 = "bv2" - """BV2.""" diff --git a/packages/typespec-python/test/azure/generated/special-words/apiview-properties.json b/packages/typespec-python/test/azure/generated/special-words/apiview-properties.json index 6cd45d20f3..c702c7f253 100644 --- a/packages/typespec-python/test/azure/generated/special-words/apiview-properties.json +++ b/packages/typespec-python/test/azure/generated/special-words/apiview-properties.json @@ -37,6 +37,7 @@ "specialwords.models.WhileModel": "SpecialWords.Models.while", "specialwords.models.WithModel": "SpecialWords.Models.with", "specialwords.models.YieldModel": "SpecialWords.Models.yield", + "specialwords.models.ExtensibleString": "SpecialWords.ExtensibleStrings.ExtensibleString", "specialwords.operations.ModelsOperations.with_and": "SpecialWords.Models.withAnd", "specialwords.aio.operations.ModelsOperations.with_and": "SpecialWords.Models.withAnd", "specialwords.operations.ModelsOperations.with_as": "SpecialWords.Models.withAs", @@ -109,6 +110,8 @@ "specialwords.aio.operations.ModelPropertiesOperations.dict_methods": "SpecialWords.ModelProperties.dictMethods", "specialwords.operations.ModelPropertiesOperations.with_list": "SpecialWords.ModelProperties.withList", "specialwords.aio.operations.ModelPropertiesOperations.with_list": "SpecialWords.ModelProperties.withList", + "specialwords.operations.ExtensibleStringsOperations.put_extensible_string_value": "SpecialWords.ExtensibleStrings.putExtensibleStringValue", + "specialwords.aio.operations.ExtensibleStringsOperations.put_extensible_string_value": "SpecialWords.ExtensibleStrings.putExtensibleStringValue", "specialwords.operations.Operations.and_method": "SpecialWords.Operations.and", "specialwords.aio.operations.Operations.and_method": "SpecialWords.Operations.and", "specialwords.operations.Operations.as_method": "SpecialWords.Operations.as", diff --git a/packages/typespec-python/test/azure/generated/special-words/generated_tests/test_special_words_extensible_strings_operations.py b/packages/typespec-python/test/azure/generated/special-words/generated_tests/test_special_words_extensible_strings_operations.py new file mode 100644 index 0000000000..d1feb938b0 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/special-words/generated_tests/test_special_words_extensible_strings_operations.py @@ -0,0 +1,25 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from devtools_testutils import recorded_by_proxy +from testpreparer import SpecialWordsClientTestBase, SpecialWordsPreparer + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSpecialWordsExtensibleStringsOperations(SpecialWordsClientTestBase): + @SpecialWordsPreparer() + @recorded_by_proxy + def test_extensible_strings_put_extensible_string_value(self, specialwords_endpoint): + client = self.create_client(endpoint=specialwords_endpoint) + response = client.extensible_strings.put_extensible_string_value( + body="str", + content_type="str", + ) + + # please add some check logic here by yourself + # ... diff --git a/packages/typespec-python/test/azure/generated/special-words/generated_tests/test_special_words_extensible_strings_operations_async.py b/packages/typespec-python/test/azure/generated/special-words/generated_tests/test_special_words_extensible_strings_operations_async.py new file mode 100644 index 0000000000..7a7df2a106 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/special-words/generated_tests/test_special_words_extensible_strings_operations_async.py @@ -0,0 +1,26 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +import pytest +from devtools_testutils.aio import recorded_by_proxy_async +from testpreparer import SpecialWordsPreparer +from testpreparer_async import SpecialWordsClientTestBaseAsync + + +@pytest.mark.skip("you may need to update the auto-generated test case before run it") +class TestSpecialWordsExtensibleStringsOperationsAsync(SpecialWordsClientTestBaseAsync): + @SpecialWordsPreparer() + @recorded_by_proxy_async + async def test_extensible_strings_put_extensible_string_value(self, specialwords_endpoint): + client = self.create_async_client(endpoint=specialwords_endpoint) + response = await client.extensible_strings.put_extensible_string_value( + body="str", + content_type="str", + ) + + # please add some check logic here by yourself + # ... diff --git a/packages/typespec-python/test/azure/generated/special-words/specialwords/_client.py b/packages/typespec-python/test/azure/generated/special-words/specialwords/_client.py index d6942c05bd..3a9facdb11 100644 --- a/packages/typespec-python/test/azure/generated/special-words/specialwords/_client.py +++ b/packages/typespec-python/test/azure/generated/special-words/specialwords/_client.py @@ -16,7 +16,13 @@ from ._configuration import SpecialWordsClientConfiguration from ._utils.serialization import Deserializer, Serializer -from .operations import ModelPropertiesOperations, ModelsOperations, Operations, ParametersOperations +from .operations import ( + ExtensibleStringsOperations, + ModelPropertiesOperations, + ModelsOperations, + Operations, + ParametersOperations, +) class SpecialWordsClient: # pylint: disable=client-accepts-api-version-keyword @@ -66,6 +72,8 @@ class SpecialWordsClient: # pylint: disable=client-accepts-api-version-keyword :vartype models: specialwords.operations.ModelsOperations :ivar model_properties: ModelPropertiesOperations operations :vartype model_properties: specialwords.operations.ModelPropertiesOperations + :ivar extensible_strings: ExtensibleStringsOperations operations + :vartype extensible_strings: specialwords.operations.ExtensibleStringsOperations :ivar operations: Operations operations :vartype operations: specialwords.operations.Operations :ivar parameters: ParametersOperations operations @@ -106,6 +114,9 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential self.model_properties = ModelPropertiesOperations( self._client, self._config, self._serialize, self._deserialize ) + self.extensible_strings = ExtensibleStringsOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.operations = Operations(self._client, self._config, self._serialize, self._deserialize) self.parameters = ParametersOperations(self._client, self._config, self._serialize, self._deserialize) diff --git a/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/_client.py b/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/_client.py index abb7ee9395..0be36300c4 100644 --- a/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/_client.py +++ b/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/_client.py @@ -16,7 +16,13 @@ from .._utils.serialization import Deserializer, Serializer from ._configuration import SpecialWordsClientConfiguration -from .operations import ModelPropertiesOperations, ModelsOperations, Operations, ParametersOperations +from .operations import ( + ExtensibleStringsOperations, + ModelPropertiesOperations, + ModelsOperations, + Operations, + ParametersOperations, +) class SpecialWordsClient: # pylint: disable=client-accepts-api-version-keyword @@ -66,6 +72,8 @@ class SpecialWordsClient: # pylint: disable=client-accepts-api-version-keyword :vartype models: specialwords.aio.operations.ModelsOperations :ivar model_properties: ModelPropertiesOperations operations :vartype model_properties: specialwords.aio.operations.ModelPropertiesOperations + :ivar extensible_strings: ExtensibleStringsOperations operations + :vartype extensible_strings: specialwords.aio.operations.ExtensibleStringsOperations :ivar operations: Operations operations :vartype operations: specialwords.aio.operations.Operations :ivar parameters: ParametersOperations operations @@ -106,6 +114,9 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential self.model_properties = ModelPropertiesOperations( self._client, self._config, self._serialize, self._deserialize ) + self.extensible_strings = ExtensibleStringsOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.operations = Operations(self._client, self._config, self._serialize, self._deserialize) self.parameters = ParametersOperations(self._client, self._config, self._serialize, self._deserialize) diff --git a/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/operations/__init__.py b/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/operations/__init__.py index b4802a9d55..489f3d8ac0 100644 --- a/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/operations/__init__.py +++ b/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/operations/__init__.py @@ -14,6 +14,7 @@ from ._operations import ModelsOperations # type: ignore from ._operations import ModelPropertiesOperations # type: ignore +from ._operations import ExtensibleStringsOperations # type: ignore from ._operations import Operations # type: ignore from ._operations import ParametersOperations # type: ignore @@ -24,6 +25,7 @@ __all__ = [ "ModelsOperations", "ModelPropertiesOperations", + "ExtensibleStringsOperations", "Operations", "ParametersOperations", ] diff --git a/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/operations/_operations.py b/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/operations/_operations.py index f5afbb7934..af66c8eccf 100644 --- a/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/operations/_operations.py +++ b/packages/typespec-python/test/azure/generated/special-words/specialwords/aio/operations/_operations.py @@ -18,6 +18,8 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse @@ -26,9 +28,10 @@ from azure.core.utils import case_insensitive_dict from ... import models as _models -from ..._utils.model_base import SdkJSONEncoder +from ..._utils.model_base import SdkJSONEncoder, _deserialize from ..._utils.serialization import Deserializer, Serializer from ...operations._operations import ( + build_extensible_strings_put_extensible_string_value_request, build_model_properties_dict_methods_request, build_model_properties_same_as_model_request, build_model_properties_with_list_request, @@ -3754,6 +3757,96 @@ async def with_list(self, body: Union[_models.ModelWithList, JSON, IO[bytes]], * return cls(pipeline_response, None, {}) # type: ignore +class ExtensibleStringsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~specialwords.aio.SpecialWordsClient`'s + :attr:`extensible_strings` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SpecialWordsClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace_async + async def put_extensible_string_value( + self, body: Union[str, _models.ExtensibleString], **kwargs: Any + ) -> Union[str, _models.ExtensibleString]: + """put_extensible_string_value. + + :param body: Known values are: "and", "as", "assert", "async", "await", "break", "class", + "constructor", "continue", "def", "del", "elif", "else", "except", "exec", "finally", "for", + "from", "global", "if", "import", "in", "is", "lambda", "not", "or", "pass", "raise", "return", + "try", "while", "with", and "yield". Required. + :type body: str or ~specialwords.models.ExtensibleString + :return: ExtensibleString + :rtype: str or ~specialwords.models.ExtensibleString + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: str = kwargs.pop("content_type", _headers.pop("content-type", "application/json")) + cls: ClsType[Union[str, _models.ExtensibleString]] = kwargs.pop("cls", None) + + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_extensible_strings_put_extensible_string_value_request( + content_type=content_type, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + _decompress = kwargs.pop("decompress", True) + _stream = kwargs.pop("stream", False) + pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response) + + response_headers = {} + response_headers["content-type"] = self._deserialize("str", response.headers.get("content-type")) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(Union[str, _models.ExtensibleString], response.json()) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + class Operations: # pylint: disable=too-many-public-methods """ .. warning:: diff --git a/packages/typespec-python/test/azure/generated/special-words/specialwords/models/__init__.py b/packages/typespec-python/test/azure/generated/special-words/specialwords/models/__init__.py index afb9e72ebd..ab92beef39 100644 --- a/packages/typespec-python/test/azure/generated/special-words/specialwords/models/__init__.py +++ b/packages/typespec-python/test/azure/generated/special-words/specialwords/models/__init__.py @@ -51,6 +51,10 @@ WithModel, YieldModel, ) + +from ._enums import ( # type: ignore + ExtensibleString, +) from ._patch import __all__ as _patch_all from ._patch import * from ._patch import patch_sdk as _patch_sdk @@ -92,6 +96,7 @@ "WhileModel", "WithModel", "YieldModel", + "ExtensibleString", ] __all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore _patch_sdk() diff --git a/packages/typespec-python/test/azure/generated/special-words/specialwords/models/_enums.py b/packages/typespec-python/test/azure/generated/special-words/specialwords/models/_enums.py new file mode 100644 index 0000000000..4c172938be --- /dev/null +++ b/packages/typespec-python/test/azure/generated/special-words/specialwords/models/_enums.py @@ -0,0 +1,48 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- + +from enum import Enum +from azure.core import CaseInsensitiveEnumMeta + + +class ExtensibleString(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Verify enum member names that are special words using extensible enum (union).""" + + AND = "and" + AS = "as" + ASSERT = "assert" + ASYNC = "async" + AWAIT = "await" + BREAK = "break" + CLASS = "class" + CONSTRUCTOR = "constructor" + CONTINUE = "continue" + DEF = "def" + DEL = "del" + ELIF = "elif" + ELSE = "else" + EXCEPT = "except" + EXEC = "exec" + FINALLY = "finally" + FOR = "for" + FROM = "from" + GLOBAL = "global" + IF = "if" + IMPORT = "import" + IN = "in" + IS = "is" + LAMBDA = "lambda" + NOT = "not" + OR = "or" + PASS = "pass" + RAISE = "raise" + RETURN = "return" + TRY = "try" + WHILE = "while" + WITH = "with" + YIELD = "yield" diff --git a/packages/typespec-python/test/azure/generated/special-words/specialwords/operations/__init__.py b/packages/typespec-python/test/azure/generated/special-words/specialwords/operations/__init__.py index b4802a9d55..489f3d8ac0 100644 --- a/packages/typespec-python/test/azure/generated/special-words/specialwords/operations/__init__.py +++ b/packages/typespec-python/test/azure/generated/special-words/specialwords/operations/__init__.py @@ -14,6 +14,7 @@ from ._operations import ModelsOperations # type: ignore from ._operations import ModelPropertiesOperations # type: ignore +from ._operations import ExtensibleStringsOperations # type: ignore from ._operations import Operations # type: ignore from ._operations import ParametersOperations # type: ignore @@ -24,6 +25,7 @@ __all__ = [ "ModelsOperations", "ModelPropertiesOperations", + "ExtensibleStringsOperations", "Operations", "ParametersOperations", ] diff --git a/packages/typespec-python/test/azure/generated/special-words/specialwords/operations/_operations.py b/packages/typespec-python/test/azure/generated/special-words/specialwords/operations/_operations.py index d002e46f28..22a764f2b3 100644 --- a/packages/typespec-python/test/azure/generated/special-words/specialwords/operations/_operations.py +++ b/packages/typespec-python/test/azure/generated/special-words/specialwords/operations/_operations.py @@ -18,6 +18,8 @@ ResourceExistsError, ResourceNotFoundError, ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, map_error, ) from azure.core.pipeline import PipelineResponse @@ -27,7 +29,7 @@ from .. import models as _models from .._configuration import SpecialWordsClientConfiguration -from .._utils.model_base import SdkJSONEncoder +from .._utils.model_base import SdkJSONEncoder, _deserialize from .._utils.serialization import Deserializer, Serializer JSON = MutableMapping[str, Any] @@ -542,6 +544,24 @@ def build_model_properties_with_list_request(**kwargs: Any) -> HttpRequest: return HttpRequest(method="POST", url=_url, headers=_headers, **kwargs) +def build_extensible_strings_put_extensible_string_value_request( # pylint: disable=name-too-long + **kwargs: Any, +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + + content_type: str = kwargs.pop("content_type") + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = "/special-words/extensible-strings/string" + + # Construct headers + _headers["content-type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="PUT", url=_url, headers=_headers, **kwargs) + + def build_operations_and_method_request(**kwargs: Any) -> HttpRequest: # Construct URL _url = "/special-words/operations/and" @@ -4829,6 +4849,96 @@ def with_list( # pylint: disable=inconsistent-return-statements return cls(pipeline_response, None, {}) # type: ignore +class ExtensibleStringsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~specialwords.SpecialWordsClient`'s + :attr:`extensible_strings` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SpecialWordsClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + @distributed_trace + def put_extensible_string_value( + self, body: Union[str, _models.ExtensibleString], **kwargs: Any + ) -> Union[str, _models.ExtensibleString]: + """put_extensible_string_value. + + :param body: Known values are: "and", "as", "assert", "async", "await", "break", "class", + "constructor", "continue", "def", "del", "elif", "else", "except", "exec", "finally", "for", + "from", "global", "if", "import", "in", "is", "lambda", "not", "or", "pass", "raise", "return", + "try", "while", "with", and "yield". Required. + :type body: str or ~specialwords.models.ExtensibleString + :return: ExtensibleString + :rtype: str or ~specialwords.models.ExtensibleString + :raises ~azure.core.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: str = kwargs.pop("content_type", _headers.pop("content-type", "application/json")) + cls: ClsType[Union[str, _models.ExtensibleString]] = kwargs.pop("cls", None) + + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_extensible_strings_put_extensible_string_value_request( + content_type=content_type, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + _decompress = kwargs.pop("decompress", True) + _stream = kwargs.pop("stream", False) + pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access + _request, stream=_stream, **kwargs + ) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response) + + response_headers = {} + response_headers["content-type"] = self._deserialize("str", response.headers.get("content-type")) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(Union[str, _models.ExtensibleString], response.json()) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore + + class Operations: # pylint: disable=too-many-public-methods """ .. warning:: diff --git a/packages/typespec-python/test/azure/generated/streaming-jsonl/apiview-properties.json b/packages/typespec-python/test/azure/generated/streaming-jsonl/apiview-properties.json index 2d9ab18ed5..feab50b116 100644 --- a/packages/typespec-python/test/azure/generated/streaming-jsonl/apiview-properties.json +++ b/packages/typespec-python/test/azure/generated/streaming-jsonl/apiview-properties.json @@ -1,6 +1,7 @@ { "CrossLanguagePackageId": "Streaming.Jsonl", "CrossLanguageDefinitionId": { + "streaming.jsonl.basic.models.Info": "Streaming.Jsonl.Basic.Info", "streaming.jsonl.operations.BasicOperations.send": "Streaming.Jsonl.Basic.send", "streaming.jsonl.aio.operations.BasicOperations.send": "Streaming.Jsonl.Basic.send", "streaming.jsonl.operations.BasicOperations.receive": "Streaming.Jsonl.Basic.receive", diff --git a/packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/__init__.py b/packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/__init__.py new file mode 100644 index 0000000000..dcf513ec6c --- /dev/null +++ b/packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/__init__.py @@ -0,0 +1,27 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._models import ( # type: ignore + Info, +) +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [ + "Info", +] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/_models.py b/packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/_models.py new file mode 100644 index 0000000000..9637388c83 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/_models.py @@ -0,0 +1,40 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# Code generated by Microsoft (R) Python Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is regenerated. +# -------------------------------------------------------------------------- +# pylint: disable=useless-super-delegation + +from typing import Any, Mapping, overload + +from ..._utils.model_base import Model as _Model, rest_field + + +class Info(_Model): + """Info. + + :ivar desc: Required. + :vartype desc: str + """ + + desc: str = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Required.""" + + @overload + def __init__( + self, + *, + desc: str, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) diff --git a/packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/_patch.py b/packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/_patch.py new file mode 100644 index 0000000000..87676c65a8 --- /dev/null +++ b/packages/typespec-python/test/azure/generated/streaming-jsonl/streaming/jsonl/basic/models/_patch.py @@ -0,0 +1,21 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# -------------------------------------------------------------------------- +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py b/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py index c44c124878..3f7f45a458 100644 --- a/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py @@ -14,11 +14,11 @@ class DogKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): """extensible enum type for discriminator.""" GOLDEN = "golden" - """Species golden.""" + """Species golden""" class SnakeKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): """fixed enum type for discriminator.""" COBRA = "cobra" - """Species cobra.""" + """Species cobra""" diff --git a/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py b/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py index d247943145..d7b044452d 100644 --- a/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py +++ b/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py @@ -56,12 +56,12 @@ class Cobra(Snake, discriminator="cobra"): :ivar length: Length of the snake. Required. :vartype length: int - :ivar kind: discriminator property. Required. Species cobra. + :ivar kind: discriminator property. Required. Species cobra :vartype kind: str or ~typetest.model.enumdiscriminator.models.COBRA """ kind: Literal[SnakeKind.COBRA] = rest_discriminator(name="kind", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """discriminator property. Required. Species cobra.""" + """discriminator property. Required. Species cobra""" @overload def __init__( @@ -124,12 +124,12 @@ class Golden(Dog, discriminator="golden"): :ivar weight: Weight of the dog. Required. :vartype weight: int - :ivar kind: discriminator property. Required. Species golden. + :ivar kind: discriminator property. Required. Species golden :vartype kind: str or ~typetest.model.enumdiscriminator.models.GOLDEN """ kind: Literal[DogKind.GOLDEN] = rest_discriminator(name="kind", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """discriminator property. Required. Species golden.""" + """discriminator property. Required. Species golden""" @overload def __init__( diff --git a/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py b/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py index ea77e2f072..e1ffa2bf06 100644 --- a/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py @@ -14,7 +14,6 @@ class ExtendedEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ExtendedEnum.""" ENUM_VALUE2 = "value2" - """ENUM_VALUE2.""" class FixedInnerEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py b/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py index e54903056f..fab3d9a107 100644 --- a/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py +++ b/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py @@ -566,12 +566,12 @@ class UnionEnumValueProperty(_Model): """Template type for testing models with specific properties. Pass in the type of the property you are looking for. - :ivar property: Property. Required. ENUM_VALUE2. + :ivar property: Property. Required. :vartype property: str or ~typetest.property.valuetypes.models.ENUM_VALUE2 """ property: Literal[ExtendedEnum.ENUM_VALUE2] = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """Property. Required. ENUM_VALUE2.""" + """Property. Required.""" @overload def __init__( diff --git a/packages/typespec-python/test/azure/generated/typetest-union/typetest/union/models/_enums.py b/packages/typespec-python/test/azure/generated/typetest-union/typetest/union/models/_enums.py index a41d1bddd2..8057e6b79b 100644 --- a/packages/typespec-python/test/azure/generated/typetest-union/typetest/union/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/typetest-union/typetest/union/models/_enums.py @@ -14,6 +14,4 @@ class StringExtensibleNamedUnion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of StringExtensibleNamedUnion.""" OPTION_B = "b" - """OPTION_B.""" C = "c" - """C.""" diff --git a/packages/typespec-python/test/azure/generated/versioning-added/versioning/added/models/_enums.py b/packages/typespec-python/test/azure/generated/versioning-added/versioning/added/models/_enums.py index b388ae0053..37ca39cb54 100644 --- a/packages/typespec-python/test/azure/generated/versioning-added/versioning/added/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/versioning-added/versioning/added/models/_enums.py @@ -14,16 +14,13 @@ class EnumV1(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV1.""" ENUM_MEMBER_V1 = "enumMemberV1" - """ENUM_MEMBER_V1.""" ENUM_MEMBER_V2 = "enumMemberV2" - """ENUM_MEMBER_V2.""" class EnumV2(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV2.""" ENUM_MEMBER = "enumMember" - """ENUM_MEMBER.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/azure/generated/versioning-removed/versioning/removed/models/_enums.py b/packages/typespec-python/test/azure/generated/versioning-removed/versioning/removed/models/_enums.py index 1088ce0651..ab82167271 100644 --- a/packages/typespec-python/test/azure/generated/versioning-removed/versioning/removed/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/versioning-removed/versioning/removed/models/_enums.py @@ -14,16 +14,13 @@ class EnumV2(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV2.""" ENUM_MEMBER_V2 = "enumMemberV2" - """ENUM_MEMBER_V2.""" class EnumV3(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV3.""" ENUM_MEMBER_V1 = "enumMemberV1" - """ENUM_MEMBER_V1.""" ENUM_MEMBER_V2_PREVIEW = "enumMemberV2Preview" - """ENUM_MEMBER_V2_PREVIEW.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/azure/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py b/packages/typespec-python/test/azure/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py index 25bfd527fa..7b36162656 100644 --- a/packages/typespec-python/test/azure/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py @@ -14,7 +14,6 @@ class NewEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of NewEnum.""" NEW_ENUM_MEMBER = "newEnumMember" - """NEW_ENUM_MEMBER.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/unbranded/generated/encode-array/encode/array/models/_enums.py b/packages/typespec-python/test/unbranded/generated/encode-array/encode/array/models/_enums.py index 4fc60b5440..c8069e8efd 100644 --- a/packages/typespec-python/test/unbranded/generated/encode-array/encode/array/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/encode-array/encode/array/models/_enums.py @@ -8,19 +8,13 @@ class Colors(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of Colors.""" BLUE = "blue" - """BLUE.""" RED = "red" - """RED.""" GREEN = "green" - """GREEN.""" class ColorsExtensibleEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ColorsExtensibleEnum.""" BLUE = "blue" - """BLUE.""" RED = "red" - """RED.""" GREEN = "green" - """GREEN.""" diff --git a/packages/typespec-python/test/unbranded/generated/server-path-multiple/server/path/multiple/models/_enums.py b/packages/typespec-python/test/unbranded/generated/server-path-multiple/server/path/multiple/models/_enums.py index e55d702391..e83e706dd2 100644 --- a/packages/typespec-python/test/unbranded/generated/server-path-multiple/server/path/multiple/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/server-path-multiple/server/path/multiple/models/_enums.py @@ -8,4 +8,4 @@ class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Service versions.""" V1_0 = "v1.0" - """Version 1.0.""" + """Version 1.0""" diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/_client.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/_client.py index 8332d62bfe..bb4763d92f 100644 --- a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/_client.py +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/_client.py @@ -9,6 +9,7 @@ from ._configuration import SpecialWordsClientConfiguration from ._utils.serialization import Deserializer, Serializer +from .extensiblestrings.operations import ExtensibleStringsOperations from .modelproperties.operations import ModelPropertiesOperations from .models.operations import ModelsOperations from .operations import Operations, ParametersOperations @@ -61,6 +62,8 @@ class SpecialWordsClient: # pylint: disable=client-accepts-api-version-keyword :vartype models: specialwords.operations.ModelsOperations :ivar model_properties: ModelPropertiesOperations operations :vartype model_properties: specialwords.operations.ModelPropertiesOperations + :ivar extensible_strings: ExtensibleStringsOperations operations + :vartype extensible_strings: specialwords.operations.ExtensibleStringsOperations :ivar operations: Operations operations :vartype operations: specialwords.operations.Operations :ivar parameters: ParametersOperations operations @@ -95,6 +98,9 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential self.model_properties = ModelPropertiesOperations( self._client, self._config, self._serialize, self._deserialize ) + self.extensible_strings = ExtensibleStringsOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.operations = Operations(self._client, self._config, self._serialize, self._deserialize) self.parameters = ParametersOperations(self._client, self._config, self._serialize, self._deserialize) diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/aio/_client.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/aio/_client.py index 15a6079914..df7d3d3e65 100644 --- a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/aio/_client.py +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/aio/_client.py @@ -8,6 +8,7 @@ from corehttp.runtime import AsyncPipelineClient, policies from .._utils.serialization import Deserializer, Serializer +from ..extensiblestrings.aio.operations import ExtensibleStringsOperations from ..modelproperties.aio.operations import ModelPropertiesOperations from ..models.aio.operations import ModelsOperations from ._configuration import SpecialWordsClientConfiguration @@ -61,6 +62,8 @@ class SpecialWordsClient: # pylint: disable=client-accepts-api-version-keyword :vartype models: specialwords.aio.operations.ModelsOperations :ivar model_properties: ModelPropertiesOperations operations :vartype model_properties: specialwords.aio.operations.ModelPropertiesOperations + :ivar extensible_strings: ExtensibleStringsOperations operations + :vartype extensible_strings: specialwords.aio.operations.ExtensibleStringsOperations :ivar operations: Operations operations :vartype operations: specialwords.aio.operations.Operations :ivar parameters: ParametersOperations operations @@ -95,6 +98,9 @@ def __init__( # pylint: disable=missing-client-constructor-parameter-credential self.model_properties = ModelPropertiesOperations( self._client, self._config, self._serialize, self._deserialize ) + self.extensible_strings = ExtensibleStringsOperations( + self._client, self._config, self._serialize, self._deserialize + ) self.operations = Operations(self._client, self._config, self._serialize, self._deserialize) self.parameters = ParametersOperations(self._client, self._config, self._serialize, self._deserialize) diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/__init__.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/__init__.py new file mode 100644 index 0000000000..d55ccad1f5 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/__init__.py @@ -0,0 +1 @@ +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/__init__.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/__init__.py new file mode 100644 index 0000000000..d55ccad1f5 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/__init__.py @@ -0,0 +1 @@ +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/__init__.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/__init__.py new file mode 100644 index 0000000000..9e49dbba7d --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/__init__.py @@ -0,0 +1,19 @@ +# coding=utf-8 +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + +from ._operations import ExtensibleStringsOperations # type: ignore + +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [ + "ExtensibleStringsOperations", +] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/_operations.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/_operations.py new file mode 100644 index 0000000000..449d6b8568 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/_operations.py @@ -0,0 +1,115 @@ +# coding=utf-8 +from collections.abc import MutableMapping +import json +from typing import Any, Callable, Optional, TypeVar, Union + +from corehttp.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, + map_error, +) +from corehttp.rest import AsyncHttpResponse, HttpRequest +from corehttp.runtime import AsyncPipelineClient +from corehttp.runtime.pipeline import PipelineResponse +from corehttp.utils import case_insensitive_dict + +from ... import models as _models2 +from ...._utils.model_base import SdkJSONEncoder, _deserialize +from ...._utils.serialization import Deserializer, Serializer +from ....aio._configuration import SpecialWordsClientConfiguration +from ...operations._operations import build_extensible_strings_put_extensible_string_value_request + +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, dict[str, Any]], Any]] + + +class ExtensibleStringsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~specialwords.aio.SpecialWordsClient`'s + :attr:`extensible_strings` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SpecialWordsClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + async def put_extensible_string_value( + self, body: Union[str, _models2.ExtensibleString], **kwargs: Any + ) -> Union[str, _models2.ExtensibleString]: + """put_extensible_string_value. + + :param body: Known values are: "and", "as", "assert", "async", "await", "break", "class", + "constructor", "continue", "def", "del", "elif", "else", "except", "exec", "finally", "for", + "from", "global", "if", "import", "in", "is", "lambda", "not", "or", "pass", "raise", "return", + "try", "while", "with", and "yield". Required. + :type body: str or ~specialwords.extensiblestrings.models.ExtensibleString + :return: ExtensibleString + :rtype: str or ~specialwords.extensiblestrings.models.ExtensibleString + :raises ~corehttp.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: str = kwargs.pop("content_type", _headers.pop("content-type", "application/json")) + cls: ClsType[Union[str, _models2.ExtensibleString]] = kwargs.pop("cls", None) + + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_extensible_strings_put_extensible_string_value_request( + content_type=content_type, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + _decompress = kwargs.pop("decompress", True) + _stream = kwargs.pop("stream", False) + pipeline_response: PipelineResponse = await self._client.pipeline.run(_request, stream=_stream, **kwargs) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + await response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response) + + response_headers = {} + response_headers["content-type"] = self._deserialize("str", response.headers.get("content-type")) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(Union[str, _models2.ExtensibleString], response.json()) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/_patch.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/_patch.py new file mode 100644 index 0000000000..bbe39eaf69 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/aio/operations/_patch.py @@ -0,0 +1,18 @@ +# coding=utf-8 + +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/__init__.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/__init__.py new file mode 100644 index 0000000000..e9f3fa9617 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/__init__.py @@ -0,0 +1,21 @@ +# coding=utf-8 +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._enums import ( # type: ignore + ExtensibleString, +) +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [ + "ExtensibleString", +] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_enums.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_enums.py new file mode 100644 index 0000000000..08648b74c4 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_enums.py @@ -0,0 +1,42 @@ +# coding=utf-8 + +from enum import Enum +from corehttp.utils import CaseInsensitiveEnumMeta + + +class ExtensibleString(str, Enum, metaclass=CaseInsensitiveEnumMeta): + """Verify enum member names that are special words using extensible enum (union).""" + + AND = "and" + AS = "as" + ASSERT = "assert" + ASYNC = "async" + AWAIT = "await" + BREAK = "break" + CLASS = "class" + CONSTRUCTOR = "constructor" + CONTINUE = "continue" + DEF = "def" + DEL = "del" + ELIF = "elif" + ELSE = "else" + EXCEPT = "except" + EXEC = "exec" + FINALLY = "finally" + FOR = "for" + FROM = "from" + GLOBAL = "global" + IF = "if" + IMPORT = "import" + IN = "in" + IS = "is" + LAMBDA = "lambda" + NOT = "not" + OR = "or" + PASS = "pass" + RAISE = "raise" + RETURN = "return" + TRY = "try" + WHILE = "while" + WITH = "with" + YIELD = "yield" diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_patch.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_patch.py new file mode 100644 index 0000000000..bbe39eaf69 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_patch.py @@ -0,0 +1,18 @@ +# coding=utf-8 + +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/__init__.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/__init__.py new file mode 100644 index 0000000000..9e49dbba7d --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/__init__.py @@ -0,0 +1,19 @@ +# coding=utf-8 +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + +from ._operations import ExtensibleStringsOperations # type: ignore + +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [ + "ExtensibleStringsOperations", +] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/_operations.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/_operations.py new file mode 100644 index 0000000000..5d1bb004e8 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/_operations.py @@ -0,0 +1,135 @@ +# coding=utf-8 +from collections.abc import MutableMapping +import json +from typing import Any, Callable, Optional, TypeVar, Union + +from corehttp.exceptions import ( + ClientAuthenticationError, + HttpResponseError, + ResourceExistsError, + ResourceNotFoundError, + ResourceNotModifiedError, + StreamClosedError, + StreamConsumedError, + map_error, +) +from corehttp.rest import HttpRequest, HttpResponse +from corehttp.runtime import PipelineClient +from corehttp.runtime.pipeline import PipelineResponse +from corehttp.utils import case_insensitive_dict + +from .. import models as _models1 +from ..._configuration import SpecialWordsClientConfiguration +from ..._utils.model_base import SdkJSONEncoder, _deserialize +from ..._utils.serialization import Deserializer, Serializer + +T = TypeVar("T") +ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, dict[str, Any]], Any]] + +_SERIALIZER = Serializer() +_SERIALIZER.client_side_validation = False + + +def build_extensible_strings_put_extensible_string_value_request( # pylint: disable=name-too-long + **kwargs: Any, +) -> HttpRequest: + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + + content_type: str = kwargs.pop("content_type") + accept = _headers.pop("Accept", "application/json") + + # Construct URL + _url = "/special-words/extensible-strings/string" + + # Construct headers + _headers["content-type"] = _SERIALIZER.header("content_type", content_type, "str") + _headers["Accept"] = _SERIALIZER.header("accept", accept, "str") + + return HttpRequest(method="PUT", url=_url, headers=_headers, **kwargs) + + +class ExtensibleStringsOperations: + """ + .. warning:: + **DO NOT** instantiate this class directly. + + Instead, you should access the following operations through + :class:`~specialwords.SpecialWordsClient`'s + :attr:`extensible_strings` attribute. + """ + + def __init__(self, *args, **kwargs) -> None: + input_args = list(args) + self._client: PipelineClient = input_args.pop(0) if input_args else kwargs.pop("client") + self._config: SpecialWordsClientConfiguration = input_args.pop(0) if input_args else kwargs.pop("config") + self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer") + self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer") + + def put_extensible_string_value( + self, body: Union[str, _models1.ExtensibleString], **kwargs: Any + ) -> Union[str, _models1.ExtensibleString]: + """put_extensible_string_value. + + :param body: Known values are: "and", "as", "assert", "async", "await", "break", "class", + "constructor", "continue", "def", "del", "elif", "else", "except", "exec", "finally", "for", + "from", "global", "if", "import", "in", "is", "lambda", "not", "or", "pass", "raise", "return", + "try", "while", "with", and "yield". Required. + :type body: str or ~specialwords.extensiblestrings.models.ExtensibleString + :return: ExtensibleString + :rtype: str or ~specialwords.extensiblestrings.models.ExtensibleString + :raises ~corehttp.exceptions.HttpResponseError: + """ + error_map: MutableMapping = { + 401: ClientAuthenticationError, + 404: ResourceNotFoundError, + 409: ResourceExistsError, + 304: ResourceNotModifiedError, + } + error_map.update(kwargs.pop("error_map", {}) or {}) + + _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {}) + _params = kwargs.pop("params", {}) or {} + + content_type: str = kwargs.pop("content_type", _headers.pop("content-type", "application/json")) + cls: ClsType[Union[str, _models1.ExtensibleString]] = kwargs.pop("cls", None) + + _content = json.dumps(body, cls=SdkJSONEncoder, exclude_readonly=True) # type: ignore + + _request = build_extensible_strings_put_extensible_string_value_request( + content_type=content_type, + content=_content, + headers=_headers, + params=_params, + ) + path_format_arguments = { + "endpoint": self._serialize.url("self._config.endpoint", self._config.endpoint, "str", skip_quote=True), + } + _request.url = self._client.format_url(_request.url, **path_format_arguments) + + _decompress = kwargs.pop("decompress", True) + _stream = kwargs.pop("stream", False) + pipeline_response: PipelineResponse = self._client.pipeline.run(_request, stream=_stream, **kwargs) + + response = pipeline_response.http_response + + if response.status_code not in [200]: + if _stream: + try: + response.read() # Load the body in memory and close the socket + except (StreamConsumedError, StreamClosedError): + pass + map_error(status_code=response.status_code, response=response, error_map=error_map) + raise HttpResponseError(response=response) + + response_headers = {} + response_headers["content-type"] = self._deserialize("str", response.headers.get("content-type")) + + if _stream: + deserialized = response.iter_bytes() if _decompress else response.iter_raw() + else: + deserialized = _deserialize(Union[str, _models1.ExtensibleString], response.json()) + + if cls: + return cls(pipeline_response, deserialized, response_headers) # type: ignore + + return deserialized # type: ignore diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/_patch.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/_patch.py new file mode 100644 index 0000000000..bbe39eaf69 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/operations/_patch.py @@ -0,0 +1,18 @@ +# coding=utf-8 + +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/__init__.py b/packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/__init__.py new file mode 100644 index 0000000000..153949db3c --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/__init__.py @@ -0,0 +1,21 @@ +# coding=utf-8 +# pylint: disable=wrong-import-position + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ._patch import * # pylint: disable=unused-wildcard-import + + +from ._models import ( # type: ignore + Info, +) +from ._patch import __all__ as _patch_all +from ._patch import * +from ._patch import patch_sdk as _patch_sdk + +__all__ = [ + "Info", +] +__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore +_patch_sdk() diff --git a/packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/_models.py b/packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/_models.py new file mode 100644 index 0000000000..c0b691ea0a --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/_models.py @@ -0,0 +1,34 @@ +# coding=utf-8 +# pylint: disable=useless-super-delegation + +from typing import Any, Mapping, overload + +from ..._utils.model_base import Model as _Model, rest_field + + +class Info(_Model): + """Info. + + :ivar desc: Required. + :vartype desc: str + """ + + desc: str = rest_field(visibility=["read", "create", "update", "delete", "query"]) + """Required.""" + + @overload + def __init__( + self, + *, + desc: str, + ) -> None: ... + + @overload + def __init__(self, mapping: Mapping[str, Any]) -> None: + """ + :param mapping: raw JSON to initialize the model. + :type mapping: Mapping[str, Any] + """ + + def __init__(self, *args: Any, **kwargs: Any) -> None: + super().__init__(*args, **kwargs) diff --git a/packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/_patch.py b/packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/_patch.py new file mode 100644 index 0000000000..bbe39eaf69 --- /dev/null +++ b/packages/typespec-python/test/unbranded/generated/streaming-jsonl/streaming/jsonl/basic/models/_patch.py @@ -0,0 +1,18 @@ +# coding=utf-8 + +"""Customize generated code here. + +Follow our quickstart for examples: https://aka.ms/azsdk/python/dpcodegen/python/customize +""" + + +__all__: list[str] = [] # Add all objects you want publicly available to users at this package level + + +def patch_sdk(): + """Do not remove from this file. + + `patch_sdk` is a last resort escape hatch that allows you to do customizations + you can't accomplish using the techniques described in + https://aka.ms/azsdk/python/dpcodegen/python/customize + """ diff --git a/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py b/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py index 4f24f13e95..a10962eaa3 100644 --- a/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py @@ -8,11 +8,11 @@ class DogKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): """extensible enum type for discriminator.""" GOLDEN = "golden" - """Species golden.""" + """Species golden""" class SnakeKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): """fixed enum type for discriminator.""" COBRA = "cobra" - """Species cobra.""" + """Species cobra""" diff --git a/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py b/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py index b7530a23b2..0598043777 100644 --- a/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py +++ b/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py @@ -50,12 +50,12 @@ class Cobra(Snake, discriminator="cobra"): :ivar length: Length of the snake. Required. :vartype length: int - :ivar kind: discriminator property. Required. Species cobra. + :ivar kind: discriminator property. Required. Species cobra :vartype kind: str or ~typetest.model.enumdiscriminator.models.COBRA """ kind: Literal[SnakeKind.COBRA] = rest_discriminator(name="kind", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """discriminator property. Required. Species cobra.""" + """discriminator property. Required. Species cobra""" @overload def __init__( @@ -118,12 +118,12 @@ class Golden(Dog, discriminator="golden"): :ivar weight: Weight of the dog. Required. :vartype weight: int - :ivar kind: discriminator property. Required. Species golden. + :ivar kind: discriminator property. Required. Species golden :vartype kind: str or ~typetest.model.enumdiscriminator.models.GOLDEN """ kind: Literal[DogKind.GOLDEN] = rest_discriminator(name="kind", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """discriminator property. Required. Species golden.""" + """discriminator property. Required. Species golden""" @overload def __init__( diff --git a/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py b/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py index 78f4c5e35e..00b44bfd5e 100644 --- a/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py @@ -8,7 +8,6 @@ class ExtendedEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ExtendedEnum.""" ENUM_VALUE2 = "value2" - """ENUM_VALUE2.""" class FixedInnerEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py b/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py index 1d8cf30182..fa7afac8b7 100644 --- a/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py +++ b/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py @@ -560,12 +560,12 @@ class UnionEnumValueProperty(_Model): """Template type for testing models with specific properties. Pass in the type of the property you are looking for. - :ivar property: Property. Required. ENUM_VALUE2. + :ivar property: Property. Required. :vartype property: str or ~typetest.property.valuetypes.models.ENUM_VALUE2 """ property: Literal[ExtendedEnum.ENUM_VALUE2] = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """Property. Required. ENUM_VALUE2.""" + """Property. Required.""" @overload def __init__( diff --git a/packages/typespec-python/test/unbranded/generated/typetest-union/typetest/union/models/_enums.py b/packages/typespec-python/test/unbranded/generated/typetest-union/typetest/union/models/_enums.py index 9a08c83e35..b682482ab4 100644 --- a/packages/typespec-python/test/unbranded/generated/typetest-union/typetest/union/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/typetest-union/typetest/union/models/_enums.py @@ -8,6 +8,4 @@ class StringExtensibleNamedUnion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of StringExtensibleNamedUnion.""" OPTION_B = "b" - """OPTION_B.""" C = "c" - """C.""" diff --git a/packages/typespec-python/test/unbranded/generated/versioning-added/versioning/added/models/_enums.py b/packages/typespec-python/test/unbranded/generated/versioning-added/versioning/added/models/_enums.py index 21ac016333..aa44b9b785 100644 --- a/packages/typespec-python/test/unbranded/generated/versioning-added/versioning/added/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/versioning-added/versioning/added/models/_enums.py @@ -8,16 +8,13 @@ class EnumV1(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV1.""" ENUM_MEMBER_V1 = "enumMemberV1" - """ENUM_MEMBER_V1.""" ENUM_MEMBER_V2 = "enumMemberV2" - """ENUM_MEMBER_V2.""" class EnumV2(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV2.""" ENUM_MEMBER = "enumMember" - """ENUM_MEMBER.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/unbranded/generated/versioning-removed/versioning/removed/models/_enums.py b/packages/typespec-python/test/unbranded/generated/versioning-removed/versioning/removed/models/_enums.py index d4488e8617..faf1ac864a 100644 --- a/packages/typespec-python/test/unbranded/generated/versioning-removed/versioning/removed/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/versioning-removed/versioning/removed/models/_enums.py @@ -8,16 +8,13 @@ class EnumV2(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV2.""" ENUM_MEMBER_V2 = "enumMemberV2" - """ENUM_MEMBER_V2.""" class EnumV3(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV3.""" ENUM_MEMBER_V1 = "enumMemberV1" - """ENUM_MEMBER_V1.""" ENUM_MEMBER_V2_PREVIEW = "enumMemberV2Preview" - """ENUM_MEMBER_V2_PREVIEW.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/unbranded/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py b/packages/typespec-python/test/unbranded/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py index cf3e06d87e..d15939065b 100644 --- a/packages/typespec-python/test/unbranded/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py @@ -8,7 +8,6 @@ class NewEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of NewEnum.""" NEW_ENUM_MEMBER = "newEnumMember" - """NEW_ENUM_MEMBER.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): From 5ec2e1198b6a10ae1fa4f16af35b598494250506 Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Thu, 12 Mar 2026 02:30:28 +0000 Subject: [PATCH 5/9] Update dependencies --- packages/autorest.python/package.json | 2 +- packages/typespec-python/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/autorest.python/package.json b/packages/autorest.python/package.json index e52dead0ae..dc1a93076b 100644 --- a/packages/autorest.python/package.json +++ b/packages/autorest.python/package.json @@ -29,7 +29,7 @@ }, "homepage": "https://github.com/Azure/autorest.python/blob/main/README.md", "dependencies": { - "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", + "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", "@autorest/system-requirements": "~1.0.2", "fs-extra": "~11.2.0", "tsx": "^4.21.0" diff --git a/packages/typespec-python/package.json b/packages/typespec-python/package.json index b380d2a807..28990dbc35 100644 --- a/packages/typespec-python/package.json +++ b/packages/typespec-python/package.json @@ -67,7 +67,7 @@ "js-yaml": "~4.1.0", "semver": "~7.6.2", "tsx": "^4.21.0", - "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", + "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", "fs-extra": "~11.2.0" }, "devDependencies": { From 934e4b20cca14abea41577a89f64b5052926b7af Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Thu, 12 Mar 2026 02:30:31 +0000 Subject: [PATCH 6/9] Sync shared files from typespec repo (2026-03-12 02:30:31) --- .../scripts/eng/regenerate-common.ts | 811 +++++++++--------- packages/typespec-python/src/lib.ts | 6 +- 2 files changed, 421 insertions(+), 396 deletions(-) diff --git a/packages/typespec-python/scripts/eng/regenerate-common.ts b/packages/typespec-python/scripts/eng/regenerate-common.ts index 9880418935..9f9a91266d 100644 --- a/packages/typespec-python/scripts/eng/regenerate-common.ts +++ b/packages/typespec-python/scripts/eng/regenerate-common.ts @@ -6,444 +6,467 @@ import { dirname, join, relative, resolve } from "path"; export const SKIP_SPECS: string[] = ["type/file"]; export const SpecialFlags: Record> = { - azure: { - "generate-test": true, - "generate-sample": true, - }, + azure: { + "generate-test": true, + "generate-sample": true, + }, }; // ---- Base emitter options (shared across repos) ---- -export const BASE_AZURE_EMITTER_OPTIONS: Record | Record[]> = { - "azure/client-generator-core/access": { - namespace: "specs.azure.clientgenerator.core.access", - }, - "azure/client-generator-core/alternate-type": { - namespace: "specs.azure.clientgenerator.core.alternatetype", - }, - "azure/client-generator-core/api-version": { - namespace: "specs.azure.clientgenerator.core.apiversion", - }, - "azure/client-generator-core/client-initialization/default": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.default", - }, - "azure/client-generator-core/client-initialization/individually": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.individually", - }, - "azure/client-generator-core/client-initialization/individuallyParent": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.individuallyparent", - }, - "azure/client-generator-core/client-location": { - namespace: "specs.azure.clientgenerator.core.clientlocation", - }, - "azure/client-generator-core/deserialize-empty-string-as-null": { - namespace: "specs.azure.clientgenerator.core.emptystring", - }, - "azure/client-generator-core/flatten-property": { - namespace: "specs.azure.clientgenerator.core.flattenproperty", - }, - "azure/client-generator-core/usage": { - namespace: "specs.azure.clientgenerator.core.usage", - }, - "azure/client-generator-core/override": { - namespace: "specs.azure.clientgenerator.core.override", - }, - "azure/client-generator-core/hierarchy-building": { - namespace: "specs.azure.clientgenerator.core.hierarchybuilding", - }, - "azure/core/basic": { - namespace: "specs.azure.core.basic", - }, - "azure/core/lro/rpc": { - namespace: "specs.azure.core.lro.rpc", - }, - "azure/core/lro/standard": { - namespace: "specs.azure.core.lro.standard", - }, - "azure/core/model": { - namespace: "specs.azure.core.model", - }, - "azure/core/page": { - namespace: "specs.azure.core.page", - }, - "azure/core/scalar": { - namespace: "specs.azure.core.scalar", - }, - "azure/core/traits": { - namespace: "specs.azure.core.traits", - }, - "azure/encode/duration": { - namespace: "specs.azure.encode.duration", - }, - "azure/example/basic": { - namespace: "specs.azure.example.basic", - }, - "azure/payload/pageable": { - namespace: "specs.azure.payload.pageable", - }, - "azure/versioning/previewVersion": { - namespace: "specs.azure.versioning.previewversion", - }, - "client/structure/default": { - namespace: "client.structure.service", - }, - "client/structure/multi-client": { - "package-name": "client-structure-multiclient", - "namespace": "client.structure.multiclient", - }, - "client/structure/renamed-operation": { - "package-name": "client-structure-renamedoperation", - "namespace": "client.structure.renamedoperation", - }, - "client/structure/two-operation-group": { - "package-name": "client-structure-twooperationgroup", - "namespace": "client.structure.twooperationgroup", - }, - "client/naming": { - namespace: "client.naming.main", - }, - "client/overload": { - namespace: "client.overload", - }, - "encode/duration": { - namespace: "encode.duration", - }, - "encode/numeric": { - namespace: "encode.numeric", - }, - "parameters/basic": { - namespace: "parameters.basic", - }, - "parameters/spread": { - namespace: "parameters.spread", - }, - "payload/content-negotiation": { - namespace: "payload.contentnegotiation", - }, - "payload/multipart": { - namespace: "payload.multipart", - }, - "serialization/encoded-name/json": { - namespace: "serialization.encodedname.json", - }, - "special-words": { - namespace: "specialwords", - }, - "service/multi-service": { - namespace: "service.multiservice", - }, +export const BASE_AZURE_EMITTER_OPTIONS: Record< + string, + Record | Record[] +> = { + "azure/client-generator-core/access": { + namespace: "specs.azure.clientgenerator.core.access", + }, + "azure/client-generator-core/alternate-type": { + namespace: "specs.azure.clientgenerator.core.alternatetype", + }, + "azure/client-generator-core/api-version": { + namespace: "specs.azure.clientgenerator.core.apiversion", + }, + "azure/client-generator-core/client-initialization/default": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.default", + }, + "azure/client-generator-core/client-initialization/individually": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.individually", + }, + "azure/client-generator-core/client-initialization/individuallyParent": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.individuallyparent", + }, + "azure/client-generator-core/client-location": { + namespace: "specs.azure.clientgenerator.core.clientlocation", + }, + "azure/client-generator-core/deserialize-empty-string-as-null": { + namespace: "specs.azure.clientgenerator.core.emptystring", + }, + "azure/client-generator-core/flatten-property": { + namespace: "specs.azure.clientgenerator.core.flattenproperty", + }, + "azure/client-generator-core/usage": { + namespace: "specs.azure.clientgenerator.core.usage", + }, + "azure/client-generator-core/override": { + namespace: "specs.azure.clientgenerator.core.override", + }, + "azure/client-generator-core/hierarchy-building": { + namespace: "specs.azure.clientgenerator.core.hierarchybuilding", + }, + "azure/core/basic": { + namespace: "specs.azure.core.basic", + }, + "azure/core/lro/rpc": { + namespace: "specs.azure.core.lro.rpc", + }, + "azure/core/lro/standard": { + namespace: "specs.azure.core.lro.standard", + }, + "azure/core/model": { + namespace: "specs.azure.core.model", + }, + "azure/core/page": { + namespace: "specs.azure.core.page", + }, + "azure/core/scalar": { + namespace: "specs.azure.core.scalar", + }, + "azure/core/traits": { + namespace: "specs.azure.core.traits", + }, + "azure/encode/duration": { + namespace: "specs.azure.encode.duration", + }, + "azure/example/basic": { + namespace: "specs.azure.example.basic", + }, + "azure/payload/pageable": { + namespace: "specs.azure.payload.pageable", + }, + "azure/versioning/previewVersion": { + namespace: "specs.azure.versioning.previewversion", + }, + "client/structure/default": { + namespace: "client.structure.service", + }, + "client/structure/multi-client": { + "package-name": "client-structure-multiclient", + namespace: "client.structure.multiclient", + }, + "client/structure/renamed-operation": { + "package-name": "client-structure-renamedoperation", + namespace: "client.structure.renamedoperation", + }, + "client/structure/two-operation-group": { + "package-name": "client-structure-twooperationgroup", + namespace: "client.structure.twooperationgroup", + }, + "client/naming": { + namespace: "client.naming.main", + }, + "client/overload": { + namespace: "client.overload", + }, + "encode/duration": { + namespace: "encode.duration", + }, + "encode/numeric": { + namespace: "encode.numeric", + }, + "parameters/basic": { + namespace: "parameters.basic", + }, + "parameters/spread": { + namespace: "parameters.spread", + }, + "payload/content-negotiation": { + namespace: "payload.contentnegotiation", + }, + "payload/multipart": { + namespace: "payload.multipart", + }, + "serialization/encoded-name/json": { + namespace: "serialization.encodedname.json", + }, + "special-words": { + namespace: "specialwords", + }, + "service/multi-service": { + namespace: "service.multiservice", + }, }; -export const BASE_EMITTER_OPTIONS: Record | Record[]> = { - "resiliency/srv-driven/old.tsp": { - "package-name": "resiliency-srv-driven1", - "namespace": "resiliency.srv.driven1", - "package-mode": "azure-dataplane", - "package-pprint-name": "ResiliencySrvDriven1", - }, - "resiliency/srv-driven": { - "package-name": "resiliency-srv-driven2", - "namespace": "resiliency.srv.driven2", - "package-mode": "azure-dataplane", - "package-pprint-name": "ResiliencySrvDriven2", - }, - "authentication/api-key": { - "clear-output-folder": "true", - }, - "authentication/http/custom": { - "package-name": "authentication-http-custom", - "namespace": "authentication.http.custom", - "package-pprint-name": "Authentication Http Custom", - }, - "authentication/union": [ - { - "package-name": "authentication-union", - "namespace": "authentication.union", - }, - { - "package-name": "setuppy-authentication-union", - "namespace": "setuppy.authentication.union", - "keep-setup-py": "true", - }, - ], - "type/array": { - "package-name": "typetest-array", - "namespace": "typetest.array", - }, - "type/dictionary": { - "package-name": "typetest-dictionary", - "namespace": "typetest.dictionary", - }, - "type/enum/extensible": { - "package-name": "typetest-enum-extensible", - "namespace": "typetest.enum.extensible", - }, - "type/enum/fixed": { - "package-name": "typetest-enum-fixed", - "namespace": "typetest.enum.fixed", - }, - "type/model/empty": { - "package-name": "typetest-model-empty", - "namespace": "typetest.model.empty", - }, - "type/model/inheritance/enum-discriminator": { - "package-name": "typetest-model-enumdiscriminator", - "namespace": "typetest.model.enumdiscriminator", - }, - "type/model/inheritance/nested-discriminator": { - "package-name": "typetest-model-nesteddiscriminator", - "namespace": "typetest.model.nesteddiscriminator", - }, - "type/model/inheritance/not-discriminated": { - "package-name": "typetest-model-notdiscriminated", - "namespace": "typetest.model.notdiscriminated", - }, - "type/model/inheritance/single-discriminator": { - "package-name": "typetest-model-singlediscriminator", - "namespace": "typetest.model.singlediscriminator", - }, - "type/model/inheritance/recursive": { - "package-name": "typetest-model-recursive", - "namespace": "typetest.model.recursive", - }, - "type/model/usage": { - "package-name": "typetest-model-usage", - "namespace": "typetest.model.usage", - }, - "type/model/visibility": [ - { - "package-name": "typetest-model-visibility", - "namespace": "typetest.model.visibility", - }, - { - "package-name": "headasbooleantrue", - "namespace": "headasbooleantrue", - "head-as-boolean": "true", - }, - { - "package-name": "headasbooleanfalse", - "namespace": "headasbooleanfalse", - "head-as-boolean": "false", - }, - ], - "type/property/nullable": { - "package-name": "typetest-property-nullable", - "namespace": "typetest.property.nullable", - }, - "type/property/optionality": { - "package-name": "typetest-property-optional", - "namespace": "typetest.property.optional", - }, - "type/property/additional-properties": { - "package-name": "typetest-property-additionalproperties", - "namespace": "typetest.property.additionalproperties", - }, - "type/scalar": { - "package-name": "typetest-scalar", - "namespace": "typetest.scalar", - }, - "type/property/value-types": { - "package-name": "typetest-property-valuetypes", - "namespace": "typetest.property.valuetypes", - }, - "type/union": { - "package-name": "typetest-union", - "namespace": "typetest.union", - }, - "type/union/discriminated": { - "package-name": "typetest-discriminatedunion", - "namespace": "typetest.discriminatedunion", - }, - "type/file": { - "package-name": "typetest-file", - "namespace": "typetest.file", - }, - "documentation": { - "package-name": "specs-documentation", - "namespace": "specs.documentation", - }, +export const BASE_EMITTER_OPTIONS: Record< + string, + Record | Record[] +> = { + "resiliency/srv-driven/old.tsp": { + "package-name": "resiliency-srv-driven1", + namespace: "resiliency.srv.driven1", + "package-mode": "azure-dataplane", + "package-pprint-name": "ResiliencySrvDriven1", + }, + "resiliency/srv-driven": { + "package-name": "resiliency-srv-driven2", + namespace: "resiliency.srv.driven2", + "package-mode": "azure-dataplane", + "package-pprint-name": "ResiliencySrvDriven2", + }, + "authentication/api-key": { + "clear-output-folder": "true", + }, + "authentication/http/custom": { + "package-name": "authentication-http-custom", + namespace: "authentication.http.custom", + "package-pprint-name": "Authentication Http Custom", + }, + "authentication/union": [ + { + "package-name": "authentication-union", + namespace: "authentication.union", + }, + { + "package-name": "setuppy-authentication-union", + namespace: "setuppy.authentication.union", + "keep-setup-py": "true", + }, + ], + "type/array": { + "package-name": "typetest-array", + namespace: "typetest.array", + }, + "type/dictionary": { + "package-name": "typetest-dictionary", + namespace: "typetest.dictionary", + }, + "type/enum/extensible": { + "package-name": "typetest-enum-extensible", + namespace: "typetest.enum.extensible", + }, + "type/enum/fixed": { + "package-name": "typetest-enum-fixed", + namespace: "typetest.enum.fixed", + }, + "type/model/empty": { + "package-name": "typetest-model-empty", + namespace: "typetest.model.empty", + }, + "type/model/inheritance/enum-discriminator": { + "package-name": "typetest-model-enumdiscriminator", + namespace: "typetest.model.enumdiscriminator", + }, + "type/model/inheritance/nested-discriminator": { + "package-name": "typetest-model-nesteddiscriminator", + namespace: "typetest.model.nesteddiscriminator", + }, + "type/model/inheritance/not-discriminated": { + "package-name": "typetest-model-notdiscriminated", + namespace: "typetest.model.notdiscriminated", + }, + "type/model/inheritance/single-discriminator": { + "package-name": "typetest-model-singlediscriminator", + namespace: "typetest.model.singlediscriminator", + }, + "type/model/inheritance/recursive": { + "package-name": "typetest-model-recursive", + namespace: "typetest.model.recursive", + }, + "type/model/usage": { + "package-name": "typetest-model-usage", + namespace: "typetest.model.usage", + }, + "type/model/visibility": [ + { + "package-name": "typetest-model-visibility", + namespace: "typetest.model.visibility", + }, + { + "package-name": "headasbooleantrue", + namespace: "headasbooleantrue", + "head-as-boolean": "true", + }, + { + "package-name": "headasbooleanfalse", + namespace: "headasbooleanfalse", + "head-as-boolean": "false", + }, + ], + "type/property/nullable": { + "package-name": "typetest-property-nullable", + namespace: "typetest.property.nullable", + }, + "type/property/optionality": { + "package-name": "typetest-property-optional", + namespace: "typetest.property.optional", + }, + "type/property/additional-properties": { + "package-name": "typetest-property-additionalproperties", + namespace: "typetest.property.additionalproperties", + }, + "type/scalar": { + "package-name": "typetest-scalar", + namespace: "typetest.scalar", + }, + "type/property/value-types": { + "package-name": "typetest-property-valuetypes", + namespace: "typetest.property.valuetypes", + }, + "type/union": { + "package-name": "typetest-union", + namespace: "typetest.union", + }, + "type/union/discriminated": { + "package-name": "typetest-discriminatedunion", + namespace: "typetest.discriminatedunion", + }, + "type/file": { + "package-name": "typetest-file", + namespace: "typetest.file", + }, + documentation: { + "package-name": "specs-documentation", + namespace: "specs.documentation", + }, }; // ---- Shared interfaces ---- export interface TspCommand { - outputDir: string; - command: string | string[]; + outputDir: string; + command: string | string[]; } export interface RegenerateFlagsInput { - flavor?: string; - debug?: boolean; - name?: string; - pyodide?: boolean; + flavor?: string; + debug?: boolean; + name?: string; + pyodide?: boolean; } export interface RegenerateFlags { - flavor: string; - debug: boolean; - name?: string; - pyodide?: boolean; + flavor: string; + debug: boolean; + name?: string; + pyodide?: boolean; } export interface ProcessedEmitterOption { - options: Record; - outputDir: string; + options: Record; + outputDir: string; } export interface RegenerateConfig { - azureHttpSpecs: string; - httpSpecs: string; - emitterOptions: Record | Record[]>; - azureEmitterOptions: Record | Record[]>; - preprocess: (flags: RegenerateFlagsInput) => Promise; - getCmdList: (spec: string, flags: RegenerateFlags) => TspCommand[]; - executeCommand: (cmd: TspCommand) => Promise; + azureHttpSpecs: string; + httpSpecs: string; + emitterOptions: Record | Record[]>; + azureEmitterOptions: Record | Record[]>; + preprocess: (flags: RegenerateFlagsInput) => Promise; + getCmdList: (spec: string, flags: RegenerateFlags) => TspCommand[]; + executeCommand: (cmd: TspCommand) => Promise; } // ---- Shared utility functions ---- export function toPosix(dir: string): string { - return dir.replace(/\\/g, "/"); + return dir.replace(/\\/g, "/"); } -export function getEmitterOption(spec: string, flavor: string, config: RegenerateConfig): Record[] { - const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; - const relativeSpec = toPosix(relative(specDir, spec)); - const key = relativeSpec.includes("resiliency/srv-driven/old.tsp") ? relativeSpec : dirname(relativeSpec); - const emitter_options = config.emitterOptions[key] || - (flavor === "azure" ? config.azureEmitterOptions[key] : [{}]) || [{}]; - return Array.isArray(emitter_options) ? emitter_options : [emitter_options]; +export function getEmitterOption( + spec: string, + flavor: string, + config: RegenerateConfig, +): Record[] { + const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; + const relativeSpec = toPosix(relative(specDir, spec)); + const key = relativeSpec.includes("resiliency/srv-driven/old.tsp") + ? relativeSpec + : dirname(relativeSpec); + const emitter_options = config.emitterOptions[key] || + (flavor === "azure" ? config.azureEmitterOptions[key] : [{}]) || [{}]; + return Array.isArray(emitter_options) ? emitter_options : [emitter_options]; } -export async function getSubdirectories(baseDir: string, flags: RegenerateFlags): Promise { - const subdirectories: string[] = []; - - async function searchDir(currentDir: string) { - const items = await promises.readdir(currentDir, { withFileTypes: true }); - - const promisesArray = items.map(async (item) => { - const subDirPath = join(currentDir, item.name); - if (item.isDirectory()) { - const mainTspPath = join(subDirPath, "main.tsp"); - const clientTspPath = join(subDirPath, "client.tsp"); - - const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath)); - - if (SKIP_SPECS.some((skipSpec) => mainTspRelativePath.includes(skipSpec))) return; - - const hasMainTsp = await promises - .access(mainTspPath) - .then(() => true) - .catch(() => false); - const hasClientTsp = await promises - .access(clientTspPath) - .then(() => true) - .catch(() => false); - - if (mainTspRelativePath.toLowerCase().includes(flags.name || "")) { - if (mainTspRelativePath.includes("resiliency/srv-driven")) { - subdirectories.push(resolve(subDirPath, "old.tsp")); - } - if (hasClientTsp) { - subdirectories.push(resolve(subDirPath, "client.tsp")); - } else if (hasMainTsp) { - subdirectories.push(resolve(subDirPath, "main.tsp")); - } - } - - // Recursively search in the subdirectory - await searchDir(subDirPath); - } - }); - - await Promise.all(promisesArray); - } +export async function getSubdirectories( + baseDir: string, + flags: RegenerateFlags, +): Promise { + const subdirectories: string[] = []; + + async function searchDir(currentDir: string) { + const items = await promises.readdir(currentDir, { withFileTypes: true }); + + const promisesArray = items.map(async (item) => { + const subDirPath = join(currentDir, item.name); + if (item.isDirectory()) { + const mainTspPath = join(subDirPath, "main.tsp"); + const clientTspPath = join(subDirPath, "client.tsp"); + + const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath)); + + if (SKIP_SPECS.some((skipSpec) => mainTspRelativePath.includes(skipSpec))) return; + + const hasMainTsp = await promises + .access(mainTspPath) + .then(() => true) + .catch(() => false); + const hasClientTsp = await promises + .access(clientTspPath) + .then(() => true) + .catch(() => false); + + if (mainTspRelativePath.toLowerCase().includes(flags.name || "")) { + if (mainTspRelativePath.includes("resiliency/srv-driven")) { + subdirectories.push(resolve(subDirPath, "old.tsp")); + } + if (hasClientTsp) { + subdirectories.push(resolve(subDirPath, "client.tsp")); + } else if (hasMainTsp) { + subdirectories.push(resolve(subDirPath, "main.tsp")); + } + } + + // Recursively search in the subdirectory + await searchDir(subDirPath); + } + }); + + await Promise.all(promisesArray); + } - await searchDir(baseDir); - return subdirectories; + await searchDir(baseDir); + return subdirectories; } export function defaultPackageName(spec: string, config: RegenerateConfig): string { - const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; - return toPosix(relative(specDir, dirname(spec))) - .replace(/\//g, "-") - .toLowerCase(); + const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; + return toPosix(relative(specDir, dirname(spec))) + .replace(/\//g, "-") + .toLowerCase(); } export function buildOptions( - spec: string, - generatedFolder: string, - flags: RegenerateFlags, - config: RegenerateConfig, + spec: string, + generatedFolder: string, + flags: RegenerateFlags, + config: RegenerateConfig, ): ProcessedEmitterOption[] { - const results: ProcessedEmitterOption[] = []; - for (const emitterConfig of getEmitterOption(spec, flags.flavor, config)) { - const options: Record = { ...emitterConfig }; - if (flags.pyodide) { - options["use-pyodide"] = "true"; - } - options["flavor"] = flags.flavor; - for (const [k, v] of Object.entries(SpecialFlags[flags.flavor] ?? {})) { - options[k] = v; - } - if (options["emitter-output-dir"] === undefined) { - const packageName = options["package-name"] || defaultPackageName(spec, config); - options["emitter-output-dir"] = toPosix(`${generatedFolder}/test/${flags.flavor}/generated/${packageName}`); - } - if (flags.debug) { - options["debug"] = "true"; - } - options["examples-dir"] = toPosix(join(dirname(spec), "examples")); - results.push({ - options, - outputDir: options["emitter-output-dir"], - }); + const results: ProcessedEmitterOption[] = []; + for (const emitterConfig of getEmitterOption(spec, flags.flavor, config)) { + const options: Record = { ...emitterConfig }; + if (flags.pyodide) { + options["use-pyodide"] = "true"; } - return results; -} - -export async function runTaskPool(tasks: Array<() => Promise>, poolLimit: number): Promise { - async function worker(start: number, end: number) { - while (start < end) { - await tasks[start](); - start++; - } + options["flavor"] = flags.flavor; + for (const [k, v] of Object.entries(SpecialFlags[flags.flavor] ?? {})) { + options[k] = v; } - - const workers = []; - let start = 0; - while (start < tasks.length) { - const end = Math.min(start + poolLimit, tasks.length); - workers.push((async () => await worker(start, end))()); - start = end; + if (options["emitter-output-dir"] === undefined) { + const packageName = options["package-name"] || defaultPackageName(spec, config); + options["emitter-output-dir"] = toPosix( + `${generatedFolder}/test/${flags.flavor}/generated/${packageName}`, + ); + } + if (flags.debug) { + options["debug"] = "true"; } - await Promise.all(workers); + options["examples-dir"] = toPosix(join(dirname(spec), "examples")); + results.push({ + options, + outputDir: options["emitter-output-dir"], + }); + } + return results; } -export async function regenerate(flags: RegenerateFlagsInput, config: RegenerateConfig): Promise { - if (flags.flavor === undefined) { - await regenerate({ flavor: "azure", ...flags }, config); - await regenerate({ flavor: "unbranded", ...flags }, config); - } else { - await config.preprocess(flags); - - const flagsResolved: RegenerateFlags = { debug: false, flavor: flags.flavor, ...flags }; - const subdirectoriesForAzure = await getSubdirectories(config.azureHttpSpecs, flagsResolved); - const subdirectoriesForNonAzure = await getSubdirectories(config.httpSpecs, flagsResolved); - const subdirectories = - flags.flavor === "azure" - ? [...subdirectoriesForAzure, ...subdirectoriesForNonAzure] - : subdirectoriesForNonAzure; - const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) => - config.getCmdList(subdirectory, flagsResolved), - ); - - // Create tasks as functions for the pool - const tasks: Array<() => Promise> = cmdList.map((tspCommand) => { - return () => config.executeCommand(tspCommand); - }); - - // Run tasks with a concurrency limit - await runTaskPool(tasks, 30); +export async function runTaskPool( + tasks: Array<() => Promise>, + poolLimit: number, +): Promise { + async function worker(start: number, end: number) { + while (start < end) { + await tasks[start](); + start++; } + } + + const workers = []; + let start = 0; + while (start < tasks.length) { + const end = Math.min(start + poolLimit, tasks.length); + workers.push((async () => await worker(start, end))()); + start = end; + } + await Promise.all(workers); +} + +export async function regenerate( + flags: RegenerateFlagsInput, + config: RegenerateConfig, +): Promise { + if (flags.flavor === undefined) { + await regenerate({ flavor: "azure", ...flags }, config); + await regenerate({ flavor: "unbranded", ...flags }, config); + } else { + await config.preprocess(flags); + + const flagsResolved: RegenerateFlags = { debug: false, flavor: flags.flavor, ...flags }; + const subdirectoriesForAzure = await getSubdirectories(config.azureHttpSpecs, flagsResolved); + const subdirectoriesForNonAzure = await getSubdirectories(config.httpSpecs, flagsResolved); + const subdirectories = + flags.flavor === "azure" + ? [...subdirectoriesForAzure, ...subdirectoriesForNonAzure] + : subdirectoriesForNonAzure; + const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) => + config.getCmdList(subdirectory, flagsResolved), + ); + + // Create tasks as functions for the pool + const tasks: Array<() => Promise> = cmdList.map((tspCommand) => { + return () => config.executeCommand(tspCommand); + }); + + // Run tasks with a concurrency limit + await runTaskPool(tasks, 30); + } } diff --git a/packages/typespec-python/src/lib.ts b/packages/typespec-python/src/lib.ts index 6e85d60424..8062bf9cc4 100644 --- a/packages/typespec-python/src/lib.ts +++ b/packages/typespec-python/src/lib.ts @@ -12,8 +12,10 @@ export interface PythonAzureEmitterOptions extends PythonEmitterOptions { "generate-test"?: boolean; } -export interface PythonSdkContext - extends SdkContext { +export interface PythonSdkContext extends SdkContext< + PythonAzureEmitterOptions, + TServiceOperation +> { __endpointPathParameters: Record[]; } From 8c6f0dd10280c0f3a12d9933b7e0759fd657742a Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Thu, 12 Mar 2026 02:31:35 +0000 Subject: [PATCH 7/9] Update dependencies (2026-03-12 02:31:35) --- .../scripts/eng/regenerate-common.ts | 811 +++++++++--------- packages/typespec-python/src/lib.ts | 6 +- pnpm-lock.yaml | 14 +- 3 files changed, 403 insertions(+), 428 deletions(-) diff --git a/packages/typespec-python/scripts/eng/regenerate-common.ts b/packages/typespec-python/scripts/eng/regenerate-common.ts index 9f9a91266d..9880418935 100644 --- a/packages/typespec-python/scripts/eng/regenerate-common.ts +++ b/packages/typespec-python/scripts/eng/regenerate-common.ts @@ -6,467 +6,444 @@ import { dirname, join, relative, resolve } from "path"; export const SKIP_SPECS: string[] = ["type/file"]; export const SpecialFlags: Record> = { - azure: { - "generate-test": true, - "generate-sample": true, - }, + azure: { + "generate-test": true, + "generate-sample": true, + }, }; // ---- Base emitter options (shared across repos) ---- -export const BASE_AZURE_EMITTER_OPTIONS: Record< - string, - Record | Record[] -> = { - "azure/client-generator-core/access": { - namespace: "specs.azure.clientgenerator.core.access", - }, - "azure/client-generator-core/alternate-type": { - namespace: "specs.azure.clientgenerator.core.alternatetype", - }, - "azure/client-generator-core/api-version": { - namespace: "specs.azure.clientgenerator.core.apiversion", - }, - "azure/client-generator-core/client-initialization/default": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.default", - }, - "azure/client-generator-core/client-initialization/individually": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.individually", - }, - "azure/client-generator-core/client-initialization/individuallyParent": { - namespace: "specs.azure.clientgenerator.core.clientinitialization.individuallyparent", - }, - "azure/client-generator-core/client-location": { - namespace: "specs.azure.clientgenerator.core.clientlocation", - }, - "azure/client-generator-core/deserialize-empty-string-as-null": { - namespace: "specs.azure.clientgenerator.core.emptystring", - }, - "azure/client-generator-core/flatten-property": { - namespace: "specs.azure.clientgenerator.core.flattenproperty", - }, - "azure/client-generator-core/usage": { - namespace: "specs.azure.clientgenerator.core.usage", - }, - "azure/client-generator-core/override": { - namespace: "specs.azure.clientgenerator.core.override", - }, - "azure/client-generator-core/hierarchy-building": { - namespace: "specs.azure.clientgenerator.core.hierarchybuilding", - }, - "azure/core/basic": { - namespace: "specs.azure.core.basic", - }, - "azure/core/lro/rpc": { - namespace: "specs.azure.core.lro.rpc", - }, - "azure/core/lro/standard": { - namespace: "specs.azure.core.lro.standard", - }, - "azure/core/model": { - namespace: "specs.azure.core.model", - }, - "azure/core/page": { - namespace: "specs.azure.core.page", - }, - "azure/core/scalar": { - namespace: "specs.azure.core.scalar", - }, - "azure/core/traits": { - namespace: "specs.azure.core.traits", - }, - "azure/encode/duration": { - namespace: "specs.azure.encode.duration", - }, - "azure/example/basic": { - namespace: "specs.azure.example.basic", - }, - "azure/payload/pageable": { - namespace: "specs.azure.payload.pageable", - }, - "azure/versioning/previewVersion": { - namespace: "specs.azure.versioning.previewversion", - }, - "client/structure/default": { - namespace: "client.structure.service", - }, - "client/structure/multi-client": { - "package-name": "client-structure-multiclient", - namespace: "client.structure.multiclient", - }, - "client/structure/renamed-operation": { - "package-name": "client-structure-renamedoperation", - namespace: "client.structure.renamedoperation", - }, - "client/structure/two-operation-group": { - "package-name": "client-structure-twooperationgroup", - namespace: "client.structure.twooperationgroup", - }, - "client/naming": { - namespace: "client.naming.main", - }, - "client/overload": { - namespace: "client.overload", - }, - "encode/duration": { - namespace: "encode.duration", - }, - "encode/numeric": { - namespace: "encode.numeric", - }, - "parameters/basic": { - namespace: "parameters.basic", - }, - "parameters/spread": { - namespace: "parameters.spread", - }, - "payload/content-negotiation": { - namespace: "payload.contentnegotiation", - }, - "payload/multipart": { - namespace: "payload.multipart", - }, - "serialization/encoded-name/json": { - namespace: "serialization.encodedname.json", - }, - "special-words": { - namespace: "specialwords", - }, - "service/multi-service": { - namespace: "service.multiservice", - }, +export const BASE_AZURE_EMITTER_OPTIONS: Record | Record[]> = { + "azure/client-generator-core/access": { + namespace: "specs.azure.clientgenerator.core.access", + }, + "azure/client-generator-core/alternate-type": { + namespace: "specs.azure.clientgenerator.core.alternatetype", + }, + "azure/client-generator-core/api-version": { + namespace: "specs.azure.clientgenerator.core.apiversion", + }, + "azure/client-generator-core/client-initialization/default": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.default", + }, + "azure/client-generator-core/client-initialization/individually": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.individually", + }, + "azure/client-generator-core/client-initialization/individuallyParent": { + namespace: "specs.azure.clientgenerator.core.clientinitialization.individuallyparent", + }, + "azure/client-generator-core/client-location": { + namespace: "specs.azure.clientgenerator.core.clientlocation", + }, + "azure/client-generator-core/deserialize-empty-string-as-null": { + namespace: "specs.azure.clientgenerator.core.emptystring", + }, + "azure/client-generator-core/flatten-property": { + namespace: "specs.azure.clientgenerator.core.flattenproperty", + }, + "azure/client-generator-core/usage": { + namespace: "specs.azure.clientgenerator.core.usage", + }, + "azure/client-generator-core/override": { + namespace: "specs.azure.clientgenerator.core.override", + }, + "azure/client-generator-core/hierarchy-building": { + namespace: "specs.azure.clientgenerator.core.hierarchybuilding", + }, + "azure/core/basic": { + namespace: "specs.azure.core.basic", + }, + "azure/core/lro/rpc": { + namespace: "specs.azure.core.lro.rpc", + }, + "azure/core/lro/standard": { + namespace: "specs.azure.core.lro.standard", + }, + "azure/core/model": { + namespace: "specs.azure.core.model", + }, + "azure/core/page": { + namespace: "specs.azure.core.page", + }, + "azure/core/scalar": { + namespace: "specs.azure.core.scalar", + }, + "azure/core/traits": { + namespace: "specs.azure.core.traits", + }, + "azure/encode/duration": { + namespace: "specs.azure.encode.duration", + }, + "azure/example/basic": { + namespace: "specs.azure.example.basic", + }, + "azure/payload/pageable": { + namespace: "specs.azure.payload.pageable", + }, + "azure/versioning/previewVersion": { + namespace: "specs.azure.versioning.previewversion", + }, + "client/structure/default": { + namespace: "client.structure.service", + }, + "client/structure/multi-client": { + "package-name": "client-structure-multiclient", + "namespace": "client.structure.multiclient", + }, + "client/structure/renamed-operation": { + "package-name": "client-structure-renamedoperation", + "namespace": "client.structure.renamedoperation", + }, + "client/structure/two-operation-group": { + "package-name": "client-structure-twooperationgroup", + "namespace": "client.structure.twooperationgroup", + }, + "client/naming": { + namespace: "client.naming.main", + }, + "client/overload": { + namespace: "client.overload", + }, + "encode/duration": { + namespace: "encode.duration", + }, + "encode/numeric": { + namespace: "encode.numeric", + }, + "parameters/basic": { + namespace: "parameters.basic", + }, + "parameters/spread": { + namespace: "parameters.spread", + }, + "payload/content-negotiation": { + namespace: "payload.contentnegotiation", + }, + "payload/multipart": { + namespace: "payload.multipart", + }, + "serialization/encoded-name/json": { + namespace: "serialization.encodedname.json", + }, + "special-words": { + namespace: "specialwords", + }, + "service/multi-service": { + namespace: "service.multiservice", + }, }; -export const BASE_EMITTER_OPTIONS: Record< - string, - Record | Record[] -> = { - "resiliency/srv-driven/old.tsp": { - "package-name": "resiliency-srv-driven1", - namespace: "resiliency.srv.driven1", - "package-mode": "azure-dataplane", - "package-pprint-name": "ResiliencySrvDriven1", - }, - "resiliency/srv-driven": { - "package-name": "resiliency-srv-driven2", - namespace: "resiliency.srv.driven2", - "package-mode": "azure-dataplane", - "package-pprint-name": "ResiliencySrvDriven2", - }, - "authentication/api-key": { - "clear-output-folder": "true", - }, - "authentication/http/custom": { - "package-name": "authentication-http-custom", - namespace: "authentication.http.custom", - "package-pprint-name": "Authentication Http Custom", - }, - "authentication/union": [ - { - "package-name": "authentication-union", - namespace: "authentication.union", - }, - { - "package-name": "setuppy-authentication-union", - namespace: "setuppy.authentication.union", - "keep-setup-py": "true", - }, - ], - "type/array": { - "package-name": "typetest-array", - namespace: "typetest.array", - }, - "type/dictionary": { - "package-name": "typetest-dictionary", - namespace: "typetest.dictionary", - }, - "type/enum/extensible": { - "package-name": "typetest-enum-extensible", - namespace: "typetest.enum.extensible", - }, - "type/enum/fixed": { - "package-name": "typetest-enum-fixed", - namespace: "typetest.enum.fixed", - }, - "type/model/empty": { - "package-name": "typetest-model-empty", - namespace: "typetest.model.empty", - }, - "type/model/inheritance/enum-discriminator": { - "package-name": "typetest-model-enumdiscriminator", - namespace: "typetest.model.enumdiscriminator", - }, - "type/model/inheritance/nested-discriminator": { - "package-name": "typetest-model-nesteddiscriminator", - namespace: "typetest.model.nesteddiscriminator", - }, - "type/model/inheritance/not-discriminated": { - "package-name": "typetest-model-notdiscriminated", - namespace: "typetest.model.notdiscriminated", - }, - "type/model/inheritance/single-discriminator": { - "package-name": "typetest-model-singlediscriminator", - namespace: "typetest.model.singlediscriminator", - }, - "type/model/inheritance/recursive": { - "package-name": "typetest-model-recursive", - namespace: "typetest.model.recursive", - }, - "type/model/usage": { - "package-name": "typetest-model-usage", - namespace: "typetest.model.usage", - }, - "type/model/visibility": [ - { - "package-name": "typetest-model-visibility", - namespace: "typetest.model.visibility", - }, - { - "package-name": "headasbooleantrue", - namespace: "headasbooleantrue", - "head-as-boolean": "true", - }, - { - "package-name": "headasbooleanfalse", - namespace: "headasbooleanfalse", - "head-as-boolean": "false", - }, - ], - "type/property/nullable": { - "package-name": "typetest-property-nullable", - namespace: "typetest.property.nullable", - }, - "type/property/optionality": { - "package-name": "typetest-property-optional", - namespace: "typetest.property.optional", - }, - "type/property/additional-properties": { - "package-name": "typetest-property-additionalproperties", - namespace: "typetest.property.additionalproperties", - }, - "type/scalar": { - "package-name": "typetest-scalar", - namespace: "typetest.scalar", - }, - "type/property/value-types": { - "package-name": "typetest-property-valuetypes", - namespace: "typetest.property.valuetypes", - }, - "type/union": { - "package-name": "typetest-union", - namespace: "typetest.union", - }, - "type/union/discriminated": { - "package-name": "typetest-discriminatedunion", - namespace: "typetest.discriminatedunion", - }, - "type/file": { - "package-name": "typetest-file", - namespace: "typetest.file", - }, - documentation: { - "package-name": "specs-documentation", - namespace: "specs.documentation", - }, +export const BASE_EMITTER_OPTIONS: Record | Record[]> = { + "resiliency/srv-driven/old.tsp": { + "package-name": "resiliency-srv-driven1", + "namespace": "resiliency.srv.driven1", + "package-mode": "azure-dataplane", + "package-pprint-name": "ResiliencySrvDriven1", + }, + "resiliency/srv-driven": { + "package-name": "resiliency-srv-driven2", + "namespace": "resiliency.srv.driven2", + "package-mode": "azure-dataplane", + "package-pprint-name": "ResiliencySrvDriven2", + }, + "authentication/api-key": { + "clear-output-folder": "true", + }, + "authentication/http/custom": { + "package-name": "authentication-http-custom", + "namespace": "authentication.http.custom", + "package-pprint-name": "Authentication Http Custom", + }, + "authentication/union": [ + { + "package-name": "authentication-union", + "namespace": "authentication.union", + }, + { + "package-name": "setuppy-authentication-union", + "namespace": "setuppy.authentication.union", + "keep-setup-py": "true", + }, + ], + "type/array": { + "package-name": "typetest-array", + "namespace": "typetest.array", + }, + "type/dictionary": { + "package-name": "typetest-dictionary", + "namespace": "typetest.dictionary", + }, + "type/enum/extensible": { + "package-name": "typetest-enum-extensible", + "namespace": "typetest.enum.extensible", + }, + "type/enum/fixed": { + "package-name": "typetest-enum-fixed", + "namespace": "typetest.enum.fixed", + }, + "type/model/empty": { + "package-name": "typetest-model-empty", + "namespace": "typetest.model.empty", + }, + "type/model/inheritance/enum-discriminator": { + "package-name": "typetest-model-enumdiscriminator", + "namespace": "typetest.model.enumdiscriminator", + }, + "type/model/inheritance/nested-discriminator": { + "package-name": "typetest-model-nesteddiscriminator", + "namespace": "typetest.model.nesteddiscriminator", + }, + "type/model/inheritance/not-discriminated": { + "package-name": "typetest-model-notdiscriminated", + "namespace": "typetest.model.notdiscriminated", + }, + "type/model/inheritance/single-discriminator": { + "package-name": "typetest-model-singlediscriminator", + "namespace": "typetest.model.singlediscriminator", + }, + "type/model/inheritance/recursive": { + "package-name": "typetest-model-recursive", + "namespace": "typetest.model.recursive", + }, + "type/model/usage": { + "package-name": "typetest-model-usage", + "namespace": "typetest.model.usage", + }, + "type/model/visibility": [ + { + "package-name": "typetest-model-visibility", + "namespace": "typetest.model.visibility", + }, + { + "package-name": "headasbooleantrue", + "namespace": "headasbooleantrue", + "head-as-boolean": "true", + }, + { + "package-name": "headasbooleanfalse", + "namespace": "headasbooleanfalse", + "head-as-boolean": "false", + }, + ], + "type/property/nullable": { + "package-name": "typetest-property-nullable", + "namespace": "typetest.property.nullable", + }, + "type/property/optionality": { + "package-name": "typetest-property-optional", + "namespace": "typetest.property.optional", + }, + "type/property/additional-properties": { + "package-name": "typetest-property-additionalproperties", + "namespace": "typetest.property.additionalproperties", + }, + "type/scalar": { + "package-name": "typetest-scalar", + "namespace": "typetest.scalar", + }, + "type/property/value-types": { + "package-name": "typetest-property-valuetypes", + "namespace": "typetest.property.valuetypes", + }, + "type/union": { + "package-name": "typetest-union", + "namespace": "typetest.union", + }, + "type/union/discriminated": { + "package-name": "typetest-discriminatedunion", + "namespace": "typetest.discriminatedunion", + }, + "type/file": { + "package-name": "typetest-file", + "namespace": "typetest.file", + }, + "documentation": { + "package-name": "specs-documentation", + "namespace": "specs.documentation", + }, }; // ---- Shared interfaces ---- export interface TspCommand { - outputDir: string; - command: string | string[]; + outputDir: string; + command: string | string[]; } export interface RegenerateFlagsInput { - flavor?: string; - debug?: boolean; - name?: string; - pyodide?: boolean; + flavor?: string; + debug?: boolean; + name?: string; + pyodide?: boolean; } export interface RegenerateFlags { - flavor: string; - debug: boolean; - name?: string; - pyodide?: boolean; + flavor: string; + debug: boolean; + name?: string; + pyodide?: boolean; } export interface ProcessedEmitterOption { - options: Record; - outputDir: string; + options: Record; + outputDir: string; } export interface RegenerateConfig { - azureHttpSpecs: string; - httpSpecs: string; - emitterOptions: Record | Record[]>; - azureEmitterOptions: Record | Record[]>; - preprocess: (flags: RegenerateFlagsInput) => Promise; - getCmdList: (spec: string, flags: RegenerateFlags) => TspCommand[]; - executeCommand: (cmd: TspCommand) => Promise; + azureHttpSpecs: string; + httpSpecs: string; + emitterOptions: Record | Record[]>; + azureEmitterOptions: Record | Record[]>; + preprocess: (flags: RegenerateFlagsInput) => Promise; + getCmdList: (spec: string, flags: RegenerateFlags) => TspCommand[]; + executeCommand: (cmd: TspCommand) => Promise; } // ---- Shared utility functions ---- export function toPosix(dir: string): string { - return dir.replace(/\\/g, "/"); + return dir.replace(/\\/g, "/"); } -export function getEmitterOption( - spec: string, - flavor: string, - config: RegenerateConfig, -): Record[] { - const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; - const relativeSpec = toPosix(relative(specDir, spec)); - const key = relativeSpec.includes("resiliency/srv-driven/old.tsp") - ? relativeSpec - : dirname(relativeSpec); - const emitter_options = config.emitterOptions[key] || - (flavor === "azure" ? config.azureEmitterOptions[key] : [{}]) || [{}]; - return Array.isArray(emitter_options) ? emitter_options : [emitter_options]; +export function getEmitterOption(spec: string, flavor: string, config: RegenerateConfig): Record[] { + const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; + const relativeSpec = toPosix(relative(specDir, spec)); + const key = relativeSpec.includes("resiliency/srv-driven/old.tsp") ? relativeSpec : dirname(relativeSpec); + const emitter_options = config.emitterOptions[key] || + (flavor === "azure" ? config.azureEmitterOptions[key] : [{}]) || [{}]; + return Array.isArray(emitter_options) ? emitter_options : [emitter_options]; } -export async function getSubdirectories( - baseDir: string, - flags: RegenerateFlags, -): Promise { - const subdirectories: string[] = []; - - async function searchDir(currentDir: string) { - const items = await promises.readdir(currentDir, { withFileTypes: true }); - - const promisesArray = items.map(async (item) => { - const subDirPath = join(currentDir, item.name); - if (item.isDirectory()) { - const mainTspPath = join(subDirPath, "main.tsp"); - const clientTspPath = join(subDirPath, "client.tsp"); - - const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath)); - - if (SKIP_SPECS.some((skipSpec) => mainTspRelativePath.includes(skipSpec))) return; - - const hasMainTsp = await promises - .access(mainTspPath) - .then(() => true) - .catch(() => false); - const hasClientTsp = await promises - .access(clientTspPath) - .then(() => true) - .catch(() => false); - - if (mainTspRelativePath.toLowerCase().includes(flags.name || "")) { - if (mainTspRelativePath.includes("resiliency/srv-driven")) { - subdirectories.push(resolve(subDirPath, "old.tsp")); - } - if (hasClientTsp) { - subdirectories.push(resolve(subDirPath, "client.tsp")); - } else if (hasMainTsp) { - subdirectories.push(resolve(subDirPath, "main.tsp")); - } - } - - // Recursively search in the subdirectory - await searchDir(subDirPath); - } - }); - - await Promise.all(promisesArray); - } +export async function getSubdirectories(baseDir: string, flags: RegenerateFlags): Promise { + const subdirectories: string[] = []; + + async function searchDir(currentDir: string) { + const items = await promises.readdir(currentDir, { withFileTypes: true }); + + const promisesArray = items.map(async (item) => { + const subDirPath = join(currentDir, item.name); + if (item.isDirectory()) { + const mainTspPath = join(subDirPath, "main.tsp"); + const clientTspPath = join(subDirPath, "client.tsp"); + + const mainTspRelativePath = toPosix(relative(baseDir, mainTspPath)); + + if (SKIP_SPECS.some((skipSpec) => mainTspRelativePath.includes(skipSpec))) return; + + const hasMainTsp = await promises + .access(mainTspPath) + .then(() => true) + .catch(() => false); + const hasClientTsp = await promises + .access(clientTspPath) + .then(() => true) + .catch(() => false); + + if (mainTspRelativePath.toLowerCase().includes(flags.name || "")) { + if (mainTspRelativePath.includes("resiliency/srv-driven")) { + subdirectories.push(resolve(subDirPath, "old.tsp")); + } + if (hasClientTsp) { + subdirectories.push(resolve(subDirPath, "client.tsp")); + } else if (hasMainTsp) { + subdirectories.push(resolve(subDirPath, "main.tsp")); + } + } + + // Recursively search in the subdirectory + await searchDir(subDirPath); + } + }); + + await Promise.all(promisesArray); + } - await searchDir(baseDir); - return subdirectories; + await searchDir(baseDir); + return subdirectories; } export function defaultPackageName(spec: string, config: RegenerateConfig): string { - const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; - return toPosix(relative(specDir, dirname(spec))) - .replace(/\//g, "-") - .toLowerCase(); + const specDir = spec.includes("azure") ? config.azureHttpSpecs : config.httpSpecs; + return toPosix(relative(specDir, dirname(spec))) + .replace(/\//g, "-") + .toLowerCase(); } export function buildOptions( - spec: string, - generatedFolder: string, - flags: RegenerateFlags, - config: RegenerateConfig, + spec: string, + generatedFolder: string, + flags: RegenerateFlags, + config: RegenerateConfig, ): ProcessedEmitterOption[] { - const results: ProcessedEmitterOption[] = []; - for (const emitterConfig of getEmitterOption(spec, flags.flavor, config)) { - const options: Record = { ...emitterConfig }; - if (flags.pyodide) { - options["use-pyodide"] = "true"; - } - options["flavor"] = flags.flavor; - for (const [k, v] of Object.entries(SpecialFlags[flags.flavor] ?? {})) { - options[k] = v; - } - if (options["emitter-output-dir"] === undefined) { - const packageName = options["package-name"] || defaultPackageName(spec, config); - options["emitter-output-dir"] = toPosix( - `${generatedFolder}/test/${flags.flavor}/generated/${packageName}`, - ); - } - if (flags.debug) { - options["debug"] = "true"; + const results: ProcessedEmitterOption[] = []; + for (const emitterConfig of getEmitterOption(spec, flags.flavor, config)) { + const options: Record = { ...emitterConfig }; + if (flags.pyodide) { + options["use-pyodide"] = "true"; + } + options["flavor"] = flags.flavor; + for (const [k, v] of Object.entries(SpecialFlags[flags.flavor] ?? {})) { + options[k] = v; + } + if (options["emitter-output-dir"] === undefined) { + const packageName = options["package-name"] || defaultPackageName(spec, config); + options["emitter-output-dir"] = toPosix(`${generatedFolder}/test/${flags.flavor}/generated/${packageName}`); + } + if (flags.debug) { + options["debug"] = "true"; + } + options["examples-dir"] = toPosix(join(dirname(spec), "examples")); + results.push({ + options, + outputDir: options["emitter-output-dir"], + }); } - options["examples-dir"] = toPosix(join(dirname(spec), "examples")); - results.push({ - options, - outputDir: options["emitter-output-dir"], - }); - } - return results; + return results; } -export async function runTaskPool( - tasks: Array<() => Promise>, - poolLimit: number, -): Promise { - async function worker(start: number, end: number) { - while (start < end) { - await tasks[start](); - start++; +export async function runTaskPool(tasks: Array<() => Promise>, poolLimit: number): Promise { + async function worker(start: number, end: number) { + while (start < end) { + await tasks[start](); + start++; + } + } + + const workers = []; + let start = 0; + while (start < tasks.length) { + const end = Math.min(start + poolLimit, tasks.length); + workers.push((async () => await worker(start, end))()); + start = end; } - } - - const workers = []; - let start = 0; - while (start < tasks.length) { - const end = Math.min(start + poolLimit, tasks.length); - workers.push((async () => await worker(start, end))()); - start = end; - } - await Promise.all(workers); + await Promise.all(workers); } -export async function regenerate( - flags: RegenerateFlagsInput, - config: RegenerateConfig, -): Promise { - if (flags.flavor === undefined) { - await regenerate({ flavor: "azure", ...flags }, config); - await regenerate({ flavor: "unbranded", ...flags }, config); - } else { - await config.preprocess(flags); - - const flagsResolved: RegenerateFlags = { debug: false, flavor: flags.flavor, ...flags }; - const subdirectoriesForAzure = await getSubdirectories(config.azureHttpSpecs, flagsResolved); - const subdirectoriesForNonAzure = await getSubdirectories(config.httpSpecs, flagsResolved); - const subdirectories = - flags.flavor === "azure" - ? [...subdirectoriesForAzure, ...subdirectoriesForNonAzure] - : subdirectoriesForNonAzure; - const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) => - config.getCmdList(subdirectory, flagsResolved), - ); - - // Create tasks as functions for the pool - const tasks: Array<() => Promise> = cmdList.map((tspCommand) => { - return () => config.executeCommand(tspCommand); - }); - - // Run tasks with a concurrency limit - await runTaskPool(tasks, 30); - } +export async function regenerate(flags: RegenerateFlagsInput, config: RegenerateConfig): Promise { + if (flags.flavor === undefined) { + await regenerate({ flavor: "azure", ...flags }, config); + await regenerate({ flavor: "unbranded", ...flags }, config); + } else { + await config.preprocess(flags); + + const flagsResolved: RegenerateFlags = { debug: false, flavor: flags.flavor, ...flags }; + const subdirectoriesForAzure = await getSubdirectories(config.azureHttpSpecs, flagsResolved); + const subdirectoriesForNonAzure = await getSubdirectories(config.httpSpecs, flagsResolved); + const subdirectories = + flags.flavor === "azure" + ? [...subdirectoriesForAzure, ...subdirectoriesForNonAzure] + : subdirectoriesForNonAzure; + const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) => + config.getCmdList(subdirectory, flagsResolved), + ); + + // Create tasks as functions for the pool + const tasks: Array<() => Promise> = cmdList.map((tspCommand) => { + return () => config.executeCommand(tspCommand); + }); + + // Run tasks with a concurrency limit + await runTaskPool(tasks, 30); + } } diff --git a/packages/typespec-python/src/lib.ts b/packages/typespec-python/src/lib.ts index 8062bf9cc4..6e85d60424 100644 --- a/packages/typespec-python/src/lib.ts +++ b/packages/typespec-python/src/lib.ts @@ -12,10 +12,8 @@ export interface PythonAzureEmitterOptions extends PythonEmitterOptions { "generate-test"?: boolean; } -export interface PythonSdkContext extends SdkContext< - PythonAzureEmitterOptions, - TServiceOperation -> { +export interface PythonSdkContext + extends SdkContext { __endpointPathParameters: Record[]; } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 15b1bb237e..a06adaeadb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,8 +60,8 @@ importers: specifier: ~1.0.2 version: 1.0.2 '@typespec/http-client-python': - specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz - version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4) + specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz + version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4) fs-extra: specifier: ~11.2.0 version: 11.2.0 @@ -82,8 +82,8 @@ importers: packages/typespec-python: dependencies: '@typespec/http-client-python': - specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz - version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4) + specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz + version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4) fs-extra: specifier: ~11.2.0 version: 11.2.0 @@ -1721,8 +1721,8 @@ packages: peerDependencies: '@typespec/compiler': ^1.10.0 - '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz': - resolution: {tarball: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz} + '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz': + resolution: {tarball: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz} version: 0.28.0 engines: {node: '>=20.0.0'} peerDependencies: @@ -6699,7 +6699,7 @@ snapshots: dependencies: '@typespec/compiler': 1.10.0(@types/node@25.0.10) - '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5NzY3My9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4)': + '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4)': dependencies: '@azure-tools/typespec-autorest': 0.66.0(3lynfktgeabz5vvk7tfr76nhnu) '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))) From 713cd060ae822715870c0d99b5556d116701edc3 Mon Sep 17 00:00:00 2001 From: AutoPrFromHttpClientPython Date: Thu, 12 Mar 2026 02:37:02 +0000 Subject: [PATCH 8/9] Regenerate for typespec-python (2026-03-12 02:37:02) --- .../azure/example/basic/models/_enums.py | 1 + .../resources/models/_enums.py | 4 +++ .../second/sub/models/_enums.py | 1 + .../firstnamespace/models/_enums.py | 4 +-- .../secondnamespace/models/_enums.py | 4 +-- .../client/naming/main/models/_enums.py | 3 ++ .../clientoperationgroup/models/_enums.py | 5 +++ .../client/structure/service/models/_enums.py | 5 +++ .../structure/multiclient/models/_enums.py | 5 +++ .../renamedoperation/models/_enums.py | 5 +++ .../twooperationgroup/models/_enums.py | 5 +++ .../encode/array/models/_enums.py | 6 ++++ .../server/path/multiple/models/_enums.py | 2 +- .../service/multiservice/models/_enums.py | 4 +++ .../specialwords/models/_enums.py | 33 +++++++++++++++++++ .../model/enumdiscriminator/models/_enums.py | 4 +-- .../model/enumdiscriminator/models/_models.py | 8 ++--- .../property/valuetypes/models/_enums.py | 1 + .../property/valuetypes/models/_models.py | 4 +-- .../typetest/union/models/_enums.py | 2 ++ .../versioning/added/models/_enums.py | 3 ++ .../versioning/removed/models/_enums.py | 3 ++ .../versioning/renamedfrom/models/_enums.py | 1 + .../encode/array/models/_enums.py | 6 ++++ .../server/path/multiple/models/_enums.py | 2 +- .../extensiblestrings/models/_enums.py | 33 +++++++++++++++++++ .../model/enumdiscriminator/models/_enums.py | 4 +-- .../model/enumdiscriminator/models/_models.py | 8 ++--- .../property/valuetypes/models/_enums.py | 1 + .../property/valuetypes/models/_models.py | 4 +-- .../typetest/union/models/_enums.py | 2 ++ .../versioning/added/models/_enums.py | 3 ++ .../versioning/removed/models/_enums.py | 3 ++ .../versioning/renamedfrom/models/_enums.py | 1 + 34 files changed, 158 insertions(+), 22 deletions(-) diff --git a/packages/typespec-python/test/azure/generated/azure-example-basic/specs/azure/example/basic/models/_enums.py b/packages/typespec-python/test/azure/generated/azure-example-basic/specs/azure/example/basic/models/_enums.py index f152be28fe..98106e61e0 100644 --- a/packages/typespec-python/test/azure/generated/azure-example-basic/specs/azure/example/basic/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/azure-example-basic/specs/azure/example/basic/models/_enums.py @@ -14,3 +14,4 @@ class EnumEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of Enum.""" ENUM_VALUE1 = "EnumValue1" + """ENUM_VALUE1.""" diff --git a/packages/typespec-python/test/azure/generated/azure-resource-manager-resources/azure/resourcemanager/resources/models/_enums.py b/packages/typespec-python/test/azure/generated/azure-resource-manager-resources/azure/resourcemanager/resources/models/_enums.py index 9c49e6f3b7..81672497c8 100644 --- a/packages/typespec-python/test/azure/generated/azure-resource-manager-resources/azure/resourcemanager/resources/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/azure-resource-manager-resources/azure/resourcemanager/resources/models/_enums.py @@ -33,6 +33,10 @@ class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta): CANCELED = "Canceled" """Resource creation was canceled.""" PROVISIONING = "Provisioning" + """PROVISIONING.""" UPDATING = "Updating" + """UPDATING.""" DELETING = "Deleting" + """DELETING.""" ACCEPTED = "Accepted" + """ACCEPTED.""" diff --git a/packages/typespec-python/test/azure/generated/client-namespace/client/clientnamespace/second/sub/models/_enums.py b/packages/typespec-python/test/azure/generated/client-namespace/client/clientnamespace/second/sub/models/_enums.py index c2a45b1ecb..3031f9651f 100644 --- a/packages/typespec-python/test/azure/generated/client-namespace/client/clientnamespace/second/sub/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-namespace/client/clientnamespace/second/sub/models/_enums.py @@ -14,3 +14,4 @@ class SecondClientEnumType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of SecondClientEnumType.""" SECOND = "second" + """SECOND.""" diff --git a/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/firstnamespace/models/_enums.py b/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/firstnamespace/models/_enums.py index d98414d2ea..c3085f4b88 100644 --- a/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/firstnamespace/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/firstnamespace/models/_enums.py @@ -14,6 +14,6 @@ class Status(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Status enum in first namespace.""" ACTIVE = "active" - """Active status""" + """Active status.""" INACTIVE = "inactive" - """Inactive status""" + """Inactive status.""" diff --git a/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/secondnamespace/models/_enums.py b/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/secondnamespace/models/_enums.py index e33decedd7..931969e530 100644 --- a/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/secondnamespace/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-naming-enum-conflict/client/naming/enumconflict/secondnamespace/models/_enums.py @@ -14,6 +14,6 @@ class SecondStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Status enum in second namespace.""" RUNNING = "running" - """Running status""" + """Running status.""" STOPPED = "stopped" - """Stopped status""" + """Stopped status.""" diff --git a/packages/typespec-python/test/azure/generated/client-naming/client/naming/main/models/_enums.py b/packages/typespec-python/test/azure/generated/client-naming/client/naming/main/models/_enums.py index f9715a7ef7..c044283ff2 100644 --- a/packages/typespec-python/test/azure/generated/client-naming/client/naming/main/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-naming/client/naming/main/models/_enums.py @@ -14,10 +14,13 @@ class ClientExtensibleEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientExtensibleEnum.""" ENUM_VALUE1 = "value1" + """ENUM_VALUE1.""" class ExtensibleEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ExtensibleEnum.""" CLIENT_ENUM_VALUE1 = "value1" + """CLIENT_ENUM_VALUE1.""" CLIENT_ENUM_VALUE2 = "value2" + """CLIENT_ENUM_VALUE2.""" diff --git a/packages/typespec-python/test/azure/generated/client-structure-clientoperationgroup/client/structure/clientoperationgroup/models/_enums.py b/packages/typespec-python/test/azure/generated/client-structure-clientoperationgroup/client/structure/clientoperationgroup/models/_enums.py index 40cfd7a2cd..8b6a08d878 100644 --- a/packages/typespec-python/test/azure/generated/client-structure-clientoperationgroup/client/structure/clientoperationgroup/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-structure-clientoperationgroup/client/structure/clientoperationgroup/models/_enums.py @@ -14,7 +14,12 @@ class ClientType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientType.""" DEFAULT = "default" + """DEFAULT.""" MULTI_CLIENT = "multi-client" + """MULTI_CLIENT.""" RENAMED_OPERATION = "renamed-operation" + """RENAMED_OPERATION.""" TWO_OPERATION_GROUP = "two-operation-group" + """TWO_OPERATION_GROUP.""" CLIENT_OPERATION_GROUP = "client-operation-group" + """CLIENT_OPERATION_GROUP.""" diff --git a/packages/typespec-python/test/azure/generated/client-structure-default/client/structure/service/models/_enums.py b/packages/typespec-python/test/azure/generated/client-structure-default/client/structure/service/models/_enums.py index 40cfd7a2cd..8b6a08d878 100644 --- a/packages/typespec-python/test/azure/generated/client-structure-default/client/structure/service/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-structure-default/client/structure/service/models/_enums.py @@ -14,7 +14,12 @@ class ClientType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientType.""" DEFAULT = "default" + """DEFAULT.""" MULTI_CLIENT = "multi-client" + """MULTI_CLIENT.""" RENAMED_OPERATION = "renamed-operation" + """RENAMED_OPERATION.""" TWO_OPERATION_GROUP = "two-operation-group" + """TWO_OPERATION_GROUP.""" CLIENT_OPERATION_GROUP = "client-operation-group" + """CLIENT_OPERATION_GROUP.""" diff --git a/packages/typespec-python/test/azure/generated/client-structure-multiclient/client/structure/multiclient/models/_enums.py b/packages/typespec-python/test/azure/generated/client-structure-multiclient/client/structure/multiclient/models/_enums.py index 40cfd7a2cd..8b6a08d878 100644 --- a/packages/typespec-python/test/azure/generated/client-structure-multiclient/client/structure/multiclient/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-structure-multiclient/client/structure/multiclient/models/_enums.py @@ -14,7 +14,12 @@ class ClientType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientType.""" DEFAULT = "default" + """DEFAULT.""" MULTI_CLIENT = "multi-client" + """MULTI_CLIENT.""" RENAMED_OPERATION = "renamed-operation" + """RENAMED_OPERATION.""" TWO_OPERATION_GROUP = "two-operation-group" + """TWO_OPERATION_GROUP.""" CLIENT_OPERATION_GROUP = "client-operation-group" + """CLIENT_OPERATION_GROUP.""" diff --git a/packages/typespec-python/test/azure/generated/client-structure-renamedoperation/client/structure/renamedoperation/models/_enums.py b/packages/typespec-python/test/azure/generated/client-structure-renamedoperation/client/structure/renamedoperation/models/_enums.py index 40cfd7a2cd..8b6a08d878 100644 --- a/packages/typespec-python/test/azure/generated/client-structure-renamedoperation/client/structure/renamedoperation/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-structure-renamedoperation/client/structure/renamedoperation/models/_enums.py @@ -14,7 +14,12 @@ class ClientType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientType.""" DEFAULT = "default" + """DEFAULT.""" MULTI_CLIENT = "multi-client" + """MULTI_CLIENT.""" RENAMED_OPERATION = "renamed-operation" + """RENAMED_OPERATION.""" TWO_OPERATION_GROUP = "two-operation-group" + """TWO_OPERATION_GROUP.""" CLIENT_OPERATION_GROUP = "client-operation-group" + """CLIENT_OPERATION_GROUP.""" diff --git a/packages/typespec-python/test/azure/generated/client-structure-twooperationgroup/client/structure/twooperationgroup/models/_enums.py b/packages/typespec-python/test/azure/generated/client-structure-twooperationgroup/client/structure/twooperationgroup/models/_enums.py index 40cfd7a2cd..8b6a08d878 100644 --- a/packages/typespec-python/test/azure/generated/client-structure-twooperationgroup/client/structure/twooperationgroup/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/client-structure-twooperationgroup/client/structure/twooperationgroup/models/_enums.py @@ -14,7 +14,12 @@ class ClientType(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ClientType.""" DEFAULT = "default" + """DEFAULT.""" MULTI_CLIENT = "multi-client" + """MULTI_CLIENT.""" RENAMED_OPERATION = "renamed-operation" + """RENAMED_OPERATION.""" TWO_OPERATION_GROUP = "two-operation-group" + """TWO_OPERATION_GROUP.""" CLIENT_OPERATION_GROUP = "client-operation-group" + """CLIENT_OPERATION_GROUP.""" diff --git a/packages/typespec-python/test/azure/generated/encode-array/encode/array/models/_enums.py b/packages/typespec-python/test/azure/generated/encode-array/encode/array/models/_enums.py index 498e7cc1e1..fc527f9045 100644 --- a/packages/typespec-python/test/azure/generated/encode-array/encode/array/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/encode-array/encode/array/models/_enums.py @@ -14,13 +14,19 @@ class Colors(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of Colors.""" BLUE = "blue" + """BLUE.""" RED = "red" + """RED.""" GREEN = "green" + """GREEN.""" class ColorsExtensibleEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ColorsExtensibleEnum.""" BLUE = "blue" + """BLUE.""" RED = "red" + """RED.""" GREEN = "green" + """GREEN.""" diff --git a/packages/typespec-python/test/azure/generated/server-path-multiple/server/path/multiple/models/_enums.py b/packages/typespec-python/test/azure/generated/server-path-multiple/server/path/multiple/models/_enums.py index f7253648a1..cb2e861bd3 100644 --- a/packages/typespec-python/test/azure/generated/server-path-multiple/server/path/multiple/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/server-path-multiple/server/path/multiple/models/_enums.py @@ -14,4 +14,4 @@ class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Service versions.""" V1_0 = "v1.0" - """Version 1.0""" + """Version 1.0.""" diff --git a/packages/typespec-python/test/azure/generated/service-multi-service/service/multiservice/models/_enums.py b/packages/typespec-python/test/azure/generated/service-multi-service/service/multiservice/models/_enums.py index da729d08d7..5450500973 100644 --- a/packages/typespec-python/test/azure/generated/service-multi-service/service/multiservice/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/service-multi-service/service/multiservice/models/_enums.py @@ -14,11 +14,15 @@ class VersionsA(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of VersionsA.""" AV1 = "av1" + """AV1.""" AV2 = "av2" + """AV2.""" class VersionsB(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of VersionsB.""" BV1 = "bv1" + """BV1.""" BV2 = "bv2" + """BV2.""" diff --git a/packages/typespec-python/test/azure/generated/special-words/specialwords/models/_enums.py b/packages/typespec-python/test/azure/generated/special-words/specialwords/models/_enums.py index 4c172938be..469a122889 100644 --- a/packages/typespec-python/test/azure/generated/special-words/specialwords/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/special-words/specialwords/models/_enums.py @@ -14,35 +14,68 @@ class ExtensibleString(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Verify enum member names that are special words using extensible enum (union).""" AND = "and" + """AND.""" AS = "as" + """AS.""" ASSERT = "assert" + """ASSERT.""" ASYNC = "async" + """ASYNC.""" AWAIT = "await" + """AWAIT.""" BREAK = "break" + """BREAK.""" CLASS = "class" + """CLASS.""" CONSTRUCTOR = "constructor" + """CONSTRUCTOR.""" CONTINUE = "continue" + """CONTINUE.""" DEF = "def" + """DEF.""" DEL = "del" + """DEL.""" ELIF = "elif" + """ELIF.""" ELSE = "else" + """ELSE.""" EXCEPT = "except" + """EXCEPT.""" EXEC = "exec" + """EXEC.""" FINALLY = "finally" + """FINALLY.""" FOR = "for" + """FOR.""" FROM = "from" + """FROM.""" GLOBAL = "global" + """GLOBAL.""" IF = "if" + """IF.""" IMPORT = "import" + """IMPORT.""" IN = "in" + """IN.""" IS = "is" + """IS.""" LAMBDA = "lambda" + """LAMBDA.""" NOT = "not" + """NOT.""" OR = "or" + """OR.""" PASS = "pass" + """PASS.""" RAISE = "raise" + """RAISE.""" RETURN = "return" + """RETURN.""" TRY = "try" + """TRY.""" WHILE = "while" + """WHILE.""" WITH = "with" + """WITH.""" YIELD = "yield" + """YIELD.""" diff --git a/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py b/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py index 3f7f45a458..c44c124878 100644 --- a/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py @@ -14,11 +14,11 @@ class DogKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): """extensible enum type for discriminator.""" GOLDEN = "golden" - """Species golden""" + """Species golden.""" class SnakeKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): """fixed enum type for discriminator.""" COBRA = "cobra" - """Species cobra""" + """Species cobra.""" diff --git a/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py b/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py index d7b044452d..d247943145 100644 --- a/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py +++ b/packages/typespec-python/test/azure/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py @@ -56,12 +56,12 @@ class Cobra(Snake, discriminator="cobra"): :ivar length: Length of the snake. Required. :vartype length: int - :ivar kind: discriminator property. Required. Species cobra + :ivar kind: discriminator property. Required. Species cobra. :vartype kind: str or ~typetest.model.enumdiscriminator.models.COBRA """ kind: Literal[SnakeKind.COBRA] = rest_discriminator(name="kind", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """discriminator property. Required. Species cobra""" + """discriminator property. Required. Species cobra.""" @overload def __init__( @@ -124,12 +124,12 @@ class Golden(Dog, discriminator="golden"): :ivar weight: Weight of the dog. Required. :vartype weight: int - :ivar kind: discriminator property. Required. Species golden + :ivar kind: discriminator property. Required. Species golden. :vartype kind: str or ~typetest.model.enumdiscriminator.models.GOLDEN """ kind: Literal[DogKind.GOLDEN] = rest_discriminator(name="kind", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """discriminator property. Required. Species golden""" + """discriminator property. Required. Species golden.""" @overload def __init__( diff --git a/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py b/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py index e1ffa2bf06..ea77e2f072 100644 --- a/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py @@ -14,6 +14,7 @@ class ExtendedEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ExtendedEnum.""" ENUM_VALUE2 = "value2" + """ENUM_VALUE2.""" class FixedInnerEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py b/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py index fab3d9a107..e54903056f 100644 --- a/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py +++ b/packages/typespec-python/test/azure/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py @@ -566,12 +566,12 @@ class UnionEnumValueProperty(_Model): """Template type for testing models with specific properties. Pass in the type of the property you are looking for. - :ivar property: Property. Required. + :ivar property: Property. Required. ENUM_VALUE2. :vartype property: str or ~typetest.property.valuetypes.models.ENUM_VALUE2 """ property: Literal[ExtendedEnum.ENUM_VALUE2] = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """Property. Required.""" + """Property. Required. ENUM_VALUE2.""" @overload def __init__( diff --git a/packages/typespec-python/test/azure/generated/typetest-union/typetest/union/models/_enums.py b/packages/typespec-python/test/azure/generated/typetest-union/typetest/union/models/_enums.py index 8057e6b79b..a41d1bddd2 100644 --- a/packages/typespec-python/test/azure/generated/typetest-union/typetest/union/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/typetest-union/typetest/union/models/_enums.py @@ -14,4 +14,6 @@ class StringExtensibleNamedUnion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of StringExtensibleNamedUnion.""" OPTION_B = "b" + """OPTION_B.""" C = "c" + """C.""" diff --git a/packages/typespec-python/test/azure/generated/versioning-added/versioning/added/models/_enums.py b/packages/typespec-python/test/azure/generated/versioning-added/versioning/added/models/_enums.py index 37ca39cb54..b388ae0053 100644 --- a/packages/typespec-python/test/azure/generated/versioning-added/versioning/added/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/versioning-added/versioning/added/models/_enums.py @@ -14,13 +14,16 @@ class EnumV1(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV1.""" ENUM_MEMBER_V1 = "enumMemberV1" + """ENUM_MEMBER_V1.""" ENUM_MEMBER_V2 = "enumMemberV2" + """ENUM_MEMBER_V2.""" class EnumV2(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV2.""" ENUM_MEMBER = "enumMember" + """ENUM_MEMBER.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/azure/generated/versioning-removed/versioning/removed/models/_enums.py b/packages/typespec-python/test/azure/generated/versioning-removed/versioning/removed/models/_enums.py index ab82167271..1088ce0651 100644 --- a/packages/typespec-python/test/azure/generated/versioning-removed/versioning/removed/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/versioning-removed/versioning/removed/models/_enums.py @@ -14,13 +14,16 @@ class EnumV2(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV2.""" ENUM_MEMBER_V2 = "enumMemberV2" + """ENUM_MEMBER_V2.""" class EnumV3(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV3.""" ENUM_MEMBER_V1 = "enumMemberV1" + """ENUM_MEMBER_V1.""" ENUM_MEMBER_V2_PREVIEW = "enumMemberV2Preview" + """ENUM_MEMBER_V2_PREVIEW.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/azure/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py b/packages/typespec-python/test/azure/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py index 7b36162656..25bfd527fa 100644 --- a/packages/typespec-python/test/azure/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py +++ b/packages/typespec-python/test/azure/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py @@ -14,6 +14,7 @@ class NewEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of NewEnum.""" NEW_ENUM_MEMBER = "newEnumMember" + """NEW_ENUM_MEMBER.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/unbranded/generated/encode-array/encode/array/models/_enums.py b/packages/typespec-python/test/unbranded/generated/encode-array/encode/array/models/_enums.py index c8069e8efd..4fc60b5440 100644 --- a/packages/typespec-python/test/unbranded/generated/encode-array/encode/array/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/encode-array/encode/array/models/_enums.py @@ -8,13 +8,19 @@ class Colors(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of Colors.""" BLUE = "blue" + """BLUE.""" RED = "red" + """RED.""" GREEN = "green" + """GREEN.""" class ColorsExtensibleEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ColorsExtensibleEnum.""" BLUE = "blue" + """BLUE.""" RED = "red" + """RED.""" GREEN = "green" + """GREEN.""" diff --git a/packages/typespec-python/test/unbranded/generated/server-path-multiple/server/path/multiple/models/_enums.py b/packages/typespec-python/test/unbranded/generated/server-path-multiple/server/path/multiple/models/_enums.py index e83e706dd2..e55d702391 100644 --- a/packages/typespec-python/test/unbranded/generated/server-path-multiple/server/path/multiple/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/server-path-multiple/server/path/multiple/models/_enums.py @@ -8,4 +8,4 @@ class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Service versions.""" V1_0 = "v1.0" - """Version 1.0""" + """Version 1.0.""" diff --git a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_enums.py b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_enums.py index 08648b74c4..8d37501567 100644 --- a/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/special-words/specialwords/extensiblestrings/models/_enums.py @@ -8,35 +8,68 @@ class ExtensibleString(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Verify enum member names that are special words using extensible enum (union).""" AND = "and" + """AND.""" AS = "as" + """AS.""" ASSERT = "assert" + """ASSERT.""" ASYNC = "async" + """ASYNC.""" AWAIT = "await" + """AWAIT.""" BREAK = "break" + """BREAK.""" CLASS = "class" + """CLASS.""" CONSTRUCTOR = "constructor" + """CONSTRUCTOR.""" CONTINUE = "continue" + """CONTINUE.""" DEF = "def" + """DEF.""" DEL = "del" + """DEL.""" ELIF = "elif" + """ELIF.""" ELSE = "else" + """ELSE.""" EXCEPT = "except" + """EXCEPT.""" EXEC = "exec" + """EXEC.""" FINALLY = "finally" + """FINALLY.""" FOR = "for" + """FOR.""" FROM = "from" + """FROM.""" GLOBAL = "global" + """GLOBAL.""" IF = "if" + """IF.""" IMPORT = "import" + """IMPORT.""" IN = "in" + """IN.""" IS = "is" + """IS.""" LAMBDA = "lambda" + """LAMBDA.""" NOT = "not" + """NOT.""" OR = "or" + """OR.""" PASS = "pass" + """PASS.""" RAISE = "raise" + """RAISE.""" RETURN = "return" + """RETURN.""" TRY = "try" + """TRY.""" WHILE = "while" + """WHILE.""" WITH = "with" + """WITH.""" YIELD = "yield" + """YIELD.""" diff --git a/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py b/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py index a10962eaa3..4f24f13e95 100644 --- a/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_enums.py @@ -8,11 +8,11 @@ class DogKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): """extensible enum type for discriminator.""" GOLDEN = "golden" - """Species golden""" + """Species golden.""" class SnakeKind(str, Enum, metaclass=CaseInsensitiveEnumMeta): """fixed enum type for discriminator.""" COBRA = "cobra" - """Species cobra""" + """Species cobra.""" diff --git a/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py b/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py index 0598043777..b7530a23b2 100644 --- a/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py +++ b/packages/typespec-python/test/unbranded/generated/typetest-model-enumdiscriminator/typetest/model/enumdiscriminator/models/_models.py @@ -50,12 +50,12 @@ class Cobra(Snake, discriminator="cobra"): :ivar length: Length of the snake. Required. :vartype length: int - :ivar kind: discriminator property. Required. Species cobra + :ivar kind: discriminator property. Required. Species cobra. :vartype kind: str or ~typetest.model.enumdiscriminator.models.COBRA """ kind: Literal[SnakeKind.COBRA] = rest_discriminator(name="kind", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """discriminator property. Required. Species cobra""" + """discriminator property. Required. Species cobra.""" @overload def __init__( @@ -118,12 +118,12 @@ class Golden(Dog, discriminator="golden"): :ivar weight: Weight of the dog. Required. :vartype weight: int - :ivar kind: discriminator property. Required. Species golden + :ivar kind: discriminator property. Required. Species golden. :vartype kind: str or ~typetest.model.enumdiscriminator.models.GOLDEN """ kind: Literal[DogKind.GOLDEN] = rest_discriminator(name="kind", visibility=["read", "create", "update", "delete", "query"]) # type: ignore - """discriminator property. Required. Species golden""" + """discriminator property. Required. Species golden.""" @overload def __init__( diff --git a/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py b/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py index 00b44bfd5e..78f4c5e35e 100644 --- a/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_enums.py @@ -8,6 +8,7 @@ class ExtendedEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of ExtendedEnum.""" ENUM_VALUE2 = "value2" + """ENUM_VALUE2.""" class FixedInnerEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py b/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py index fa7afac8b7..1d8cf30182 100644 --- a/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py +++ b/packages/typespec-python/test/unbranded/generated/typetest-property-valuetypes/typetest/property/valuetypes/models/_models.py @@ -560,12 +560,12 @@ class UnionEnumValueProperty(_Model): """Template type for testing models with specific properties. Pass in the type of the property you are looking for. - :ivar property: Property. Required. + :ivar property: Property. Required. ENUM_VALUE2. :vartype property: str or ~typetest.property.valuetypes.models.ENUM_VALUE2 """ property: Literal[ExtendedEnum.ENUM_VALUE2] = rest_field(visibility=["read", "create", "update", "delete", "query"]) - """Property. Required.""" + """Property. Required. ENUM_VALUE2.""" @overload def __init__( diff --git a/packages/typespec-python/test/unbranded/generated/typetest-union/typetest/union/models/_enums.py b/packages/typespec-python/test/unbranded/generated/typetest-union/typetest/union/models/_enums.py index b682482ab4..9a08c83e35 100644 --- a/packages/typespec-python/test/unbranded/generated/typetest-union/typetest/union/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/typetest-union/typetest/union/models/_enums.py @@ -8,4 +8,6 @@ class StringExtensibleNamedUnion(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of StringExtensibleNamedUnion.""" OPTION_B = "b" + """OPTION_B.""" C = "c" + """C.""" diff --git a/packages/typespec-python/test/unbranded/generated/versioning-added/versioning/added/models/_enums.py b/packages/typespec-python/test/unbranded/generated/versioning-added/versioning/added/models/_enums.py index aa44b9b785..21ac016333 100644 --- a/packages/typespec-python/test/unbranded/generated/versioning-added/versioning/added/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/versioning-added/versioning/added/models/_enums.py @@ -8,13 +8,16 @@ class EnumV1(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV1.""" ENUM_MEMBER_V1 = "enumMemberV1" + """ENUM_MEMBER_V1.""" ENUM_MEMBER_V2 = "enumMemberV2" + """ENUM_MEMBER_V2.""" class EnumV2(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV2.""" ENUM_MEMBER = "enumMember" + """ENUM_MEMBER.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/unbranded/generated/versioning-removed/versioning/removed/models/_enums.py b/packages/typespec-python/test/unbranded/generated/versioning-removed/versioning/removed/models/_enums.py index faf1ac864a..d4488e8617 100644 --- a/packages/typespec-python/test/unbranded/generated/versioning-removed/versioning/removed/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/versioning-removed/versioning/removed/models/_enums.py @@ -8,13 +8,16 @@ class EnumV2(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV2.""" ENUM_MEMBER_V2 = "enumMemberV2" + """ENUM_MEMBER_V2.""" class EnumV3(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of EnumV3.""" ENUM_MEMBER_V1 = "enumMemberV1" + """ENUM_MEMBER_V1.""" ENUM_MEMBER_V2_PREVIEW = "enumMemberV2Preview" + """ENUM_MEMBER_V2_PREVIEW.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): diff --git a/packages/typespec-python/test/unbranded/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py b/packages/typespec-python/test/unbranded/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py index d15939065b..cf3e06d87e 100644 --- a/packages/typespec-python/test/unbranded/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py +++ b/packages/typespec-python/test/unbranded/generated/versioning-renamedfrom/versioning/renamedfrom/models/_enums.py @@ -8,6 +8,7 @@ class NewEnum(str, Enum, metaclass=CaseInsensitiveEnumMeta): """Type of NewEnum.""" NEW_ENUM_MEMBER = "newEnumMember" + """NEW_ENUM_MEMBER.""" class Versions(str, Enum, metaclass=CaseInsensitiveEnumMeta): From 4a95c46eb3dc90637ea9138c67895d081547d2b1 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Thu, 12 Mar 2026 17:58:49 +0800 Subject: [PATCH 9/9] bump version --- ...atten-read-only-model-tests-2026-3-6-8-0-10.md | 8 -------- ...auth-union-python-tests-2026-03-06-02-30-00.md | 8 -------- ...ml-deserialization-test-2026-03-04-05-46-13.md | 7 ------- ...-enumeration-results-test-2026-2-23-22-33-2.md | 8 -------- ...hon-diff-upstream-skill-2026-02-26-14-34-52.md | 8 -------- ...on-remove-includeRootSlash-2026-3-9-2-53-15.md | 8 -------- ...python-removeEnumPadding-2026-1-27-12-23-22.md | 8 -------- packages/autorest.python/CHANGELOG.md | 12 ++++++++++++ packages/autorest.python/package.json | 6 +++--- packages/typespec-python/CHANGELOG.md | 12 ++++++++++++ packages/typespec-python/package.json | 6 +++--- pnpm-lock.yaml | 15 +++++++-------- 12 files changed, 37 insertions(+), 69 deletions(-) delete mode 100644 .chronus/changes/add-flatten-read-only-model-tests-2026-3-6-8-0-10.md delete mode 100644 .chronus/changes/add-noauth-union-python-tests-2026-03-06-02-30-00.md delete mode 100644 .chronus/changes/copilot-add-xml-deserialization-test-2026-03-04-05-46-13.md delete mode 100644 .chronus/changes/http-client-python-xml-enumeration-results-test-2026-2-23-22-33-2.md delete mode 100644 .chronus/changes/python-diff-upstream-skill-2026-02-26-14-34-52.md delete mode 100644 .chronus/changes/python-remove-includeRootSlash-2026-3-9-2-53-15.md delete mode 100644 .chronus/changes/python-removeEnumPadding-2026-1-27-12-23-22.md diff --git a/.chronus/changes/add-flatten-read-only-model-tests-2026-3-6-8-0-10.md b/.chronus/changes/add-flatten-read-only-model-tests-2026-3-6-8-0-10.md deleted file mode 100644 index 398aba3b15..0000000000 --- a/.chronus/changes/add-flatten-read-only-model-tests-2026-3-6-8-0-10.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -changeKind: internal -packages: - - "@autorest/python" - - "@azure-tools/typespec-python" ---- - -Add test cases for flatten property with read-only properties (putFlattenReadOnlyModel and putFlattenUnknownModel scenarios). diff --git a/.chronus/changes/add-noauth-union-python-tests-2026-03-06-02-30-00.md b/.chronus/changes/add-noauth-union-python-tests-2026-03-06-02-30-00.md deleted file mode 100644 index e01637492c..0000000000 --- a/.chronus/changes/add-noauth-union-python-tests-2026-03-06-02-30-00.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -changeKind: internal -packages: - - "@autorest/python" - - "@azure-tools/typespec-python" ---- - -Add mock API tests for authentication/noauth/union Spector case (sync + async). diff --git a/.chronus/changes/copilot-add-xml-deserialization-test-2026-03-04-05-46-13.md b/.chronus/changes/copilot-add-xml-deserialization-test-2026-03-04-05-46-13.md deleted file mode 100644 index 37af6e0c2b..0000000000 --- a/.chronus/changes/copilot-add-xml-deserialization-test-2026-03-04-05-46-13.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -changeKind: fix -packages: - - "@autorest/python" - - "@azure-tools/typespec-python" ---- -Return empty list instead of None for non-optional unwrapped XML list fields during deserialization diff --git a/.chronus/changes/http-client-python-xml-enumeration-results-test-2026-2-23-22-33-2.md b/.chronus/changes/http-client-python-xml-enumeration-results-test-2026-2-23-22-33-2.md deleted file mode 100644 index 96d3569cd8..0000000000 --- a/.chronus/changes/http-client-python-xml-enumeration-results-test-2026-2-23-22-33-2.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -changeKind: internal -packages: - - "@autorest/python" - - "@azure-tools/typespec-python" ---- - -Add unit test for deserializing Azure Blob Storage EnumerationResults XML payload with attributes, empty list element, and empty string element. diff --git a/.chronus/changes/python-diff-upstream-skill-2026-02-26-14-34-52.md b/.chronus/changes/python-diff-upstream-skill-2026-02-26-14-34-52.md deleted file mode 100644 index 60b253a463..0000000000 --- a/.chronus/changes/python-diff-upstream-skill-2026-02-26-14-34-52.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -changeKind: internal -packages: - - "@autorest/python" - - "@azure-tools/typespec-python" ---- - -Add diff-upstream skill for comparing generated code against autorest.python baseline diff --git a/.chronus/changes/python-remove-includeRootSlash-2026-3-9-2-53-15.md b/.chronus/changes/python-remove-includeRootSlash-2026-3-9-2-53-15.md deleted file mode 100644 index 4066f4e877..0000000000 --- a/.chronus/changes/python-remove-includeRootSlash-2026-3-9-2-53-15.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -changeKind: fix -packages: - - "@autorest/python" - - "@azure-tools/typespec-python" ---- - -Remove includeRootSlash client option logic, which should be handled at the TypeSpec core level diff --git a/.chronus/changes/python-removeEnumPadding-2026-1-27-12-23-22.md b/.chronus/changes/python-removeEnumPadding-2026-1-27-12-23-22.md deleted file mode 100644 index 0405e59db2..0000000000 --- a/.chronus/changes/python-removeEnumPadding-2026-1-27-12-23-22.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -changeKind: feature -packages: - - "@autorest/python" - - "@azure-tools/typespec-python" ---- - -Remove enum value padding because we generate our enum value names with upper case so there is no need diff --git a/packages/autorest.python/CHANGELOG.md b/packages/autorest.python/CHANGELOG.md index 4a03b084df..23387b0601 100644 --- a/packages/autorest.python/CHANGELOG.md +++ b/packages/autorest.python/CHANGELOG.md @@ -1,5 +1,17 @@ # Release +## 6.50.0 + +### Features + +- [#3368](https://github.com/Azure/autorest.python/pull/3368) Remove enum value padding because we generate our enum value names with upper case so there is no need + +### Bug Fixes + +- [#3368](https://github.com/Azure/autorest.python/pull/3368) Return empty list instead of None for non-optional unwrapped XML list fields during deserialization +- [#3373](https://github.com/Azure/autorest.python/pull/3373) Remove includeRootSlash client option logic, which should be handled at the TypeSpec core level + + ## 6.49.2 ### Bug Fixes diff --git a/packages/autorest.python/package.json b/packages/autorest.python/package.json index dc1a93076b..75683caf49 100644 --- a/packages/autorest.python/package.json +++ b/packages/autorest.python/package.json @@ -1,6 +1,6 @@ { "name": "@autorest/python", - "version": "6.49.2", + "version": "6.50.0", "description": "The Python extension for generators in AutoRest.", "scripts": { "start": "node ./scripts/run-python3.js ./scripts/start.py", @@ -29,7 +29,7 @@ }, "homepage": "https://github.com/Azure/autorest.python/blob/main/README.md", "dependencies": { - "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", + "@typespec/http-client-python": "~0.28.0", "@autorest/system-requirements": "~1.0.2", "fs-extra": "~11.2.0", "tsx": "^4.21.0" @@ -47,4 +47,4 @@ "requirements.txt", "generator/" ] -} \ No newline at end of file +} diff --git a/packages/typespec-python/CHANGELOG.md b/packages/typespec-python/CHANGELOG.md index de52c5ff6b..1078695a07 100644 --- a/packages/typespec-python/CHANGELOG.md +++ b/packages/typespec-python/CHANGELOG.md @@ -1,5 +1,17 @@ # Release +## 0.61.0 + +### Features + +- [#3368](https://github.com/Azure/autorest.python/pull/3368) Remove enum value padding because we generate our enum value names with upper case so there is no need + +### Bug Fixes + +- [#3368](https://github.com/Azure/autorest.python/pull/3368) Return empty list instead of None for non-optional unwrapped XML list fields during deserialization +- [#3373](https://github.com/Azure/autorest.python/pull/3373) Remove includeRootSlash client option logic, which should be handled at the TypeSpec core level + + ## 0.60.2 ### Bug Fixes diff --git a/packages/typespec-python/package.json b/packages/typespec-python/package.json index 28990dbc35..fd05e785dc 100644 --- a/packages/typespec-python/package.json +++ b/packages/typespec-python/package.json @@ -1,6 +1,6 @@ { "name": "@azure-tools/typespec-python", - "version": "0.60.2", + "version": "0.61.0", "author": "Microsoft Corporation", "description": "TypeSpec emitter for Python SDKs", "homepage": "https://github.com/Azure/autorest.python", @@ -67,7 +67,7 @@ "js-yaml": "~4.1.0", "semver": "~7.6.2", "tsx": "^4.21.0", - "@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz", + "@typespec/http-client-python": "~0.28.0", "fs-extra": "~11.2.0" }, "devDependencies": { @@ -103,4 +103,4 @@ "chalk": "5.3.0", "@types/fs-extra": "11.0.4" } -} \ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a06adaeadb..f9c54b3dea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -60,8 +60,8 @@ importers: specifier: ~1.0.2 version: 1.0.2 '@typespec/http-client-python': - specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz - version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4) + specifier: ~0.28.0 + version: 0.28.0(cwqsfn7fm5tkg3lp77e4anpqz4) fs-extra: specifier: ~11.2.0 version: 11.2.0 @@ -82,8 +82,8 @@ importers: packages/typespec-python: dependencies: '@typespec/http-client-python': - specifier: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz - version: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4) + specifier: ~0.28.0 + version: 0.28.0(cwqsfn7fm5tkg3lp77e4anpqz4) fs-extra: specifier: ~11.2.0 version: 11.2.0 @@ -1721,9 +1721,8 @@ packages: peerDependencies: '@typespec/compiler': ^1.10.0 - '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz': - resolution: {tarball: https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz} - version: 0.28.0 + '@typespec/http-client-python@0.28.0': + resolution: {integrity: sha512-dYjFDepbAom/QfdZ0uT9sYiMRt2oDJH+vCbVstMNBHb4XpkdqBl5xrXTGZp6aqrOLt7BvpsDirgyEbK83O5GcQ==} engines: {node: '>=20.0.0'} peerDependencies: '@azure-tools/typespec-autorest': '>=0.66.0 <1.0.0' @@ -6699,7 +6698,7 @@ snapshots: dependencies: '@typespec/compiler': 1.10.0(@types/node@25.0.10) - '@typespec/http-client-python@https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTk5ODEzNC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.28.0.tgz(cwqsfn7fm5tkg3lp77e4anpqz4)': + '@typespec/http-client-python@0.28.0(cwqsfn7fm5tkg3lp77e4anpqz4)': dependencies: '@azure-tools/typespec-autorest': 0.66.0(3lynfktgeabz5vvk7tfr76nhnu) '@azure-tools/typespec-azure-core': 0.66.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))))(@typespec/rest@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/http@1.10.0(@typespec/compiler@1.10.0(@types/node@25.0.10))(@typespec/streams@0.80.0(@typespec/compiler@1.10.0(@types/node@25.0.10)))))