Skip to content

Commit

Permalink
fixup! AVRO-2921 Add Type Hints to avro.schema
Browse files Browse the repository at this point in the history
  • Loading branch information
kojiromike committed Jul 18, 2023
1 parent df05ad8 commit f21dde4
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
10 changes: 5 additions & 5 deletions lang/py/avro/protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

import hashlib
import json
from typing import Mapping, Optional, Sequence, Union, cast
from typing import Mapping, MutableMapping, Optional, Sequence, Union, cast

import avro.errors
import avro.name
Expand All @@ -37,7 +37,7 @@


class MessageObject(TypedDict, total=False):
request: Sequence[Mapping[str, object]]
request: Sequence[MutableMapping[str, object]]
response: Union[str, object]
errors: Optional[Sequence[str]]

Expand Down Expand Up @@ -176,7 +176,7 @@ class Message:
def __init__(
self,
name: str,
request: Sequence[Mapping[str, object]],
request: Sequence[MutableMapping[str, object]],
response: Union[str, object],
errors: Optional[Sequence[str]] = None,
names: Optional[avro.name.Names] = None,
Expand Down Expand Up @@ -215,7 +215,7 @@ def to_json(self, names: Optional[avro.name.Names] = None) -> "MessageObject":
to_dump = MessageObject()
except NameError:
to_dump = {}
to_dump["request"] = cast(Sequence[Mapping[str, object]], self.request.to_json(names))
to_dump["request"] = cast(Sequence[MutableMapping[str, object]], self.request.to_json(names))
to_dump["response"] = self.response.to_json(names)
if self.errors:
to_dump["errors"] = cast(Optional[Sequence[str]], self.errors.to_json(names))
Expand All @@ -226,7 +226,7 @@ def __eq__(self, that: object) -> bool:
return all(hasattr(that, prop) and getattr(self, prop) == getattr(that, prop) for prop in self.__class__.__slots__)


def _parse_request(request: Sequence[Mapping[str, object]], names: avro.name.Names, validate_names: bool = True) -> avro.schema.RecordSchema:
def _parse_request(request: Sequence[MutableMapping[str, object]], names: avro.name.Names, validate_names: bool = True) -> avro.schema.RecordSchema:
if not isinstance(request, Sequence):
raise avro.errors.ProtocolParseException(f"Request property not a list: {request}")
return avro.schema.RecordSchema(None, None, request, names, "request", validate_names=validate_names)
Expand Down
4 changes: 2 additions & 2 deletions lang/py/avro/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -965,7 +965,7 @@ def __init__(
self,
name: Optional[str],
namespace: Optional[str],
fields: Sequence[Field],
fields: Sequence[MutableMapping[str, object]],
names: Optional[Names] = None,
schema_type: str = "record",
doc: Optional[str] = None,
Expand Down Expand Up @@ -1256,7 +1256,7 @@ def make_avsc_object(json_data: object, names: Optional[Names] = None, validate_
doc = cast(Optional[str], json_data.get("doc"))
return EnumSchema(name, namespace, symbols, names, doc, other_props, validate_enum_symbols, validate_names)
if type_ in ["record", "error"]:
fields = cast(Sequence[Field], json_data.get("fields"))
fields = cast(Sequence[MutableMapping[str, object]], json_data.get("fields"))
doc = cast(Optional[str], json_data.get("doc"))
return RecordSchema(name, namespace, fields, names, type_, doc, other_props, validate_names)
raise avro.errors.SchemaParseException(f"Unknown Named Type: {type_}")
Expand Down

0 comments on commit f21dde4

Please sign in to comment.