mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-06-17 18:46:40 +00:00
Refactor Request class equality check and optimize request removal in Sender class
This commit is contained in:
parent
1c2aafce2a
commit
d590271ebd
@ -158,9 +158,6 @@ class Request(Generic[Return]):
|
||||
state: RequestState
|
||||
result: Future[Return]
|
||||
|
||||
def __eq__(self, value: object) -> bool:
|
||||
return self is value
|
||||
|
||||
|
||||
@dataclass
|
||||
class Sender:
|
||||
@ -441,17 +438,19 @@ class Sender:
|
||||
)
|
||||
|
||||
def _pop_request(self, msg_id: MsgId) -> Optional[Request[object]]:
|
||||
for req in self._requests:
|
||||
for i, req in enumerate(self._requests):
|
||||
if isinstance(req.state, Serialized) and req.state.msg_id == msg_id:
|
||||
raise RuntimeError("got response for unsent request")
|
||||
elif isinstance(req.state, Sent) and req.state.msg_id == msg_id:
|
||||
self._requests.remove(req)
|
||||
del self._requests[i]
|
||||
return req
|
||||
|
||||
return None
|
||||
|
||||
def _drain_requests(self, msg_id: MsgId) -> Iterator[Request[object]]:
|
||||
for req in self._requests:
|
||||
for i in reversed(range(len(self._requests))):
|
||||
req = self._requests[i]
|
||||
|
||||
if isinstance(req.state, Serialized) and (
|
||||
req.state.msg_id == msg_id or req.state.container_msg_id == msg_id
|
||||
):
|
||||
@ -459,8 +458,7 @@ class Sender:
|
||||
elif isinstance(req.state, Sent) and (
|
||||
req.state.msg_id == msg_id or req.state.container_msg_id == msg_id
|
||||
):
|
||||
self._requests.remove(req)
|
||||
yield req
|
||||
yield self._requests.pop(i)
|
||||
|
||||
@property
|
||||
def auth_key(self) -> Optional[bytes]:
|
||||
|
Loading…
Reference in New Issue
Block a user