Skip to content

Commit f4a0fb0

Browse files
authored
Use Latest autorest + DT (#41998)
* Use Latest autorest + DT * Use Latest autorest + DT * update version * update assets.json * update core version * fix test error * fix py error * fix py error * fix py error * fix pylint error * fix pylint error * fix pylint error * fix pylint error * fix pylint error * fix pylint error * fix pylint error * fix pylint error * fix mypy error * fix mypy error * fix mypy error
1 parent ff8ab23 commit f4a0fb0

Some content is hidden

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

61 files changed

+9340
-4574
lines changed

sdk/digitaltwins/azure-digitaltwins-core/CHANGELOG.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
# Release History
22

3-
## 1.2.1 (Unreleased)
3+
## 1.3.0 (Unreleased)
44

55
### Features Added
66

7-
### Breaking Changes
8-
7+
@@ -9,6 +9,9 @@
98
### Bugs Fixed
109

1110
### Other Changes
11+
- Migrated from AutoRest v2 to AutoRest v3 for code generation, improving code quality and maintainability.
12+
- Updated service API version to use API version 2023-10-31 by default.
13+
- Updated internal implementation while maintaining API compatibility.
14+
- Improved type annotations throughout the library.
1215

1316
## 1.2.0 (2022-05-31)
1417
- GA release

sdk/digitaltwins/azure-digitaltwins-core/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@ from azure.digitaltwins.core import DigitalTwinsClient
5252

5353
# - AZURE_URL: The URL to the ADT in Azure
5454
url = os.getenv("AZURE_URL")
55-
55+
if url is None:
56+
raise ValueError("AZURE_URL environment variable is not set")
5657
# DefaultAzureCredential expects the following three environment variables:
5758
# - AZURE_TENANT_ID: The tenant ID in Azure Active Directory
5859
# - AZURE_CLIENT_ID: The application (client) ID registered in the AAD tenant

sdk/digitaltwins/azure-digitaltwins-core/assets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
"AssetsRepo": "Azure/azure-sdk-assets",
33
"AssetsRepoPrefixPath": "python",
44
"TagPrefix": "python/digitaltwins/azure-digitaltwins-core",
5-
"Tag": "python/digitaltwins/azure-digitaltwins-core_c57b95066b"
5+
"Tag": "python/digitaltwins/azure-digitaltwins-core_4136cfa681"
66
}

sdk/digitaltwins/azure-digitaltwins-core/azure/digitaltwins/core/_digitaltwins_client.py

Lines changed: 125 additions & 92 deletions
Large diffs are not rendered by default.

sdk/digitaltwins/azure-digitaltwins-core/azure/digitaltwins/core/_generated/__init__.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,25 @@
55
# Code generated by Microsoft (R) AutoRest Code Generator.
66
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
77
# --------------------------------------------------------------------------
8+
# pylint: disable=wrong-import-position
89

9-
from ._azure_digital_twins_api import AzureDigitalTwinsAPI
10-
from ._version import VERSION
10+
from typing import TYPE_CHECKING
1111

12-
__version__ = VERSION
13-
__all__ = ['AzureDigitalTwinsAPI']
12+
if TYPE_CHECKING:
13+
from ._patch import * # pylint: disable=unused-wildcard-import
1414

15-
# `._patch.py` is used for handwritten extensions to the generated code
16-
# Example: https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/customize_code/how-to-patch-sdk-code.md
17-
from ._patch import patch_sdk
18-
patch_sdk()
15+
from ._azure_digital_twins_api import AzureDigitalTwinsAPI # type: ignore
16+
17+
try:
18+
from ._patch import __all__ as _patch_all
19+
from ._patch import *
20+
except ImportError:
21+
_patch_all = []
22+
from ._patch import patch_sdk as _patch_sdk
23+
24+
__all__ = [
25+
"AzureDigitalTwinsAPI",
26+
]
27+
__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
28+
29+
_patch_sdk()

sdk/digitaltwins/azure-digitaltwins-core/azure/digitaltwins/core/_generated/_azure_digital_twins_api.py

Lines changed: 74 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,30 @@
77
# --------------------------------------------------------------------------
88

99
from copy import deepcopy
10-
from typing import TYPE_CHECKING
11-
12-
from msrest import Deserializer, Serializer
10+
from typing import Any, Optional, TYPE_CHECKING
11+
from typing_extensions import Self
1312

1413
from azure.core import PipelineClient
14+
from azure.core.pipeline import policies
15+
from azure.core.rest import HttpRequest, HttpResponse
1516

