Skip to content

Commit e522ed4

Browse files
author
SDKAuto
committed
CodeGen from PR 3595 in test-repo-billy/azure-rest-api-specs
Merge 1d0e7cec82892e2016f2ba0f986ffdbab1b8f22d into 303e50ce42c8416bbd1bda5af623498501a5ada5
1 parent 973faf0 commit e522ed4

File tree

9 files changed

+123
-150
lines changed

9 files changed

+123
-150
lines changed
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"commit": "0410d404c68289cb1737d06bba92133bb84b515c",
3-
"repository_url": "https://github.com/Azure/azure-rest-api-specs",
2+
"commit": "0ddd6d1b2d0b4a7f83a6575bf3acea8a86223347",
3+
"repository_url": "https://github.com/test-repo-billy/azure-rest-api-specs",
44
"typespec_src": "specification/healthdataaiservices/HealthDataAIServices.Management",
5-
"@azure-tools/typespec-python": "0.36.1"
5+
"@azure-tools/typespec-python": "0.38.1"
66
}

sdk/healthdataaiservices/azure-mgmt-healthdataaiservices/azure/mgmt/healthdataaiservices/_model_base.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -754,7 +754,7 @@ def _get_deserialize_callable_from_annotation( # pylint: disable=too-many-retur
754754
except AttributeError:
755755
model_name = annotation
756756
if module is not None:
757-
annotation = _get_model(module, model_name)
757+
annotation = _get_model(module, model_name) # type: ignore
758758

759759
try:
760760
if module and _is_model(annotation):
@@ -894,6 +894,22 @@ def _deserialize(
894894
return _deserialize_with_callable(deserializer, value)
895895

896896

897+
def _failsafe_deserialize(
898+
deserializer: typing.Any,
899+
value: typing.Any,
900+
module: typing.Optional[str] = None,
901+
rf: typing.Optional["_RestField"] = None,
902+
format: typing.Optional[str] = None,
903+
) -> typing.Any:
904+
try:
905+
return _deserialize(deserializer, value, module, rf, format)
906+
except DeserializationError:
907+
_LOGGER.warning(
908+
"Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True
909+
)
910+
return None
911+
912+
897913
class _RestField:
898914
def __init__(
899915
self,

sdk/healthdataaiservices/azure-mgmt-healthdataaiservices/azure/mgmt/healthdataaiservices/_serialization.py

Lines changed: 12 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -185,73 +185,7 @@ def deserialize_from_http_generics(cls, body_bytes: Optional[Union[AnyStr, IO]],
185185
except NameError:
186186
_long_type = int
187187

188-
189-
class UTC(datetime.tzinfo):
190-
"""Time Zone info for handling UTC"""
191-
192-
def utcoffset(self, dt):
193-
"""UTF offset for UTC is 0.
194-
195-
:param datetime.datetime dt: The datetime
196-
:returns: The offset
197-
:rtype: datetime.timedelta
198-
"""
199-
return datetime.timedelta(0)
200-
201-
def tzname(self, dt):
202-
"""Timestamp representation.
203-
204-
:param datetime.datetime dt: The datetime
205-
:returns: The timestamp representation
206-
:rtype: str
207-
"""
208-
return "Z"
209-
210-
def dst(self, dt):
211-
"""No daylight saving for UTC.
212-
213-
:param datetime.datetime dt: The datetime
214-
:returns: The daylight saving time
215-
:rtype: datetime.timedelta
216-
"""
217-
return datetime.timedelta(hours=1)
218-
219-
220-
try:
221-
from datetime import timezone as _FixedOffset # type: ignore
222-
except ImportError: # Python 2.7
223-
224-
class _FixedOffset(datetime.tzinfo): # type: ignore
225-
"""Fixed offset in minutes east from UTC.
226-
Copy/pasted from Python doc
227-
:param datetime.timedelta offset: offset in timedelta format
228-
"""
229-
230-
def __init__(self, offset) -> None:
231-
self.__offset = offset
232-
233-
def utcoffset(self, dt):
234-
return self.__offset
235-
236-
def tzname(self, dt):
237-
return str(self.__offset.total_seconds() / 3600)
238-
239-
def __repr__(self):
240-
return "<FixedOffset {}>".format(self.tzname(None))
241-
242-
def dst(self, dt):
243-
return datetime.timedelta(0)
244-
245-
def __getinitargs__(self):
246-
return (self.__offset,)
247-
248-
249-
try:
250-
from datetime import timezone
251-
252-
TZ_UTC = timezone.utc
253-
except ImportError:
254-
TZ_UTC = UTC() # type: ignore
188+
TZ_UTC = datetime.timezone.utc
255189

256190
_FLATTEN = re.compile(r"(?<!\\)\.")
257191

@@ -310,7 +244,7 @@ def _create_xml_node(tag, prefix=None, ns=None):
310244
return ET.Element(tag)
311245

312246

313-
class Model(object):
247+
class Model:
314248
"""Mixin for all client request body/response body models to support
315249
serialization and deserialization.
316250
"""
@@ -563,7 +497,7 @@ def _decode_attribute_map_key(key):
563497
return key.replace("\\.", ".")
564498

565499

566-
class Serializer(object): # pylint: disable=too-many-public-methods
500+
class Serializer: # pylint: disable=too-many-public-methods
567501
"""Request object model serializer."""
568502

569503
basic_types = {str: "str", int: "int", bool: "bool", float: "float"}
@@ -1441,7 +1375,7 @@ def xml_key_extractor(attr, attr_desc, data): # pylint: disable=unused-argument
14411375
return children[0]
14421376

14431377

1444-
class Deserializer(object):
1378+
class Deserializer:
14451379
"""Response object model deserializer.
14461380
14471381
:param dict classes: Class type dictionary for deserializing complex types.
@@ -1683,17 +1617,21 @@ def _instantiate_model(self, response, attrs, additional_properties=None):
16831617
subtype = getattr(response, "_subtype_map", {})
16841618
try:
16851619
readonly = [
1686-
k for k, v in response._validation.items() if v.get("readonly") # pylint: disable=protected-access
1620+
k
1621+
for k, v in response._validation.items() # pylint: disable=protected-access # type: ignore
1622+
if v.get("readonly")
16871623
]
16881624
const = [
1689-
k for k, v in response._validation.items() if v.get("constant") # pylint: disable=protected-access
1625+
k
1626+
for k, v in response._validation.items() # pylint: disable=protected-access # type: ignore
1627+
if v.get("constant")
16901628
]
16911629
kwargs = {k: v for k, v in attrs.items() if k not in subtype and k not in readonly + const}
16921630
response_obj = response(**kwargs)
16931631
for attr in readonly:
16941632
setattr(response_obj, attr, attrs.get(attr))
16951633
if additional_properties:
1696-
response_obj.additional_properties = additional_properties
1634+
response_obj.additional_properties = additional_properties # type: ignore
16971635
return response_obj
16981636
except TypeError as err:
16991637
msg = "Unable to deserialize {} into model {}. ".format(kwargs, response) # type: ignore
@@ -2047,7 +1985,7 @@ def deserialize_rfc(attr):
20471985
try:
20481986
parsed_date = email.utils.parsedate_tz(attr) # type: ignore
20491987
date_obj = datetime.datetime(
2050-
*parsed_date[:6], tzinfo=_FixedOffset(datetime.timedelta(minutes=(parsed_date[9] or 0) / 60))
1988+
*parsed_date[:6], tzinfo=datetime.timezone(datetime.timedelta(minutes=(parsed_date[9] or 0) / 60))
20511989
)
20521990
if not date_obj.tzinfo:
20531991
date_obj = date_obj.astimezone(tz=TZ_UTC)

sdk/healthdataaiservices/azure-mgmt-healthdataaiservices/azure/mgmt/healthdataaiservices/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@
66
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
77
# --------------------------------------------------------------------------
88

9-
VERSION = "1.0.0"
9+
VERSION = "1.0.0b1"

sdk/healthdataaiservices/azure-mgmt-healthdataaiservices/azure/mgmt/healthdataaiservices/aio/operations/_operations.py

Lines changed: 41 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, List, Optional, TypeVar, Union, cast, overload
1313
import urllib.parse
1414

15+
from azure.core import AsyncPipelineClient
1516
from azure.core.async_paging import AsyncItemPaged, AsyncList
1617
from azure.core.exceptions import (
1718
ClientAuthenticationError,
@@ -33,7 +34,8 @@
3334
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
3435

3536
from ... import models as _models
36-
from ..._model_base import SdkJSONEncoder, _deserialize
37+
from ..._model_base import SdkJSONEncoder, _deserialize, _failsafe_deserialize
38+
from ..._serialization import Deserializer, Serializer
3739
from ...operations._operations import (
3840
build_deid_services_create_request,
3941
build_deid_services_delete_request,
@@ -48,6 +50,7 @@
4850
build_private_endpoint_connections_list_by_deid_service_request,
4951
build_private_links_list_by_deid_service_request,
5052
)
53+
from .._configuration import HealthDataAIServicesMgmtClientConfiguration
5154

5255
if sys.version_info >= (3, 9):
5356
from collections.abc import MutableMapping
@@ -70,10 +73,12 @@ class Operations:
7073

7174
def __init__(self, *args, **kwargs) -> None:
7275
input_args = list(args)
73-
self._client = input_args.pop(0) if input_args else kwargs.pop("client")
74-
self._config = input_args.pop(0) if input_args else kwargs.pop("config")
75-
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
76-
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
76+
self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
77+
self._config: HealthDataAIServicesMgmtClientConfiguration = (
78+
input_args.pop(0) if input_args else kwargs.pop("config")
79+
)
80+
self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
81+
self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
7782

7883
@distributed_trace
7984
def list(self, **kwargs: Any) -> AsyncIterable["_models.Operation"]:
@@ -152,7 +157,7 @@ async def get_next(next_link=None):
152157

153158
if response.status_code not in [200]:
154159
map_error(status_code=response.status_code, response=response, error_map=error_map)
155-
error = _deserialize(_models.ErrorResponse, response.json())
160+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
156161
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
157162

158163
return pipeline_response
@@ -172,10 +177,12 @@ class DeidServicesOperations:
172177

173178
def __init__(self, *args, **kwargs) -> None:
174179
input_args = list(args)
175-
self._client = input_args.pop(0) if input_args else kwargs.pop("client")
176-
self._config = input_args.pop(0) if input_args else kwargs.pop("config")
177-
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
178-
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
180+
self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
181+
self._config: HealthDataAIServicesMgmtClientConfiguration = (
182+
input_args.pop(0) if input_args else kwargs.pop("config")
183+
)
184+
self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
185+
self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
179186

180187
@distributed_trace_async
181188
async def get(self, resource_group_name: str, deid_service_name: str, **kwargs: Any) -> _models.DeidService:
@@ -230,7 +237,7 @@ async def get(self, resource_group_name: str, deid_service_name: str, **kwargs:
230237
except (StreamConsumedError, StreamClosedError):
231238
pass
232239
map_error(status_code=response.status_code, response=response, error_map=error_map)
233-
error = _deserialize(_models.ErrorResponse, response.json())
240+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
234241
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
235242

236243
if _stream:
@@ -325,7 +332,7 @@ async def get_next(next_link=None):
325332

326333
if response.status_code not in [200]:
327334
map_error(status_code=response.status_code, response=response, error_map=error_map)
328-
error = _deserialize(_models.ErrorResponse, response.json())
335+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
329336
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
330337

331338
return pipeline_response
@@ -410,7 +417,7 @@ async def get_next(next_link=None):
410417

411418
if response.status_code not in [200]:
412419
map_error(status_code=response.status_code, response=response, error_map=error_map)
413-
error = _deserialize(_models.ErrorResponse, response.json())
420+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
414421
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
415422

416423
return pipeline_response
@@ -473,7 +480,7 @@ async def _create_initial(
473480
except (StreamConsumedError, StreamClosedError):
474481
pass
475482
map_error(status_code=response.status_code, response=response, error_map=error_map)
476-
error = _deserialize(_models.ErrorResponse, response.json())
483+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
477484
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
478485

479486
response_headers = {}
@@ -705,7 +712,7 @@ async def _update_initial(
705712
except (StreamConsumedError, StreamClosedError):
706713
pass
707714
map_error(status_code=response.status_code, response=response, error_map=error_map)
708-
error = _deserialize(_models.ErrorResponse, response.json())
715+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
709716
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
710717

711718
response_headers = {}
@@ -921,7 +928,7 @@ async def _delete_initial(
921928
except (StreamConsumedError, StreamClosedError):
922929
pass
923930
map_error(status_code=response.status_code, response=response, error_map=error_map)
924-
error = _deserialize(_models.ErrorResponse, response.json())
931+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
925932
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
926933

927934
response_headers = {}
@@ -1008,10 +1015,12 @@ class PrivateEndpointConnectionsOperations:
10081015

10091016
def __init__(self, *args, **kwargs) -> None:
10101017
input_args = list(args)
1011-
self._client = input_args.pop(0) if input_args else kwargs.pop("client")
1012-
self._config = input_args.pop(0) if input_args else kwargs.pop("config")
1013-
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
1014-
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
1018+
self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
1019+
self._config: HealthDataAIServicesMgmtClientConfiguration = (
1020+
input_args.pop(0) if input_args else kwargs.pop("config")
1021+
)
1022+
self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
1023+
self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
10151024

10161025
@distributed_trace_async
10171026
async def get(
@@ -1073,7 +1082,7 @@ async def get(
10731082
except (StreamConsumedError, StreamClosedError):
10741083
pass
10751084
map_error(status_code=response.status_code, response=response, error_map=error_map)
1076-
error = _deserialize(_models.ErrorResponse, response.json())
1085+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
10771086
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
10781087

10791088
if _stream:
@@ -1144,7 +1153,7 @@ async def _create_initial(
11441153
except (StreamConsumedError, StreamClosedError):
11451154
pass
11461155
map_error(status_code=response.status_code, response=response, error_map=error_map)
1147-
error = _deserialize(_models.ErrorResponse, response.json())
1156+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
11481157
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
11491158

11501159
response_headers = {}
@@ -1385,7 +1394,7 @@ async def _delete_initial(
13851394
except (StreamConsumedError, StreamClosedError):
13861395
pass
13871396
map_error(status_code=response.status_code, response=response, error_map=error_map)
1388-
error = _deserialize(_models.ErrorResponse, response.json())
1397+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
13891398
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
13901399

13911400
response_headers = {}
@@ -1551,7 +1560,7 @@ async def get_next(next_link=None):
15511560

15521561
if response.status_code not in [200]:
15531562
map_error(status_code=response.status_code, response=response, error_map=error_map)
1554-
error = _deserialize(_models.ErrorResponse, response.json())
1563+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
15551564
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
15561565

15571566
return pipeline_response
@@ -1571,16 +1580,18 @@ class PrivateLinksOperations:
15711580

15721581
def __init__(self, *args, **kwargs) -> None:
15731582
input_args = list(args)
1574-
self._client = input_args.pop(0) if input_args else kwargs.pop("client")
1575-
self._config = input_args.pop(0) if input_args else kwargs.pop("config")
1576-
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
1577-
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
1583+
self._client: AsyncPipelineClient = input_args.pop(0) if input_args else kwargs.pop("client")
1584+
self._config: HealthDataAIServicesMgmtClientConfiguration = (
1585+
input_args.pop(0) if input_args else kwargs.pop("config")
1586+
)
1587+
self._serialize: Serializer = input_args.pop(0) if input_args else kwargs.pop("serializer")
1588+
self._deserialize: Deserializer = input_args.pop(0) if input_args else kwargs.pop("deserializer")
15781589

15791590
@distributed_trace
15801591
def list_by_deid_service(
15811592
self, resource_group_name: str, deid_service_name: str, **kwargs: Any
15821593
) -> AsyncIterable["_models.PrivateLinkResource"]:
1583-
"""List private links on the given resource.
1594+
"""List private links on the given resource. Test changes.
15841595
15851596
:param resource_group_name: The name of the resource group. The name is case insensitive.
15861597
Required.
@@ -1663,7 +1674,7 @@ async def get_next(next_link=None):
16631674

16641675
if response.status_code not in [200]:
16651676
map_error(status_code=response.status_code, response=response, error_map=error_map)
1666-
error = _deserialize(_models.ErrorResponse, response.json())
1677+
error = _failsafe_deserialize(_models.ErrorResponse, response.json())
16671678
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
16681679

16691680
return pipeline_response

0 commit comments

Comments
 (0)