Skip to content

Commit 0a1806c

Browse files
committed
feat: forward kwargs to request method
This allows passing headers / other parameters to the underlying requests or aiohttp call.
1 parent 0e7ff54 commit 0a1806c

1 file changed

Lines changed: 45 additions & 25 deletions

File tree

src/simple_github/client.py

Lines changed: 45 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,27 @@ def close(self) -> BaseNone: ...
5353
def request(self, method: str, query: str, **kwargs: Any) -> BaseResponse: ...
5454

5555
@abstractmethod
56-
def get(self, query: str) -> BaseResponse: ...
56+
def get(self, query: str, **kwargs: Any) -> BaseResponse: ...
5757

5858
@abstractmethod
59-
def post(self, query: str, data: RequestData = None) -> BaseResponse: ...
59+
def post(
60+
self, query: str, data: RequestData = None, **kwargs: Any
61+
) -> BaseResponse: ...
6062

6163
@abstractmethod
62-
def put(self, query: str, data: RequestData = None) -> BaseResponse: ...
64+
def put(
65+
self, query: str, data: RequestData = None, **kwargs: Any
66+
) -> BaseResponse: ...
6367

6468
@abstractmethod
65-
def patch(self, query: str, data: RequestData = None) -> BaseResponse: ...
69+
def patch(
70+
self, query: str, data: RequestData = None, **kwargs: Any
71+
) -> BaseResponse: ...
6672

6773
@abstractmethod
68-
def delete(self, query: str, data: RequestData = None) -> BaseNone: ...
74+
def delete(
75+
self, query: str, data: RequestData = None, **kwargs: Any
76+
) -> BaseNone: ...
6977

7078
@abstractmethod
7179
def execute(self, query: str, variables: RequestData = None) -> BaseDict: ...
@@ -141,7 +149,7 @@ def request(self, method: str, query: str, **kwargs) -> RequestsResponse:
141149
with session.request(method, url, **kwargs) as resp:
142150
return resp
143151

144-
def get(self, query: str) -> RequestsResponse:
152+
def get(self, query: str, **kwargs: Any) -> RequestsResponse:
145153
"""Make a GET request to Github's REST API.
146154
147155
Args:
@@ -150,9 +158,11 @@ def get(self, query: str) -> RequestsResponse:
150158
Returns:
151159
Dict: The JSON result of the request.
152160
"""
153-
return self.request("GET", query)
161+
return self.request("GET", query, **kwargs)
154162

155-
def post(self, query: str, data: RequestData = None) -> RequestsResponse:
163+
def post(
164+
self, query: str, data: RequestData = None, **kwargs: Any
165+
) -> RequestsResponse:
156166
"""Make a POST request to Github's REST API.
157167
158168
Args:
@@ -162,9 +172,11 @@ def post(self, query: str, data: RequestData = None) -> RequestsResponse:
162172
Returns:
163173
Dict: The JSON result of the request.
164174
"""
165-
return self.request("POST", query, data=json.dumps(data))
175+
return self.request("POST", query, data=json.dumps(data), **kwargs)
166176

167-
def put(self, query: str, data: RequestData = None) -> RequestsResponse:
177+
def put(
178+
self, query: str, data: RequestData = None, **kwargs: Any
179+
) -> RequestsResponse:
168180
"""Make a PUT request to Github's REST API.
169181
170182
Args:
@@ -174,9 +186,11 @@ def put(self, query: str, data: RequestData = None) -> RequestsResponse:
174186
Returns:
175187
Dict: The JSON result of the request.
176188
"""
177-
return self.request("PUT", query, data=json.dumps(data))
189+
return self.request("PUT", query, data=json.dumps(data), **kwargs)
178190

179-
def patch(self, query: str, data: RequestData = None) -> RequestsResponse:
191+
def patch(
192+
self, query: str, data: RequestData = None, **kwargs: Any
193+
) -> RequestsResponse:
180194
"""Make a PATCH request to Github's REST API.
181195
182196
Args:
@@ -186,16 +200,16 @@ def patch(self, query: str, data: RequestData = None) -> RequestsResponse:
186200
Returns:
187201
Dict: The JSON result of the request.
188202
"""
189-
return self.request("PATCH", query, data=json.dumps(data))
203+
return self.request("PATCH", query, data=json.dumps(data), **kwargs)
190204

