@@ -795,7 +795,7 @@ class SendJoinResponse:
event: Optional[EventBase] = None
# The room state is incomplete
partial_state : bool = False
members_omitted : bool = False
# List of servers in the room
servers_in_room: Optional[List[str]] = None
@@ -835,16 +835,18 @@ def _event_list_parser(
@ijson.coroutine
def _partial_state _parser(response: SendJoinResponse) -> Generator[None, Any, None]:
def _members_omitted _parser(response: SendJoinResponse) -> Generator[None, Any, None]:
"""Helper function for use with `ijson.items_coro`
Parses the partial_state field in send_join responses
Parses the members_omitted field in send_join responses
"""
while True:
val = yield
if not isinstance(val, bool):
raise TypeError("partial_state must be a boolean")
response.partial_state = val
raise TypeError(
"members_omitted (formerly org.matrix.msc370c.partial_state) must be a boolean"
)
response.members_omitted = val
@ijson.coroutine
@@ -905,7 +907,7 @@ class SendJoinParser(ByteParser[SendJoinResponse]):
if not v1_api:
self._coros.append(
ijson.items_coro(
_partial_state _parser(self._response),
_members_omitted _parser(self._response),
"org.matrix.msc3706.partial_state",
use_float="True",
)
@@ -913,7 +915,7 @@ class SendJoinParser(ByteParser[SendJoinResponse]):
# The stable field name comes last, so it "wins" if the fields disagree
self._coros.append(
ijson.items_coro(
_partial_state _parser(self._response),
_members_omitted _parser(self._response),
"members_omitted",
use_float="True",
)