@@ -118,6 +118,15 @@ def map_httpcore_exceptions() -> typing.Iterator[None]:
118
118
raise mapped_exc (message ) from exc
119
119
120
120
121
+ def create_proxy (proxy : ProxyTypes | None , ssl_context : ssl .SSLContext ) -> Proxy | None :
122
+ if isinstance (proxy , (str , URL )):
123
+ proxy_url = proxy if isinstance (proxy , URL ) else URL (proxy )
124
+ if proxy_url .scheme == "https" :
125
+ return Proxy (url = proxy_url , ssl_context = ssl_context )
126
+ return Proxy (url = proxy_url )
127
+ return proxy
128
+
129
+
121
130
class ResponseStream (SyncByteStream ):
122
131
def __init__ (self , httpcore_stream : typing .Iterable [bytes ]) -> None :
123
132
self ._httpcore_stream = httpcore_stream
@@ -149,8 +158,8 @@ def __init__(
149
158
) -> None :
150
159
import httpcore
151
160
152
- proxy = Proxy (url = proxy ) if isinstance (proxy , (str , URL )) else proxy
153
161
ssl_context = create_ssl_context (verify = verify , cert = cert , trust_env = trust_env )
162
+ proxy = create_proxy (proxy , ssl_context )
154
163
155
164
if proxy is None :
156
165
self ._pool = httpcore .ConnectionPool (
@@ -293,8 +302,8 @@ def __init__(
293
302
) -> None :
294
303
import httpcore
295
304
296
- proxy = Proxy (url = proxy ) if isinstance (proxy , (str , URL )) else proxy
297
305
ssl_context = create_ssl_context (verify = verify , cert = cert , trust_env = trust_env )
306
+ proxy = create_proxy (proxy , ssl_context )
298
307
299
308
if proxy is None :
300
309
self ._pool = httpcore .AsyncConnectionPool (
0 commit comments