22# coding=utf-8
33# --------------------------------------------------------------------------
44# Copyright (c) Microsoft Corporation. All rights reserved.
5- # Licensed under the MIT License. See License.txt in the project root for
6- # license information.
5+ # Licensed under the MIT License. See License.txt in the project root for license information.
6+ # Code generated by Microsoft (R) Python Code Generator.
7+ # Changes may cause incorrect behavior and will be lost if the code is regenerated.
78# --------------------------------------------------------------------------
89# pylint: disable=protected-access, broad-except
910
2122from datetime import datetime , date , time , timedelta , timezone
2223from json import JSONEncoder
2324import xml .etree .ElementTree as ET
25+ from collections .abc import MutableMapping
2426from typing_extensions import Self
2527import isodate
2628from azure .core .exceptions import DeserializationError
2729from azure .core import CaseInsensitiveEnumMeta
2830from azure .core .pipeline import PipelineResponse
2931from azure .core .serialization import _Null
3032
31- if sys .version_info >= (3 , 9 ):
32- from collections .abc import MutableMapping
33- else :
34- from typing import MutableMapping
35-
3633_LOGGER = logging .getLogger (__name__ )
3734
3835__all__ = ["SdkJSONEncoder" , "Model" , "rest_field" , "rest_discriminator" ]
@@ -347,7 +344,7 @@ def _get_model(module_name: str, model_name: str):
347344_UNSET = object ()
348345
349346
350- class _MyMutableMapping (MutableMapping [str , typing .Any ]): # pylint: disable=unsubscriptable-object
347+ class _MyMutableMapping (MutableMapping [str , typing .Any ]):
351348 def __init__ (self , data : typing .Dict [str , typing .Any ]) -> None :
352349 self ._data = data
353350
@@ -373,50 +370,97 @@ def __ne__(self, other: typing.Any) -> bool:
373370 return not self .__eq__ (other )
374371
375372 def keys (self ) -> typing .KeysView [str ]:
373+ """
374+ :returns: a set-like object providing a view on D's keys
375+ :rtype: ~typing.KeysView
376+ """
376377 return self ._data .keys ()
377378
378379 def values (self ) -> typing .ValuesView [typing .Any ]:
380+ """
381+ :returns: an object providing a view on D's values
382+ :rtype: ~typing.ValuesView
383+ """
379384 return self ._data .values ()
380385
381386 def items (self ) -> typing .ItemsView [str , typing .Any ]:
387+ """
388+ :returns: set-like object providing a view on D's items
389+ :rtype: ~typing.ItemsView
390+ """
382391 return self ._data .items ()
383392
384393 def get (self , key : str , default : typing .Any = None ) -> typing .Any :
394+ """
395+ Get the value for key if key is in the dictionary, else default.
396+ :param str key: The key to look up.
397+ :param any default: The value to return if key is not in the dictionary. Defaults to None
398+ :returns: D[k] if k in D, else d.
399+ :rtype: any
400+ """
385401 try :
386402 return self [key ]
387403 except KeyError :
388404 return default
389405
390406 @typing .overload
391- def pop (self , key : str ) -> typing .Any : ...
407+ def pop (self , key : str ) -> typing .Any : ... # pylint: disable=arguments-differ
392408
393409 @typing .overload
394- def pop (self , key : str , default : _T ) -> _T : ...
410+ def pop (self , key : str , default : _T ) -> _T : ... # pylint: disable=signature-differs
395411
396412 @typing .overload
397- def pop (self , key : str , default : typing .Any ) -> typing .Any : ...
413+ def pop (self , key : str , default : typing .Any ) -> typing .Any : ... # pylint: disable=signature-differs
398414
399415 def pop (self , key : str , default : typing .Any = _UNSET ) -> typing .Any :
416+ """
417+ Removes specified key and return the corresponding value.
418+ :param str key: The key to pop.
419+ :param any default: The value to return if key is not in the dictionary
420+ :returns: The value corresponding to the key.
421+ :rtype: any
422+ :raises KeyError: If key is not found and default is not given.
423+ """
400424 if default is _UNSET :
401425 return self ._data .pop (key )
402426 return self ._data .pop (key , default )
403427
404428 def popitem (self ) -> typing .Tuple [str , typing .Any ]:
429+ """
430+ Removes and returns some (key, value) pair
431+ :returns: The (key, value) pair.
432+ :rtype: tuple
433+ :raises KeyError: if D is empty.
434+ """
405435 return self ._data .popitem ()
406436
407437 def clear (self ) -> None :
438+ """
439+ Remove all items from D.
440+ """
408441 self ._data .clear ()
409442
410- def update (self , * args : typing .Any , ** kwargs : typing .Any ) -> None :
443+ def update (self , * args : typing .Any , ** kwargs : typing .Any ) -> None : # pylint: disable=arguments-differ
444+ """
445+ Updates D from mapping/iterable E and F.
446+ :param any args: Either a mapping object or an iterable of key-value pairs.
447+ """
411448 self ._data .update (* args , ** kwargs )
412449
413450 @typing .overload
414451 def setdefault (self , key : str , default : None = None ) -> None : ...
415452
416453 @typing .overload
417- def setdefault (self , key : str , default : typing .Any ) -> typing .Any : ...
454+ def setdefault (self , key : str , default : typing .Any ) -> typing .Any : ... # pylint: disable=signature-differs
418455
419456 def setdefault (self , key : str , default : typing .Any = _UNSET ) -> typing .Any :
457+ """
458+ Same as calling D.get(k, d), and setting D[k]=d if k not found
459+ :param str key: The key to look up.
460+ :param any default: The value to set if key is not in the dictionary
461+ :returns: D[k] if k in D, else d.
462+ :rtype: any
463+ """
420464 if default is _UNSET :
421465 return self ._data .setdefault (key )
422466 return self ._data .setdefault (key , default )
@@ -597,7 +641,7 @@ def __new__(cls, *args: typing.Any, **kwargs: typing.Any) -> Self:
597641 cls ._attr_to_rest_field : typing .Dict [str , _RestField ] = dict (attr_to_rest_field .items ())
598642 cls ._calculated .add (f"{ cls .__module__ } .{ cls .__qualname__ } " )
599643
600- return super ().__new__ (cls ) # pylint: disable=no-value-for-parameter
644+ return super ().__new__ (cls )
601645
602646 def __init_subclass__ (cls , discriminator : typing .Optional [str ] = None ) -> None :
603647 for base in cls .__bases__ :
@@ -633,7 +677,7 @@ def _deserialize(cls, data, exist_discriminators):
633677 discriminator_value = data .find (xml_name ).text # pyright: ignore
634678 else :
635679 discriminator_value = data .get (discriminator ._rest_name )
636- mapped_cls = cls .__mapping__ .get (discriminator_value , cls ) # pyright: ignore
680+ mapped_cls = cls .__mapping__ .get (discriminator_value , cls ) # pyright: ignore # pylint: disable=no-member
637681 return mapped_cls ._deserialize (data , exist_discriminators )
638682
639683 def as_dict (self , * , exclude_readonly : bool = False ) -> typing .Dict [str , typing .Any ]:
@@ -910,6 +954,19 @@ def _failsafe_deserialize(
910954 return None
911955
912956
957+ def _failsafe_deserialize_xml (
958+ deserializer : typing .Any ,
959+ value : typing .Any ,
960+ ) -> typing .Any :
961+ try :
962+ return _deserialize_xml (deserializer , value )
963+ except DeserializationError :
964+ _LOGGER .warning (
965+ "Ran into a deserialization error. Ignoring since this is failsafe deserialization" , exc_info = True
966+ )
967+ return None
968+
969+
913970class _RestField :
914971 def __init__ (
915972 self ,
0 commit comments