Skip to content

Commit

Permalink
dynamic get transport args
Browse files Browse the repository at this point in the history
  • Loading branch information
joelee2012 committed Nov 9, 2023
1 parent d5b526e commit e4835ec
Showing 1 changed file with 14 additions and 24 deletions.
38 changes: 14 additions & 24 deletions api4jenkins/http.py
@@ -1,4 +1,5 @@
# encoding: utf-8
import inspect
import logging

from httpx import (AsyncClient, AsyncHTTPTransport, Client, HTTPTransport,
Expand Down Expand Up @@ -29,20 +30,19 @@ def check_response(response: Response) -> None:
response.raise_for_status()


def _new_transport(obj, kwargs):
init_args = {
arg: kwargs.pop(arg)
for arg in inspect.getfullargspec(obj).args
if arg in kwargs
}
return obj(**init_args)


def new_http_client(**kwargs) -> Client:
trans = _new_transport(HTTPTransport, kwargs)
return Client(
transport=HTTPTransport(
verify=kwargs.pop('verify', True),
cert=kwargs.pop('cert', None),
http1=kwargs.pop('http1', True),
http2=kwargs.pop('http2', False),
trust_env=kwargs.pop('trust_env', True),
proxy=kwargs.pop('proxy', None),
uds=kwargs.pop('uds', None),
local_address=kwargs.pop('local_address', None),
retries=kwargs.pop('retries', 0),
socket_options=kwargs.pop('socket_options', None)
),
transport=trans,
**kwargs,
event_hooks={'request': [log_request], 'response': [check_response]}
)
Expand All @@ -58,19 +58,9 @@ async def async_check_response(response: Response) -> None:


def new_async_http_client(**kwargs) -> AsyncClient:
trans = _new_transport(AsyncHTTPTransport, kwargs)
return AsyncClient(
transport=AsyncHTTPTransport(
verify=kwargs.pop('verify', True),
cert=kwargs.pop('cert', None),
http1=kwargs.pop('http1', True),
http2=kwargs.pop('http2', False),
trust_env=kwargs.pop('trust_env', True),
proxy=kwargs.pop('proxy', None),
uds=kwargs.pop('uds', None),
local_address=kwargs.pop('local_address', None),
retries=kwargs.pop('retries', 0),
socket_options=kwargs.pop('socket_options', None)
),
transport=trans,
**kwargs,
event_hooks={'request': [async_log_request],
'response': [async_check_response]}
Expand Down

0 comments on commit e4835ec

Please sign in to comment.