Skip to content

Commit 7e1ba5d

Browse files
author
Yalin Li
authored
[DI] Fix mypy errors (#33821)
1 parent 0b4cf48 commit 7e1ba5d

File tree

61 files changed

+17402
-1652
lines changed

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

+17402
-1652
lines changed

.vscode/cspell.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -792,7 +792,12 @@
792792
"racwd",
793793
"rrggbb",
794794
"UPCA",
795-
"UPCE"
795+
"UPCE",
796+
"mros",
797+
"Nify",
798+
"deserializers",
799+
"ctxt",
800+
"wday"
796801
]
797802
},
798803
{

sdk/documentintelligence/azure-ai-documentintelligence/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
### Breaking Changes
88

9+
- Changed property name from `items` to `items_property` in model `DocumentFieldSchema` and `DocumentList`.
10+
911
### Bugs Fixed
1012

1113
### Other Changes

sdk/documentintelligence/azure-ai-documentintelligence/README.md

Lines changed: 145 additions & 122 deletions
Large diffs are not rendered by default.

sdk/documentintelligence/azure-ai-documentintelligence/azure/ai/documentintelligence/_model_base.py

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
# pyright: reportGeneralTypeIssues=false
99

1010
import calendar
11+
import decimal
1112
import functools
1213
import sys
1314
import logging
@@ -144,6 +145,8 @@ def default(self, o): # pylint: disable=too-many-return-statements
144145
except TypeError:
145146
if isinstance(o, _Null):
146147
return None
148+
if isinstance(o, decimal.Decimal):
149+
return float(o)
147150
if isinstance(o, (bytes, bytearray)):
148151
return _serialize_bytes(o, self.format)
149152
try:
@@ -275,6 +278,12 @@ def _deserialize_duration(attr):
275278
return isodate.parse_duration(attr)
276279

277280

281+
def _deserialize_decimal(attr):
282+
if isinstance(attr, decimal.Decimal):
283+
return attr
284+
return decimal.Decimal(str(attr))
285+
286+
278287
_DESERIALIZE_MAPPING = {
279288
datetime: _deserialize_datetime,
280289
date: _deserialize_date,
@@ -283,6 +292,7 @@ def _deserialize_duration(attr):
283292
bytearray: _deserialize_bytes,
284293
timedelta: _deserialize_duration,
285294
typing.Any: lambda x: x,
295+
decimal.Decimal: _deserialize_decimal,
286296
}
287297

288298
_DESERIALIZE_MAPPING_WITHFORMAT = {
@@ -426,6 +436,8 @@ def _serialize(o, format: typing.Optional[str] = None): # pylint: disable=too-m
426436
return tuple(_serialize(x, format) for x in o)
427437
if isinstance(o, (bytes, bytearray)):
428438
return _serialize_bytes(o, format)
439+
if isinstance(o, decimal.Decimal):
440+
return float(o)
429441
try:
430442
# First try datetime.datetime
431443
return _serialize_datetime(o, format)
@@ -642,24 +654,18 @@ def _deserialize_with_union(deserializers, obj):
642654

643655
try:
644656
if annotation._name == "Dict":
645-
key_deserializer = _get_deserialize_callable_from_annotation(annotation.__args__[0], module, rf)
646657
value_deserializer = _get_deserialize_callable_from_annotation(annotation.__args__[1], module, rf)
647658

648659
def _deserialize_dict(
649-
key_deserializer: typing.Optional[typing.Callable],
650660
value_deserializer: typing.Optional[typing.Callable],
651661
obj: typing.Dict[typing.Any, typing.Any],
652662
):
653663
if obj is None:
654664
return obj
655-
return {
656-
_deserialize(key_deserializer, k, module): _deserialize(value_deserializer, v, module)
657-
for k, v in obj.items()
658-
}
665+
return {k: _deserialize(value_deserializer, v, module) for k, v in obj.items()}
659666

660667
return functools.partial(
661668
_deserialize_dict,
662-
key_deserializer,
663669
value_deserializer,
664670
)
665671
except (AttributeError, IndexError):
@@ -698,27 +704,29 @@ def _deserialize_sequence(
698704
pass
699705

700706
def _deserialize_default(
701-
annotation,
702-
deserializer_from_mapping,
707+
deserializer,
703708
obj,
704709
):
705710
if obj is None:
706711
return obj
707712
try:
708-
return _deserialize_with_callable(annotation, obj)
713+
return _deserialize_with_callable(deserializer, obj)
709714
except Exception:
710715
pass
711-
return _deserialize_with_callable(deserializer_from_mapping, obj)
716+
return obj
717+
718+
if get_deserializer(annotation, rf):
719+
return functools.partial(_deserialize_default, get_deserializer(annotation, rf))
712720

713-
return functools.partial(_deserialize_default, annotation, get_deserializer(annotation, rf))
721+
return functools.partial(_deserialize_default, annotation)
714722

715723

716724
def _deserialize_with_callable(
717725
deserializer: typing.Optional[typing.Callable[[typing.Any], typing.Any]],
718726
value: typing.Any,
719727
):
720728
try:
721-
if value is None:
729+
if value is None or isinstance(value, _Null):
722730
return None
723731
if deserializer is None:
724732
return value
@@ -746,7 +754,8 @@ def _deserialize(
746754
value = value.http_response.json()
747755
if rf is None and format:
748756
rf = _RestField(format=format)
749-
deserializer = _get_deserialize_callable_from_annotation(deserializer, module, rf)
757+
if not isinstance(deserializer, functools.partial):
758+
deserializer = _get_deserialize_callable_from_annotation(deserializer, module, rf)
750759
return _deserialize_with_callable(deserializer, value)
751760

752761

0 commit comments

Comments
 (0)