191-
def delete(self, query: str, data: RequestData = None) -> None:
205+
def delete(self, query: str, data: RequestData = None, **kwargs: Any) -> None:
192206
"""Make a DELETE request to Github's REST API.
193207
194208
Args:
195209
query (str): The path segment of the request, e.g `/octocat`.
196210
data (Dict): The data to send in the request (optional).
197211
"""
198-
self.request("DELETE", query, data=json.dumps(data))
212+
self.request("DELETE", query, data=json.dumps(data), **kwargs)
199213

200214
def execute(self, query: str, variables: RequestData = None) -> dict[str, Any]:
201215
"""Execute a query against Github's GraphQL endpoint.
@@ -283,7 +297,7 @@ async def request(self, method: str, query: str, **kwargs: Any) -> ClientRespons
283297
session = await self._get_aiohttp_session()
284298
return await session.request(method, url, **kwargs)
285299

286-
async def get(self, query: str) -> ClientResponse:
300+
async def get(self, query: str, **kwargs: Any) -> ClientResponse:
287301
"""Make a GET request to Github's REST API.
288302
289303
Args:
@@ -292,9 +306,11 @@ async def get(self, query: str) -> ClientResponse:
292306
Returns:
293307
Dict: The JSON result of the request.
294308
"""
295-
return await self.request("GET", query)
309+
return await self.request("GET", query, **kwargs)
296310

297-
async def post(self, query: str, data: RequestData = None) -> ClientResponse:
311+
async def post(
312+
self, query: str, data: RequestData = None, **kwargs: Any
313+
) -> ClientResponse:
298314
"""Make a POST request to Github's REST API.
299315
300316
Args:
@@ -304,9 +320,11 @@ async def post(self, query: str, data: RequestData = None) -> ClientResponse:
304320
Returns:
305321
Dict: The JSON result of the request.
306322
"""
307-
return await self.request("POST", query, data=json.dumps(data))
323+
return await self.request("POST", query, data=json.dumps(data), **kwargs)
308324

309-
async def put(self, query: str, data: RequestData = None) -> ClientResponse:
325+
async def put(
326+
self, query: str, data: RequestData = None, **kwargs: Any
327+
) -> ClientResponse:
310328
"""Make a PUT request to Github's REST API.
311329
312330
Args:
@@ -316,9 +334,11 @@ async def put(self, query: str, data: RequestData = None) -> ClientResponse:
316334
Returns:
317335
Dict: The JSON result of the request.
318336
"""
319-
return await self.request("PUT", query, data=json.dumps(data))
337+
return await self.request("PUT", query, data=json.dumps(data), **kwargs)
320338

321-
async def patch(self, query: str, data: RequestData = None) -> ClientResponse:
339+
async def patch(
340+
self, query: str, data: RequestData = None, **kwargs: Any
341+
) -> ClientResponse:
322342
"""Make a PATCH request to Github's REST API.
323343
324344
Args:
@@ -328,16 +348,16 @@ async def patch(self, query: str, data: RequestData = None) -> ClientResponse:
328348
Returns:
329349
Dict: The JSON result of the request.
330350
"""
331-
return await self.request("PATCH", query, data=json.dumps(data))
351+
return await self.request("PATCH", query, data=json.dumps(data), **kwargs)
332352

333-
async def delete(self, query: str, data: RequestData = None) -> None:
353+
async def delete(self, query: str, data: RequestData = None, **kwargs: Any) -> None:
334354
"""Make a DELETE request to Github's REST API.
335355
336356
Args:
337357
query (str): The path segment of the request, e.g `/octocat`.
338358
data (Dict): The data to send in the request (optional).
339359
"""
340-
await self.request("DELETE", query, data=json.dumps(data))
360+
await self.request("DELETE", query, data=json.dumps(data), **kwargs)
341361

342362
async def execute(
343363
self, query: str, variables: RequestData = None

0 commit comments

Comments
 (0)