16-
from . import models
17+
from . import models as _models
1718
from ._configuration import AzureDigitalTwinsAPIConfiguration
18-
from .operations import DigitalTwinModelsOperations, DigitalTwinsOperations, EventRoutesOperations, QueryOperations
19+
from ._utils.serialization import Deserializer, Serializer
20+
from .operations import (
21+
DeleteJobsOperations,
22+
DigitalTwinModelsOperations,
23+
DigitalTwinsOperations,
24+
EventRoutesOperations,
25+
ImportJobsOperations,
26+
QueryOperations,
27+
)
1928

2029
if TYPE_CHECKING:
21-
# pylint: disable=unused-import,ungrouped-imports
22-
from typing import Any
23-
2430
from azure.core.credentials import TokenCredential
25-
from azure.core.rest import HttpRequest, HttpResponse
2631

27-
class AzureDigitalTwinsAPI(object):
32+
33+
class AzureDigitalTwinsAPI:
2834
"""A service for managing and querying digital twins and digital twin models.
2935
3036
:ivar digital_twin_models: DigitalTwinModelsOperations operations
@@ -35,41 +41,74 @@ class AzureDigitalTwinsAPI(object):
3541
:vartype digital_twins: azure.digitaltwins.core.operations.DigitalTwinsOperations
3642
:ivar event_routes: EventRoutesOperations operations
3743
:vartype event_routes: azure.digitaltwins.core.operations.EventRoutesOperations
38-
:param credential: Credential needed for the client to connect to Azure.
44+
:ivar import_jobs: ImportJobsOperations operations
45+
:vartype import_jobs: azure.digitaltwins.core.operations.ImportJobsOperations
46+
:ivar delete_jobs: DeleteJobsOperations operations
47+
:vartype delete_jobs: azure.digitaltwins.core.operations.DeleteJobsOperations
48+
:param credential: Credential needed for the client to connect to Azure. Required.
3949
:type credential: ~azure.core.credentials.TokenCredential
50+
:param operation_id: ID for the operation's status monitor. The ID is generated if header was
51+
not passed by the client. Default value is None.
52+
:type operation_id: str
53+
:param timeout_in_minutes: Desired timeout for the delete job. Once the specified timeout is
54+
reached, service will stop any delete operations triggered by the current delete job that are
55+
in progress, and go to a failed state. Please note that this will leave your instance in an
56+
unknown state as there won't be any rollback operation. Default value is None.
57+
:type timeout_in_minutes: int
4058
:param base_url: Service URL. Default value is "https://digitaltwins-hostname".
4159
:type base_url: str
42-
:keyword api_version: Api Version. Default value is "2022-05-31". Note that overriding
43-
this default value may result in unsupported behavior.
60+
:keyword api_version: Api Version. Default value is "2023-10-31". Note that overriding this
61+
default value may result in unsupported behavior.
4462
:paramtype api_version: str
63+
:keyword int polling_interval: Default waiting time between two polls for LRO operations if no
64+
Retry-After header is present.
4565
"""
4666

4767
def __init__(
4868
self,
49-
credential, # type: "TokenCredential"
50-
base_url="https://digitaltwins-hostname", # type: str
51-
**kwargs # type: Any
52-
):
53-
# type: (...) -> None
54-
self._config = AzureDigitalTwinsAPIConfiguration(credential=credential, **kwargs)
55-
self._client = PipelineClient(base_url=base_url, config=self._config, **kwargs)
56-
57-
client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)}
69+
credential: "TokenCredential",
70+
operation_id: Optional[str] = None,
71+
timeout_in_minutes: Optional[int] = None,
72+
base_url: str = "https://digitaltwins-hostname",
73+
**kwargs: Any
74+
) -> None:
75+
self._config = AzureDigitalTwinsAPIConfiguration(
76+
credential=credential, operation_id=operation_id, timeout_in_minutes=timeout_in_minutes, **kwargs
77+
)
78+
79+
_policies = kwargs.pop("policies", None)
80+
if _policies is None:
81+
_policies = [
82+
policies.RequestIdPolicy(**kwargs),
83+
self._config.headers_policy,
84+
self._config.user_agent_policy,
85+
self._config.proxy_policy,
86+
policies.ContentDecodePolicy(**kwargs),
87+
self._config.redirect_policy,
88+
self._config.retry_policy,
89+
self._config.authentication_policy,
90+
self._config.custom_hook_policy,
91+
self._config.logging_policy,
92+
policies.DistributedTracingPolicy(**kwargs),
93+
policies.SensitiveHeaderCleanupPolicy(**kwargs) if self._config.redirect_policy else None,
94+
self._config.http_logging_policy,
95+
]
96+
self._client: PipelineClient = PipelineClient(base_url=base_url, policies=_policies, **kwargs)
97+
98+
client_models = {k: v for k, v in _models.__dict__.items() if isinstance(v, type)}
5899
self._serialize = Serializer(client_models)
59100
self._deserialize = Deserializer(client_models)
60101
self._serialize.client_side_validation = False
61-
self.digital_twin_models = DigitalTwinModelsOperations(self._client, self._config, self._serialize, self._deserialize)
102+
self.digital_twin_models = DigitalTwinModelsOperations(
103+
self._client, self._config, self._serialize, self._deserialize
104+
)
62105
self.query = QueryOperations(self._client, self._config, self._serialize, self._deserialize)
63106
self.digital_twins = DigitalTwinsOperations(self._client, self._config, self._serialize, self._deserialize)
64107
self.event_routes = EventRoutesOperations(self._client, self._config, self._serialize, self._deserialize)
108+
self.import_jobs = ImportJobsOperations(self._client, self._config, self._serialize, self._deserialize)
109+
self.delete_jobs = DeleteJobsOperations(self._client, self._config, self._serialize, self._deserialize)
65110

