1+ # pylint: disable=too-many-lines
12# coding=utf-8
23# --------------------------------------------------------------------------
34# Copyright (c) Microsoft Corporation. All rights reserved.
4- # Licensed under the MIT License. See License.txt in the project root for
5- # 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.
68# --------------------------------------------------------------------------
7- # pylint: disable=protected-access, arguments-differ, signature-differs, broad-except, too-many-lines
9+ # pylint: disable=protected-access, broad-except
810
911import copy
1012import calendar
@@ -372,15 +374,34 @@ def __ne__(self, other: typing.Any) -> bool:
372374 return not self .__eq__ (other )
373375
374376 def keys (self ) -> typing .KeysView [str ]:
377+ """
378+ :returns: a set-like object providing a view on D's keys
379+ :rtype: ~typing.KeysView
380+ """
375381 return self ._data .keys ()
376382
377383 def values (self ) -> typing .ValuesView [typing .Any ]:
384+ """
385+ :returns: an object providing a view on D's values
386+ :rtype: ~typing.ValuesView
387+ """
378388 return self ._data .values ()
379389
380390 def items (self ) -> typing .ItemsView [str , typing .Any ]:
391+ """
392+ :returns: set-like object providing a view on D's items
393+ :rtype: ~typing.ItemsView
394+ """
381395 return self ._data .items ()
382396
383397 def get (self , key : str , default : typing .Any = None ) -> typing .Any :
398+ """
399+ Get the value for key if key is in the dictionary, else default.
400+ :param str key: The key to look up.
401+ :param any default: The value to return if key is not in the dictionary. Defaults to None
402+ :returns: D[k] if k in D, else d.
403+ :rtype: any
404+ """
384405 try :
385406 return self [key ]
386407 except KeyError :
@@ -396,17 +417,38 @@ def pop(self, key: str, default: _T) -> _T: ...
396417 def pop (self , key : str , default : typing .Any ) -> typing .Any : ...
397418
398419 def pop (self , key : str , default : typing .Any = _UNSET ) -> typing .Any :
420+ """
421+ Removes specified key and return the corresponding value.
422+ :param str key: The key to pop.
423+ :param any default: The value to return if key is not in the dictionary
424+ :returns: The value corresponding to the key.
425+ :rtype: any
426+ :raises KeyError: If key is not found and default is not given.
427+ """
399428 if default is _UNSET :
400429 return self ._data .pop (key )
401430 return self ._data .pop (key , default )
402431
403432 def popitem (self ) -> typing .Tuple [str , typing .Any ]:
433+ """
434+ Removes and returns some (key, value) pair
435+ :returns: The (key, value) pair.
436+ :rtype: tuple
437+ :raises KeyError: if D is empty.
438+ """
404439 return self ._data .popitem ()
405440
406441 def clear (self ) -> None :
442+ """
443+ Remove all items from D.
444+ """
407445 self ._data .clear ()
408446
409447 def update (self , * args : typing .Any , ** kwargs : typing .Any ) -> None :
448+ """
449+ Updates D from mapping/iterable E and F.
450+ :param any args: Either a mapping object or an iterable of key-value pairs.
451+ """
410452 self ._data .update (* args , ** kwargs )
411453
412454 @typing .overload
@@ -416,6 +458,13 @@ def setdefault(self, key: str, default: None = None) -> None: ...
416458 def setdefault (self , key : str , default : typing .Any ) -> typing .Any : ...
417459
418460 def setdefault (self , key : str , default : typing .Any = _UNSET ) -> typing .Any :
461+ """
462+ Same as calling D.get(k, d), and setting D[k]=d if k not found
463+ :param str key: The key to look up.
464+ :param any default: The value to set if key is not in the dictionary
465+ :returns: D[k] if k in D, else d.
466+ :rtype: any
467+ """
419468 if default is _UNSET :
420469 return self ._data .setdefault (key )
421470 return self ._data .setdefault (key , default )
@@ -573,7 +622,7 @@ def __init__(self, *args: typing.Any, **kwargs: typing.Any) -> None:
573622 def copy (self ) -> "Model" :
574623 return Model (self .__dict__ )
575624
576- def __new__ (cls , * args : typing .Any , ** kwargs : typing .Any ) -> Self : # pylint: disable=unused-argument
625+ def __new__ (cls , * args : typing .Any , ** kwargs : typing .Any ) -> Self :
577626 if f"{ cls .__module__ } .{ cls .__qualname__ } " not in cls ._calculated :
578627 # we know the last nine classes in mro are going to be 'Model', '_MyMutableMapping', 'MutableMapping',
579628 # 'Mapping', 'Collection', 'Sized', 'Iterable', 'Container' and 'object'
@@ -584,8 +633,8 @@ def __new__(cls, *args: typing.Any, **kwargs: typing.Any) -> Self: # pylint: di
584633 annotations = {
585634 k : v
586635 for mro_class in mros
587- if hasattr (mro_class , "__annotations__" ) # pylint: disable=no-member
588- for k , v in mro_class .__annotations__ .items () # pylint: disable=no-member
636+ if hasattr (mro_class , "__annotations__" )
637+ for k , v in mro_class .__annotations__ .items ()
589638 }
590639 for attr , rf in attr_to_rest_field .items ():
591640 rf ._module = cls .__module__
@@ -600,8 +649,8 @@ def __new__(cls, *args: typing.Any, **kwargs: typing.Any) -> Self: # pylint: di
600649
601650 def __init_subclass__ (cls , discriminator : typing .Optional [str ] = None ) -> None :
602651 for base in cls .__bases__ :
603- if hasattr (base , "__mapping__" ): # pylint: disable=no-member
604- base .__mapping__ [discriminator or cls .__name__ ] = cls # type: ignore # pylint: disable=no-member
652+ if hasattr (base , "__mapping__" ):
653+ base .__mapping__ [discriminator or cls .__name__ ] = cls # type: ignore
605654
606655 @classmethod
607656 def _get_discriminator (cls , exist_discriminators ) -> typing .Optional ["_RestField" ]:
@@ -612,7 +661,7 @@ def _get_discriminator(cls, exist_discriminators) -> typing.Optional["_RestField
612661
613662 @classmethod
614663 def _deserialize (cls , data , exist_discriminators ):
615- if not hasattr (cls , "__mapping__" ): # pylint: disable=no-member
664+ if not hasattr (cls , "__mapping__" ):
616665 return cls (data )
617666 discriminator = cls ._get_discriminator (exist_discriminators )
618667 if discriminator is None :
@@ -632,11 +681,11 @@ def _deserialize(cls, data, exist_discriminators):
632681 discriminator_value = data .find (xml_name ).text # pyright: ignore
633682 else :
634683 discriminator_value = data .get (discriminator ._rest_name )
635- mapped_cls = cls .__mapping__ .get (discriminator_value , cls ) # pyright: ignore # pylint: disable=no-member
684+ mapped_cls = cls .__mapping__ .get (discriminator_value , cls ) # pyright: ignore
636685 return mapped_cls ._deserialize (data , exist_discriminators )
637686
638687 def as_dict (self , * , exclude_readonly : bool = False ) -> typing .Dict [str , typing .Any ]:
639- """Return a dict that can be JSONify using json.dump.
688+ """Return a dict that can be turned into json using json.dump.
640689
641690 :keyword bool exclude_readonly: Whether to remove the readonly properties.
642691 :returns: A dict JSON compatible object
@@ -733,7 +782,7 @@ def _sorted_annotations(types: typing.List[typing.Any]) -> typing.List[typing.An
733782 )
734783
735784
736- def _get_deserialize_callable_from_annotation ( # pylint: disable=R0911, R0915, R0912
785+ def _get_deserialize_callable_from_annotation ( # pylint: disable=too-many-return-statements, too-many-branches
737786 annotation : typing .Any ,
738787 module : typing .Optional [str ],
739788 rf : typing .Optional ["_RestField" ] = None ,
@@ -753,7 +802,7 @@ def _get_deserialize_callable_from_annotation( # pylint: disable=R0911, R0915,
753802 except AttributeError :
754803 model_name = annotation
755804 if module is not None :
756- annotation = _get_model (module , model_name )
805+ annotation = _get_model (module , model_name ) # type: ignore
757806
758807 try :
759808 if module and _is_model (annotation ):
@@ -893,6 +942,35 @@ def _deserialize(
893942 return _deserialize_with_callable (deserializer , value )
894943
895944
945+ def _failsafe_deserialize (
946+ deserializer : typing .Any ,
947+ value : typing .Any ,
948+ module : typing .Optional [str ] = None ,
949+ rf : typing .Optional ["_RestField" ] = None ,
950+ format : typing .Optional [str ] = None ,
951+ ) -> typing .Any :
952+ try :
953+ return _deserialize (deserializer , value , module , rf , format )
954+ except DeserializationError :
955+ _LOGGER .warning (
956+ "Ran into a deserialization error. Ignoring since this is failsafe deserialization" , exc_info = True
957+ )
958+ return None
959+
960+
961+ def _failsafe_deserialize_xml (
962+ deserializer : typing .Any ,
963+ value : typing .Any ,
964+ ) -> typing .Any :
965+ try :
966+ return _deserialize_xml (deserializer , value )
967+ except DeserializationError :
968+ _LOGGER .warning (
969+ "Ran into a deserialization error. Ignoring since this is failsafe deserialization" , exc_info = True
970+ )
971+ return None
972+
973+
896974class _RestField :
897975 def __init__ (
898976 self ,
0 commit comments