Skip to content

Commit 14ada5c

Browse files
committed
convert events.StreamEnded into a dataclass
1 parent 39f29ad commit 14ada5c

File tree

3 files changed

+6
-9
lines changed

3 files changed

+6
-9
lines changed

src/h2/events.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -433,16 +433,16 @@ def __repr__(self) -> str:
433433
return f"<PingAckReceived ping_data:{_bytes_representation(self.ping_data)}>"
434434

435435

436+
@dataclass(**kw_only)
436437
class StreamEnded(Event):
437438
"""
438439
The StreamEnded event is fired whenever a stream is ended by a remote
439440
party. The stream may not be fully closed if it has not been closed
440441
locally, but no further data or headers should be expected on that stream.
441442
"""
442443

443-
def __init__(self) -> None:
444-
#: The Stream ID of the stream that was closed.
445-
self.stream_id: int | None = None
444+
stream_id: int
445+
"""The Stream ID of the stream that was closed."""
446446

447447
def __repr__(self) -> str:
448448
return f"<StreamEnded stream_id:{self.stream_id}>"

src/h2/stream.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -238,17 +238,15 @@ def stream_half_closed(self, previous_state: StreamState) -> list[Event]:
238238
Fires when an END_STREAM flag is received in the OPEN state,
239239
transitioning this stream to a HALF_CLOSED_REMOTE state.
240240
"""
241-
event = StreamEnded()
242-
event.stream_id = self.stream_id
241+
event = StreamEnded(stream_id=self.stream_id)
243242
return [event]
244243

245244
def stream_ended(self, previous_state: StreamState) -> list[Event]:
246245
"""
247246
Fires when a stream is cleanly ended.
248247
"""
249248
self.stream_closed_by = StreamClosedBy.RECV_END_STREAM
250-
event = StreamEnded()
251-
event.stream_id = self.stream_id
249+
event = StreamEnded(stream_id=self.stream_id)
252250
return [event]
253251

254252
def stream_reset(self, previous_state: StreamState) -> list[Event]:

tests/test_events.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,7 @@ def test_streamended_repr(self) -> None:
236236
"""
237237
StreamEnded has a useful debug representation.
238238
"""
239-
e = h2.events.StreamEnded()
240-
e.stream_id = 99
239+
e = h2.events.StreamEnded(stream_id=99)
241240

242241
assert repr(e) == "<StreamEnded stream_id:99>"
243242

0 commit comments

Comments
 (0)