File tree Expand file tree Collapse file tree 2 files changed +28
-18
lines changed
src/a2a/client/transports Expand file tree Collapse file tree 2 files changed +28
-18
lines changed Original file line number Diff line number Diff line change @@ -86,15 +86,20 @@ def __init__(
8686 def _update_extension_header (
8787 self , http_kwargs : dict [str , Any ]
8888 ) -> dict [str , Any ]:
89- if self .client_extensions :
90- headers = http_kwargs .get ('headers' , {})
91- existing_extensions = headers .get (HTTP_EXTENSION_HEADER , '' )
92- split = (
93- existing_extensions .split (', ' ) if existing_extensions else []
94- )
95- updated_extensions = list (set (self .client_extensions + split ))
96- headers [HTTP_EXTENSION_HEADER ] = ', ' .join (updated_extensions )
97- http_kwargs ['headers' ] = headers
89+ if not self .client_extensions :
90+ return http_kwargs
91+
92+ headers = http_kwargs .setdefault ('headers' , {})
93+ existing_extensions_str = headers .get (HTTP_EXTENSION_HEADER , '' )
94+
95+ existing_extensions = [
96+ e .strip () for e in existing_extensions_str .split (',' ) if e .strip ()
97+ ]
98+
99+ all_extensions = set (self .client_extensions )
100+ all_extensions .update (existing_extensions )
101+
102+ headers [HTTP_EXTENSION_HEADER ] = ', ' .join (list (all_extensions ))
98103 return http_kwargs
99104
100105 async def _apply_interceptors (
Original file line number Diff line number Diff line change @@ -68,15 +68,20 @@ def __init__(
6868 def _update_extension_header (
6969 self , http_kwargs : dict [str , Any ]
7070 ) -> dict [str , Any ]:
71- if self .client_extensions :
72- headers = http_kwargs .get ('headers' , {})
73- existing_extensions = headers .get (HTTP_EXTENSION_HEADER , '' )
74- split = (
75- existing_extensions .split (', ' ) if existing_extensions else []
76- )
77- updated_extensions = list (set (self .client_extensions + split ))
78- headers [HTTP_EXTENSION_HEADER ] = ', ' .join (updated_extensions )
79- http_kwargs ['headers' ] = headers
71+ if not self .client_extensions :
72+ return http_kwargs
73+
74+ headers = http_kwargs .setdefault ('headers' , {})
75+ existing_extensions_str = headers .get (HTTP_EXTENSION_HEADER , '' )
76+
77+ existing_extensions = [
78+ e .strip () for e in existing_extensions_str .split (',' ) if e .strip ()
79+ ]
80+
81+ all_extensions = set (self .client_extensions )
82+ all_extensions .update (existing_extensions )
83+
84+ headers [HTTP_EXTENSION_HEADER ] = ', ' .join (list (all_extensions ))
8085 return http_kwargs
8186
8287 async def _apply_interceptors (
You can’t perform that action at this time.
0 commit comments