66-
67-
def _send_request(
68-
self,
69-
request, # type: HttpRequest
70-
**kwargs # type: Any
71-
):
72-
# type: (...) -> HttpResponse
111+
def _send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs: Any) -> HttpResponse:
73112
"""Runs the network request through the client's chained policies.
74113
75114
>>> from azure.core.rest import HttpRequest
@@ -78,7 +117,7 @@ def _send_request(
78117
>>> response = client._send_request(request)
79118
<HttpResponse: 200 OK>
80119
81-
For more information on this code flow, see https://aka.ms/azsdk/python/protocol/quickstart
120+
For more information on this code flow, see https://aka.ms/azsdk/dpcodegen/python/send_request
82121
83122
:param request: The network request you want to make. Required.
84123
:type request: ~azure.core.rest.HttpRequest
@@ -89,17 +128,14 @@ def _send_request(
89128

90129
request_copy = deepcopy(request)
91130
request_copy.url = self._client.format_url(request_copy.url)
92-
return self._client.send_request(request_copy, **kwargs)
131+
return self._client.send_request(request_copy, stream=stream, **kwargs) # type: ignore
93132

94-
def close(self):
95-
# type: () -> None
133+
def close(self) -> None:
96134
self._client.close()
97135

98-
def __enter__(self):
99-
# type: () -> AzureDigitalTwinsAPI
136+
def __enter__(self) -> Self:
100137
self._client.__enter__()
101138
return self
102139

103-
def __exit__(self, *exc_details):
104-
# type: (Any) -> None
140+
def __exit__(self, *exc_details: Any) -> None:
105141
self._client.__exit__(*exc_details)

sdk/digitaltwins/azure-digitaltwins-core/azure/digitaltwins/core/_generated/_configuration.py

Lines changed: 39 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -6,64 +6,69 @@
66
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
77
# --------------------------------------------------------------------------
88

9-
from typing import TYPE_CHECKING
9+
from typing import Any, Optional, TYPE_CHECKING
1010

11-
from azure.core.configuration import Configuration
1211
from azure.core.pipeline import policies
1312

14-
from ._version import VERSION
15-
1613
if TYPE_CHECKING:
17-
# pylint: disable=unused-import,ungrouped-imports
18-
from typing import Any
19-
2014
from azure.core.credentials import TokenCredential
2115

16+
VERSION = "unknown"
2217

23-
class AzureDigitalTwinsAPIConfiguration(Configuration): # pylint: disable=too-many-instance-attributes
18+
19+
class AzureDigitalTwinsAPIConfiguration: # pylint: disable=too-many-instance-attributes
2420
"""Configuration for AzureDigitalTwinsAPI.
2521
2622
Note that all parameters used to create this instance are saved as instance
2723
attributes.
2824
29-
:param credential: Credential needed for the client to connect to Azure.
25+
:param credential: Credential needed for the client to connect to Azure. Required.
3026
:type credential: ~azure.core.credentials.TokenCredential
31-
:keyword api_version: Api Version. Default value is "2022-05-31". Note that overriding
32-
this default value may result in unsupported behavior.
27+
:param operation_id: ID for the operation's status monitor. The ID is generated if header was
28+
not passed by the client. Default value is None.
29+
:type operation_id: str
30+
:param timeout_in_minutes: Desired timeout for the delete job. Once the specified timeout is
31+
reached, service will stop any delete operations triggered by the current delete job that are
32+
in progress, and go to a failed state. Please note that this will leave your instance in an
33+
unknown state as there won't be any rollback operation. Default value is None.
34+
:type timeout_in_minutes: int
35+
:keyword api_version: Api Version. Default value is "2023-10-31". Note that overriding this
36+
default value may result in unsupported behavior.
3337
:paramtype api_version: str
3438
"""
3539

3640
def __init__(
3741
self,
38-
credential, # type: "TokenCredential"
39-
**kwargs # type: Any
40-
):
41-
# type: (...) -> None
42-
super(AzureDigitalTwinsAPIConfiguration, self).__init__(**kwargs)
43-
api_version = kwargs.pop('api_version', "2022-05-31") # type: str
42+
credential: "TokenCredential",
43+
operation_id: Optional[str] = None,
44+
timeout_in_minutes: Optional[int] = None,
45+
**kwargs: Any
46+
) -> None:
47+
api_version: str = kwargs.pop("api_version", "2023-10-31")
4448

4549
if credential is None:
4650
raise ValueError("Parameter 'credential' must not be None.")
4751

4852
self.credential = credential
53+
self.operation_id = operation_id
54+
self.timeout_in_minutes = timeout_in_minutes
4955
self.api_version = api_version
50-
self.credential_scopes = kwargs.pop('credential_scopes', ['https://digitaltwins.azure.net/.default'])
51-
kwargs.setdefault('sdk_moniker', 'azuredigitaltwinsapi/{}'.format(VERSION))
56+
self.credential_scopes = kwargs.pop("credential_scopes", ["https://digitaltwins.azure.net/.default"])
57+
kwargs.setdefault("sdk_moniker", "azuredigitaltwinsapi/{}".format(VERSION))
58+
self.polling_interval = kwargs.get("polling_interval", 30)
5259
self._configure(**kwargs)
5360

54-
def _configure(
55-
self,
56-
**kwargs # type: Any
57-
):
58-
# type: (...) -> None
59-
self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs)
60-
self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs)
61-
self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs)
62-
self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs)
63-
self.http_logging_policy = kwargs.get('http_logging_policy') or policies.HttpLoggingPolicy(**kwargs)
64-
self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs)
65-
self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs)
66-
self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs)
67-
self.authentication_policy = kwargs.get('authentication_policy')
61+
def _configure(self, **kwargs: Any) -> None:
62+
self.user_agent_policy = kwargs.get("user_agent_policy") or policies.UserAgentPolicy(**kwargs)
63+
self.headers_policy = kwargs.get("headers_policy") or policies.HeadersPolicy(**kwargs)
64+
self.proxy_policy = kwargs.get("proxy_policy") or policies.ProxyPolicy(**kwargs)
65+
self.logging_policy = kwargs.get("logging_policy") or policies.NetworkTraceLoggingPolicy(**kwargs)
66+
self.http_logging_policy = kwargs.get("http_logging_policy") or policies.HttpLoggingPolicy(**kwargs)
67+
self.custom_hook_policy = kwargs.get("custom_hook_policy") or policies.CustomHookPolicy(**kwargs)
68+
self.redirect_policy = kwargs.get("redirect_policy") or policies.RedirectPolicy(**kwargs)
69+
self.retry_policy = kwargs.get("retry_policy") or policies.RetryPolicy(**kwargs)
70+
self.authentication_policy = kwargs.get("authentication_policy")
6871
if self.credential and not self.authentication_policy:
69-
self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs)
72+
self.authentication_policy = policies.BearerTokenCredentialPolicy(
73+
self.credential, *self.credential_scopes, **kwargs
74+
)

sdk/digitaltwins/azure-digitaltwins-core/azure/digitaltwins/core/_generated/_patch.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,8 @@
2727

2828
# This file is used for handwritten extensions to the generated code. Example:
2929
# https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/customize_code/how-to-patch-sdk-code.md
30+
31+
__all__ = ["patch_sdk"]
32+
3033
def patch_sdk():
31-
pass
34+
pass
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# --------------------------------------------------------------------------
2+
# Copyright (c) Microsoft Corporation. All rights reserved.
3+
# Licensed under the MIT License. See License.txt in the project root for license information.
4+
# Code generated by Microsoft (R) AutoRest Code Generator.
5+
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
6+
# --------------------------------------------------------------------------

0 commit comments

Comments
 (0)