4646from .windows import WindowManager
4747
4848if TYPE_CHECKING : # pragma: no cover
49- from collections .abc import Generator , Iterable
49+ from collections .abc import Callable , Generator , Iterable
5050
5151 from hpack .hpack import Encoder
5252 from hpack .struct import Header , HeaderWeaklyTyped
@@ -131,7 +131,7 @@ def __init__(self, stream_id: int) -> None:
131131 # How the stream was closed. One of StreamClosedBy.
132132 self .stream_closed_by : StreamClosedBy | None = None
133133
134- def process_input (self , input_ : StreamInputs ) -> Any :
134+ def process_input (self , input_ : StreamInputs ) -> list [ Event ] :
135135 """
136136 Process a specific input in the state machine.
137137 """
@@ -315,21 +315,23 @@ def recv_push_promise(self, previous_state: StreamState) -> list[Event]:
315315 event .parent_stream_id = self .stream_id
316316 return [event ]
317317
318- def send_end_stream (self , previous_state : StreamState ) -> None :
318+ def send_end_stream (self , previous_state : StreamState ) -> list [ Event ] :
319319 """
320320 Called when an attempt is made to send END_STREAM in the
321321 HALF_CLOSED_REMOTE state.
322322 """
323323 self .stream_closed_by = StreamClosedBy .SEND_END_STREAM
324+ return []
324325
325- def send_reset_stream (self , previous_state : StreamState ) -> None :
326+ def send_reset_stream (self , previous_state : StreamState ) -> list [ Event ] :
326327 """
327328 Called when an attempt is made to send RST_STREAM in a non-closed
328329 stream state.
329330 """
330331 self .stream_closed_by = StreamClosedBy .SEND_RST_STREAM
332+ return []
331333
332- def reset_stream_on_error (self , previous_state : StreamState ) -> None :
334+ def reset_stream_on_error (self , previous_state : StreamState ) -> list [ Event ] :
333335 """
334336 Called when we need to forcefully emit another RST_STREAM frame on
335337 behalf of the state machine.
@@ -350,7 +352,7 @@ def reset_stream_on_error(self, previous_state: StreamState) -> None:
350352 error ._events = [event ]
351353 raise error
352354
353- def recv_on_closed_stream (self , previous_state : StreamState ) -> None :
355+ def recv_on_closed_stream (self , previous_state : StreamState ) -> list [ Event ] :
354356 """
355357 Called when an unexpected frame is received on an already-closed
356358 stream.
@@ -362,7 +364,7 @@ def recv_on_closed_stream(self, previous_state: StreamState) -> None:
362364 """
363365 raise StreamClosedError (self .stream_id )
364366
365- def send_on_closed_stream (self , previous_state : StreamState ) -> None :
367+ def send_on_closed_stream (self , previous_state : StreamState ) -> list [ Event ] :
366368 """
367369 Called when an attempt is made to send data on an already-closed
368370 stream.
@@ -374,7 +376,7 @@ def send_on_closed_stream(self, previous_state: StreamState) -> None:
374376 """
375377 raise StreamClosedError (self .stream_id )
376378
377- def recv_push_on_closed_stream (self , previous_state : StreamState ) -> None :
379+ def recv_push_on_closed_stream (self , previous_state : StreamState ) -> list [ Event ] :
378380 """
379381 Called when a PUSH_PROMISE frame is received on a full stop
380382 stream.
@@ -393,7 +395,7 @@ def recv_push_on_closed_stream(self, previous_state: StreamState) -> None:
393395 msg = "Attempted to push on closed stream."
394396 raise ProtocolError (msg )
395397
396- def send_push_on_closed_stream (self , previous_state : StreamState ) -> None :
398+ def send_push_on_closed_stream (self , previous_state : StreamState ) -> list [ Event ] :
397399 """
398400 Called when an attempt is made to push on an already-closed stream.
399401
@@ -473,7 +475,7 @@ def recv_alt_svc(self, previous_state: StreamState) -> list[Event]:
473475 # the event and let it get populated.
474476 return [AlternativeServiceAvailable ()]
475477
476- def send_alt_svc (self , previous_state : StreamState ) -> None :
478+ def send_alt_svc (self , previous_state : StreamState ) -> list [ Event ] :
477479 """
478480 Called when sending an ALTSVC frame on this stream.
479481
@@ -489,6 +491,7 @@ def send_alt_svc(self, previous_state: StreamState) -> None:
489491 if self .headers_sent :
490492 msg = "Cannot send ALTSVC after sending response headers."
491493 raise ProtocolError (msg )
494+ return []
492495
493496
494497
@@ -561,7 +564,10 @@ def send_alt_svc(self, previous_state: StreamState) -> None:
561564# (state, input) to tuples of (side_effect_function, end_state). This
562565# map contains all allowed transitions: anything not in this map is
563566# invalid and immediately causes a transition to ``closed``.
564- _transitions = {
567+ _transitions : dict [
568+ tuple [StreamState , StreamInputs ],
569+ tuple [Callable [[H2StreamStateMachine , StreamState ], list [Event ]] | None , StreamState ],
570+ ] = {
565571 # State: idle
566572 (StreamState .IDLE , StreamInputs .SEND_HEADERS ):
567573 (H2StreamStateMachine .request_sent , StreamState .OPEN ),
0 commit comments