Skip to content

Commit fcc5326

Browse files
authored
[python] support multi-service scenario (#3291)
* add test case * Update dependencies * Add changelog * Update dependencies (2025-12-23 08:48:51) * Regenerate for typespec-python (2025-12-23 08:54:12) * update * update * Update dependencies * Add changelog * Update dependencies (2025-12-24 03:04:08) * Regenerate for typespec-python (2025-12-24 03:09:36) * Update dependencies * Update dependencies (2025-12-24 09:01:58) --------- Co-authored-by: AutoPrFromHttpClientPython <AutoPrFromHttpClientPython>
1 parent 2cf8c74 commit fcc5326

File tree

87 files changed

+11408
-32
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+11408
-32
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
changeKind: fix
3+
packages:
4+
- "@autorest/python"
5+
- "@azure-tools/typespec-python"
6+
---
7+
8+
Fix import error about apiversion validation for nested operation groups
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
changeKind: fix
3+
packages:
4+
- "@autorest/python"
5+
- "@azure-tools/typespec-python"
6+
---
7+
8+
Fix syntax error when model property is named "list" by using type alias to avoid naming conflicts
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
# Change versionKind to one of: internal, fix, dependencies, feature, deprecation, breaking
3+
changeKind: feature
4+
packages:
5+
- "@autorest/python"
6+
- "@azure-tools/typespec-python"
7+
---
8+
9+
Support multi-service scenario.

packages/autorest.python/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
},
3030
"homepage": "https://github.com/Azure/autorest.python/blob/main/README.md",
3131
"dependencies": {
32-
"@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTY5MjMzOC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.23.1.tgz",
32+
"@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTcwMDIzNS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.23.1.tgz",
3333
"@autorest/system-requirements": "~1.0.2",
3434
"fs-extra": "~11.2.0",
3535
"tsx": "~4.19.1"

packages/typespec-python/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,13 @@
6161
"@azure-tools/typespec-azure-resource-manager": ">=0.63.0 <1.0.0",
6262
"@azure-tools/typespec-autorest": ">=0.63.0 <1.0.0",
6363
"@azure-tools/typespec-azure-rulesets": ">=0.63.0 <1.0.0",
64-
"@azure-tools/typespec-client-generator-core": ">=0.63.0 <1.0.0"
64+
"@azure-tools/typespec-client-generator-core": ">=0.63.1 <1.0.0"
6565
},
6666
"dependencies": {
6767
"js-yaml": "~4.1.0",
6868
"semver": "~7.6.2",
6969
"tsx": "~4.19.1",
70-
"@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTY5MjMzOC9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.23.1.tgz",
70+
"@typespec/http-client-python": "https://artprodcus3.artifacts.visualstudio.com/A0fb41ef4-5012-48a9-bf39-4ee3de03ee35/29ec6040-b234-4e31-b139-33dc4287b756/_apis/artifact/cGlwZWxpbmVhcnRpZmFjdDovL2F6dXJlLXNkay9wcm9qZWN0SWQvMjllYzYwNDAtYjIzNC00ZTMxLWIxMzktMzNkYzQyODdiNzU2L2J1aWxkSWQvNTcwMDIzNS9hcnRpZmFjdE5hbWUvYnVpbGRfYXJ0aWZhY3RzX3B5dGhvbg2/content?format=file&subPath=%2Fpackages%2Ftypespec-http-client-python-0.23.1.tgz",
7171
"fs-extra": "~11.2.0"
7272
},
7373
"devDependencies": {
@@ -85,8 +85,8 @@
8585
"@azure-tools/typespec-azure-core": "~0.63.0",
8686
"@azure-tools/typespec-azure-rulesets": "~0.63.0",
8787
"@azure-tools/typespec-autorest": "~0.63.0",
88-
"@azure-tools/typespec-client-generator-core": "~0.63.0",
89-
"@azure-tools/azure-http-specs": "0.1.0-alpha.34-dev.7",
88+
"@azure-tools/typespec-client-generator-core": "~0.63.1",
89+
"@azure-tools/azure-http-specs": "0.1.0-alpha.35-dev.8",
9090
"@typespec/http-specs": "0.1.0-alpha.30-dev.1",
9191
"@typespec/spector": "0.1.0-alpha.21",
9292
"@typespec/spec-api": "0.1.0-alpha.11",

packages/typespec-python/scripts/eng/regenerate.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ const AZURE_EMITTER_OPTIONS: Record<string, Record<string, string> | Record<stri
131131
"special-words": {
132132
namespace: "specialwords",
133133
},
134+
"service/multi-service": {
135+
namespace: "service.multiservice",
136+
},
134137
};
135138

