13
13
import binascii
14
14
import sys
15
15
from dataclasses import dataclass
16
- from typing import Any , TYPE_CHECKING
16
+ from typing import TYPE_CHECKING , Any
17
17
18
18
from .settings import ChangedSetting , SettingCodes , Settings , _setting_code_from_int
19
19
@@ -128,6 +128,7 @@ def __repr__(self) -> str:
128
128
return f"<ResponseReceived stream_id:{ self .stream_id } , headers:{ self .headers } >"
129
129
130
130
131
+ @dataclass (** kw_only )
131
132
class TrailersReceived (Event ):
132
133
"""
133
134
The TrailersReceived event is fired whenever trailers are received on a
@@ -145,25 +146,28 @@ class TrailersReceived(Event):
145
146
Added ``stream_ended`` and ``priority_updated`` properties.
146
147
"""
147
148
148
- def __init__ (self ) -> None :
149
- #: The Stream ID for the stream on which these trailers were received.
150
- self .stream_id : int | None = None
149
+ stream_id : int
150
+ """The Stream ID for the stream on which these trailers were received."""
151
151
152
- #: The trailers themselves.
153
- self . headers : list [ Header ] | None = None
152
+ headers : list [ Header ] = _LAZY_INIT
153
+ """The trailers themselves."""
154
154
155
- #: Trailers always end streams. This property has the associated
156
- #: :class:`StreamEnded <h2.events.StreamEnded>` in it.
157
- #:
158
- #: .. versionadded:: 2.4.0
159
- self .stream_ended : StreamEnded | None = None
155
+ stream_ended : StreamEnded | None = None
156
+ """
157
+ Trailers always end streams. This property has the associated
158
+ :class:`StreamEnded <h2.events.StreamEnded>` in it.
160
159
161
- #: If the trailers also set associated priority information, the
162
- #: associated :class:`PriorityUpdated <h2.events.PriorityUpdated>`
163
- #: event will be available here.
164
- #:
165
- #: .. versionadded:: 2.4.0
166
- self .priority_updated : PriorityUpdated | None = None
160
+ .. versionadded:: 2.4.0
161
+ """
162
+
163
+ priority_updated : PriorityUpdated | None = None
164
+ """
165
+ If the trailers also set associated priority information, the
166
+ associated :class:`PriorityUpdated <h2.events.PriorityUpdated>`
167
+ event will be available here.
168
+
169
+ .. versionadded:: 2.4.0
170
+ """
167
171
168
172
def __repr__ (self ) -> str :
169
173
return f"<TrailersReceived stream_id:{ self .stream_id } , headers:{ self .headers } >"
0 commit comments