Skip to content

Commit 95e2b81

Browse files
Merge pull request #353 from dvonthenen/custom-header-per-function
Custom Headers per REST Call
2 parents 6a4327a + 9d82c59 commit 95e2b81

File tree

13 files changed

+552
-118
lines changed

13 files changed

+552
-118
lines changed

deepgram/clients/abstract_async_client.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ async def get(
4141
url: str,
4242
options: Optional[Dict] = None,
4343
addons: Optional[Dict] = None,
44+
headers: Optional[Dict] = None,
4445
timeout: Optional[httpx.Timeout] = None,
4546
**kwargs,
4647
) -> str:
@@ -49,8 +50,8 @@ async def get(
4950
url,
5051
params=options,
5152
addons=addons,
53+
headers=headers,
5254
timeout=timeout,
53-
headers=self.config.headers,
5455
**kwargs,
5556
)
5657

@@ -59,6 +60,7 @@ async def post_file(
5960
url: str,
6061
options: Optional[Dict] = None,
6162
addons: Optional[Dict] = None,
63+
headers: Optional[Dict] = None,
6264
timeout: Optional[httpx.Timeout] = None,
6365
file_result: Optional[List] = None,
6466
**kwargs,
@@ -69,8 +71,8 @@ async def post_file(
6971
file_result=file_result,
7072
params=options,
7173
addons=addons,
74+
headers=headers,
7275
timeout=timeout,
73-
headers=self.config.headers,
7476
**kwargs,
7577
)
7678

@@ -79,6 +81,7 @@ async def post(
7981
url: str,
8082
options: Optional[Dict] = None,
8183
addons: Optional[Dict] = None,
84+
headers: Optional[Dict] = None,
8285
timeout: Optional[httpx.Timeout] = None,
8386
**kwargs,
8487
) -> str:
@@ -87,8 +90,8 @@ async def post(
8790
url,
8891
params=options,
8992
addons=addons,
93+
headers=headers,
9094
timeout=timeout,
91-
headers=self.config.headers,
9295
**kwargs,
9396
)
9497

@@ -97,6 +100,7 @@ async def put(
97100
url: str,
98101
options: Optional[Dict] = None,
99102
addons: Optional[Dict] = None,
103+
headers: Optional[Dict] = None,
100104
timeout: Optional[httpx.Timeout] = None,
101105
**kwargs,
102106
) -> str:
@@ -105,8 +109,8 @@ async def put(
105109
url,
106110
params=options,
107111
addons=addons,
112+
headers=headers,
108113
timeout=timeout,
109-
headers=self.config.headers,
110114
**kwargs,
111115
)
112116

@@ -115,6 +119,7 @@ async def patch(
115119
url: str,
116120
options: Optional[Dict] = None,
117121
addons: Optional[Dict] = None,
122+
headers: Optional[Dict] = None,
118123
timeout: Optional[httpx.Timeout] = None,
119124
**kwargs,
120125
) -> str:
@@ -123,8 +128,8 @@ async def patch(
123128
url,
124129
params=options,
125130
addons=addons,
131+
headers=headers,
126132
timeout=timeout,
127-
headers=self.config.headers,
128133
**kwargs,
129134
)
130135

@@ -133,6 +138,7 @@ async def delete(
133138
url: str,
134139
options: Optional[Dict] = None,
135140
addons: Optional[Dict] = None,
141+
headers: Optional[Dict] = None,
136142
timeout: Optional[httpx.Timeout] = None,
137143
**kwargs,
138144
) -> str:
@@ -141,8 +147,8 @@ async def delete(
141147
url,
142148
params=options,
143149
addons=addons,
150+
headers=headers,
144151
timeout=timeout,
145-
headers=self.config.headers,
146152
**kwargs,
147153
)
148154

@@ -152,24 +158,26 @@ async def _handle_request(
152158
url: str,
153159
params: Optional[Dict] = None,
154160
addons: Optional[Dict] = None,
155-
timeout: Optional[httpx.Timeout] = None,
156161
headers: Optional[Dict] = None,
162+
timeout: Optional[httpx.Timeout] = None,
157163
file_result: Optional[List] = None,
158164
**kwargs,
159165
):
160-
new_url = url
166+
_url = url
161167
if params is not None:
162-
new_url = append_query_params(new_url, params)
168+
_url = append_query_params(_url, params)
163169
if addons is not None:
164-
new_url = append_query_params(new_url, addons)
165-
170+
_url = append_query_params(_url, addons)
171+
_headers = self.config.headers
172+
if headers is not None:
173+
_headers.update(headers)
166174
if timeout is None:
167175
timeout = httpx.Timeout(30.0, connect=10.0)
168176

169177
try:
170178
async with httpx.AsyncClient(timeout=timeout) as client:
171179
response = await client.request(
172-
method, new_url, headers=headers, **kwargs
180+
method, _url, headers=_headers, **kwargs
173181
)
174182
response.raise_for_status()
175183

deepgram/clients/abstract_sync_client.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ def get(
4040
url: str,
4141
options: Optional[Dict] = None,
4242
addons: Optional[Dict] = None,
43+
headers: Optional[Dict] = None,
4344
timeout: Optional[httpx.Timeout] = None,
4445
**kwargs,
4546
) -> str:
@@ -48,7 +49,7 @@ def get(
4849
url,
4950
params=options,
5051
addons=addons,
51-
headers=self.config.headers,
52+
headers=headers,
5253
timeout=timeout,
5354
**kwargs,
5455
)
@@ -58,6 +59,7 @@ def post_file(
5859
url: str,
5960
options: Optional[Dict] = None,
6061
addons: Optional[Dict] = None,
62+
headers: Optional[Dict] = None,
6163
timeout: Optional[httpx.Timeout] = None,
6264
file_result: Optional[List] = None,
6365
**kwargs,
@@ -68,7 +70,7 @@ def post_file(
6870
file_result=file_result,
6971
params=options,
7072
addons=addons,
71-
headers=self.config.headers,
73+
headers=headers,
7274
timeout=timeout,
7375
**kwargs,
7476
)
@@ -78,6 +80,7 @@ def post(
7880
url: str,
7981
options: Optional[Dict] = None,
8082
addons: Optional[Dict] = None,
83+
headers: Optional[Dict] = None,
8184
timeout: Optional[httpx.Timeout] = None,
8285
**kwargs,
8386
) -> str:
@@ -86,7 +89,7 @@ def post(
8689
url,
8790
params=options,
8891
addons=addons,
89-
headers=self.config.headers,
92+
headers=headers,
9093
timeout=timeout,
9194
**kwargs,
9295
)
@@ -96,6 +99,7 @@ def put(
9699
url: str,
97100
options: Optional[Dict] = None,
98101
addons: Optional[Dict] = None,
102+
headers: Optional[Dict] = None,
99103
timeout: Optional[httpx.Timeout] = None,
100104
**kwargs,
101105
) -> str:
@@ -104,7 +108,7 @@ def put(
104108
url,
105109
params=options,
106110
addons=addons,
107-
headers=self.config.headers,
111+
headers=headers,
108112
timeout=timeout,
109113
**kwargs,
110114
)
@@ -114,6 +118,7 @@ def patch(
114118
url: str,
115119
options: Optional[Dict] = None,
116120
addons: Optional[Dict] = None,
121+
headers: Optional[Dict] = None,
117122
timeout: Optional[httpx.Timeout] = None,
118123
**kwargs,
119124
) -> str:
@@ -122,7 +127,7 @@ def patch(
122127
url,
123128
params=options,
124129
addons=addons,
125-
headers=self.config.headers,
130+
headers=headers,
126131
timeout=timeout,
127132
**kwargs,
128133
)
@@ -132,6 +137,7 @@ def delete(
132137
url: str,
133138
options: Optional[Dict] = None,
134139
addons: Optional[Dict] = None,
140+
headers: Optional[Dict] = None,
135141
timeout: Optional[httpx.Timeout] = None,
136142
**kwargs,
137143
) -> str:
@@ -140,7 +146,7 @@ def delete(
140146
url,
141147
params=options,
142148
addons=addons,
143-
headers=self.config.headers,
149+
headers=headers,
144150
timeout=timeout,
145151
**kwargs,
146152
)
@@ -151,23 +157,25 @@ def _handle_request(
151157
url: str,
152158
params: Optional[Dict] = None,
153159
addons: Optional[Dict] = None,
154-
timeout: Optional[httpx.Timeout] = None,
155160
headers: Optional[Dict] = None,
161+
timeout: Optional[httpx.Timeout] = None,
156162
file_result: Optional[List] = None,
157163
**kwargs,
158164
):
159-
new_url = url
165+
_url = url
160166
if params is not None:
161-
new_url = append_query_params(new_url, params)
167+
_url = append_query_params(_url, params)
162168
if addons is not None:
163-
new_url = append_query_params(new_url, addons)
164-
169+
_url = append_query_params(_url, addons)
170+
_headers = self.config.headers
171+
if headers is not None:
172+
_headers.update(headers)
165173
if timeout is None:
166174
timeout = httpx.Timeout(30.0, connect=10.0)
167175

168176
try:
169177
with httpx.Client(timeout=timeout) as client:
170-
response = client.request(method, new_url, headers=headers, **kwargs)
178+
response = client.request(method, _url, headers=_headers, **kwargs)
171179
response.raise_for_status()
172180

173181
# handle file response

0 commit comments

Comments
 (0)