@@ -86,7 +86,15 @@ def __init__(
86
86
status : int = 200 ,
87
87
reason : Optional [str ] = None ,
88
88
headers : Optional [LooseHeaders ] = None ,
89
+ _real_headers : Optional [CIMultiDict [str ]] = None ,
89
90
) -> None :
91
+ """Initialize a new stream response object.
92
+
93
+ _real_headers is an internal parameter used to pass a pre-populated
94
+ headers object. It is used by the `Response` class to avoid copying
95
+ the headers when creating a new response object. It is not intended
96
+ to be used by external code.
97
+ """
90
98
self ._body = None
91
99
self ._keep_alive : Optional [bool ] = None
92
100
self ._chunked = False
@@ -102,7 +110,9 @@ def __init__(
102
110
self ._body_length = 0
103
111
self ._state : Dict [str , Any ] = {}
104
112
105
- if headers is not None :
113
+ if _real_headers is not None :
114
+ self ._headers = _real_headers
115
+ elif headers is not None :
106
116
self ._headers : CIMultiDict [str ] = CIMultiDict (headers )
107
117
else :
108
118
self ._headers = CIMultiDict ()
@@ -660,7 +670,7 @@ def __init__(
660
670
content_type += "; charset=" + charset
661
671
real_headers [hdrs .CONTENT_TYPE ] = content_type
662
672
663
- super ().__init__ (status = status , reason = reason , headers = real_headers )
673
+ super ().__init__ (status = status , reason = reason , _real_headers = real_headers )
664
674
665
675
if text is not None :
666
676
self .text = text
0 commit comments