@@ -120,7 +120,7 @@ def _create_transport(index, transport, check_native_endpoint=None):
120120 valid_transport_keys = [
121121 'type' , 'url' , 'endpoint' , 'serializer' , 'serializers' , 'options' ,
122122 'max_retries' , 'max_retry_delay' , 'initial_retry_delay' ,
123- 'retry_delay_growth' , 'retry_delay_jitter' , 'proxy' ,
123+ 'retry_delay_growth' , 'retry_delay_jitter' , 'proxy' , 'headers'
124124 ]
125125 for k in transport .keys ():
126126 if k not in valid_transport_keys :
@@ -161,6 +161,8 @@ def _create_transport(index, transport, check_native_endpoint=None):
161161 'options must be a dict, not {}' .format (type (options ))
162162 )
163163
164+ headers = transport .get ("headers" )
165+
164166 if kind == 'websocket' :
165167 for key in ['url' ]:
166168 if key not in transport :
@@ -227,6 +229,8 @@ def _create_transport(index, transport, check_native_endpoint=None):
227229 endpoint_config = transport ['endpoint' ]
228230 if 'serializers' in transport :
229231 raise ValueError ("'serializers' is only for websocket; use 'serializer'" )
232+ if headers is not None :
233+ raise ValueError ("'headers' not supported for rawsocket transport" )
230234 # always a list; len == 1 for rawsocket
231235 if 'serializer' in transport :
232236 if not isinstance (transport ['serializer' ], (str , str )):
@@ -252,6 +256,7 @@ def _create_transport(index, transport, check_native_endpoint=None):
252256 serializers = serializer_config ,
253257 proxy = proxy ,
254258 options = options ,
259+ headers = headers ,
255260 ** kw
256261 )
257262
@@ -268,7 +273,8 @@ def __init__(self, idx, kind, url, endpoint, serializers,
268273 retry_delay_growth = 1.5 ,
269274 retry_delay_jitter = 0.1 ,
270275 proxy = None ,
271- options = None ):
276+ options = None ,
277+ headers = None ):
272278 """
273279 """
274280 if options is None :
@@ -279,6 +285,7 @@ def __init__(self, idx, kind, url, endpoint, serializers,
279285 self .url = url
280286 self .endpoint = endpoint
281287 self .options = options
288+ self .headers = headers
282289
283290 self .serializers = serializers
284291 if self .type == 'rawsocket' and len (serializers ) != 1 :
0 commit comments