@@ -118,6 +118,15 @@ def map_httpcore_exceptions() -> typing.Iterator[None]:
118118        raise  mapped_exc (message ) from  exc 
119119
120120
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+ 
121130class  ResponseStream (SyncByteStream ):
122131    def  __init__ (self , httpcore_stream : typing .Iterable [bytes ]) ->  None :
123132        self ._httpcore_stream  =  httpcore_stream 
@@ -149,8 +158,8 @@ def __init__(
149158    ) ->  None :
150159        import  httpcore 
151160
152-         proxy  =  Proxy (url = proxy ) if  isinstance (proxy , (str , URL )) else  proxy 
153161        ssl_context  =  create_ssl_context (verify = verify , cert = cert , trust_env = trust_env )
162+         proxy  =  create_proxy (proxy , ssl_context )
154163
155164        if  proxy  is  None :
156165            self ._pool  =  httpcore .ConnectionPool (
@@ -293,8 +302,8 @@ def __init__(
293302    ) ->  None :
294303        import  httpcore 
295304
296-         proxy  =  Proxy (url = proxy ) if  isinstance (proxy , (str , URL )) else  proxy 
297305        ssl_context  =  create_ssl_context (verify = verify , cert = cert , trust_env = trust_env )
306+         proxy  =  create_proxy (proxy , ssl_context )
298307
299308        if  proxy  is  None :
300309            self ._pool  =  httpcore .AsyncConnectionPool (
0 commit comments