136139
const EMITTER_OPTIONS: Record<string, Record<string, string> | Record<string, string>[]> = {
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Release History
2+
3+
## 1.0.0b1 (1970-01-01)
4+
5+
### Other Changes
6+
7+
- Initial version
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Copyright (c) Microsoft Corporation.
2+
3+
MIT License
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
include *.md
2+
include LICENSE
3+
include azure/resourcemanager/multiservice/combined/py.typed
4+
recursive-include tests *.py
5+
recursive-include samples *.py *.md
6+
include azure/__init__.py
7+
include azure/resourcemanager/__init__.py
8+
include azure/resourcemanager/multiservice/__init__.py
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# Combined Management client library for Python
2+
<!-- write necessary description of service -->
3+
4+
## Getting started
5+
6+
### Install the package
7+
8+
```bash
9+
python -m pip install azure-resourcemanager-multiservice-combined
10+
```
11+
12+
#### Prequisites
13+
14+
- Python 3.9 or later is required to use this package.
15+
- You need an [Azure subscription][azure_sub] to use this package.
16+
- An existing Combined Management instance.
17+
18+
#### Create with an Azure Active Directory Credential
19+
To use an [Azure Active Directory (AAD) token credential][authenticate_with_token],
20+
provide an instance of the desired credential type obtained from the
21+
[azure-identity][azure_identity_credentials] library.
22+
23+
To authenticate with AAD, you must first [pip][pip] install [`azure-identity`][azure_identity_pip]
24+
25+
After setup, you can choose which type of [credential][azure_identity_credentials] from azure.identity to use.
26+
As an example, [DefaultAzureCredential][default_azure_credential] can be used to authenticate the client:
27+
28+
Set the values of the client ID, tenant ID, and client secret of the AAD application as environment variables:
29+
`AZURE_CLIENT_ID`, `AZURE_TENANT_ID`, `AZURE_CLIENT_SECRET`
30+
31+
Use the returned token credential to authenticate the client:
32+
33+
```python
34+
>>> from azure.resourcemanager.multiservice.combined import Combined
35+
>>> from azure.identity import DefaultAzureCredential
36+
>>> client = Combined(endpoint='<endpoint>', credential=DefaultAzureCredential())
37+
```
38+
39+
## Examples
40+
41+
```python
42+
>>> from azure.resourcemanager.multiservice.combined import Combined
43+
>>> from azure.identity import DefaultAzureCredential
44+
>>> from azure.core.exceptions import HttpResponseError
45+
46+
>>> client = Combined(endpoint='<endpoint>', credential=DefaultAzureCredential())
47+
>>> try:
48+
<!-- write test code here -->
49+
except HttpResponseError as e:
50+
print('service responds error: {}'.format(e.response.json()))
51+
52+
```
53+
54+
## Contributing
55+
56+
This project welcomes contributions and suggestions. Most contributions require
57+
you to agree to a Contributor License Agreement (CLA) declaring that you have
58+
the right to, and actually do, grant us the rights to use your contribution.
59+
For details, visit https://cla.microsoft.com.
60+
61+
When you submit a pull request, a CLA-bot will automatically determine whether
62+
you need to provide a CLA and decorate the PR appropriately (e.g., label,
63+
comment). Simply follow the instructions provided by the bot. You will only
64+
need to do this once across all repos using our CLA.
65+
66+
This project has adopted the
67+
[Microsoft Open Source Code of Conduct][code_of_conduct]. For more information,
68+
see the Code of Conduct FAQ or contact opencode@microsoft.com with any
69+
additional questions or comments.
70+
71+
<!-- LINKS -->
72+
[code_of_conduct]: https://opensource.microsoft.com/codeofconduct/
73+
[authenticate_with_token]: https://docs.microsoft.com/azure/cognitive-services/authentication?tabs=powershell#authenticate-with-an-authentication-token
74+
[azure_identity_credentials]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credentials
75+
[azure_identity_pip]: https://pypi.org/project/azure-identity/
76+
[default_azure_credential]: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#defaultazurecredential
77+
[pip]: https://pypi.org/project/pip/
78+
[azure_sub]: https://azure.microsoft.com/free/

0 commit comments

Comments
 (0)