From ff55c496279f4ee90546f98f359d8da35313e33c Mon Sep 17 00:00:00 2001 From: Charles Prevot Date: Wed, 23 Jul 2025 12:12:40 +0200 Subject: [PATCH 1/5] Add request proxies and timeout --- pybatfish/client/restv2helper.py | 8 ++++++++ pybatfish/client/session.py | 4 ++++ 2 files changed, 12 insertions(+) diff --git a/pybatfish/client/restv2helper.py b/pybatfish/client/restv2helper.py index 071d16b9..023e338b 100644 --- a/pybatfish/client/restv2helper.py +++ b/pybatfish/client/restv2helper.py @@ -653,6 +653,8 @@ def _delete( headers=_get_headers(session), params=params, verify=session.verify_ssl_certs, + timeout=session.timeout, + proxies=session.proxies, ) _check_response_status(response) @@ -672,6 +674,8 @@ def _get(session, url_tail, params, stream=False, fail_fast=False): params=params, stream=stream, verify=session.verify_ssl_certs, + timeout=session.timeout, + proxies=session.proxies, ) _check_response_status(response) return response @@ -736,6 +740,8 @@ def _post( headers=headers, params=params, verify=session.verify_ssl_certs, + timeout=session.timeout, + proxies=session.proxies, ) _check_response_status(response) return None @@ -759,6 +765,8 @@ def _put(session, url_tail, params=None, json=None, stream=None): headers=headers, verify=session.verify_ssl_certs, params=params, + timeout=session.timeout, + proxies=session.proxies, ) _check_response_status(response) return None diff --git a/pybatfish/client/session.py b/pybatfish/client/session.py index 3de2f4e6..d190e02e 100644 --- a/pybatfish/client/session.py +++ b/pybatfish/client/session.py @@ -355,6 +355,8 @@ def __init__( verify_ssl_certs: bool = Options.verify_ssl_certs, api_key: str = CoordConsts.DEFAULT_API_KEY, load_questions: bool = True, + proxies=None, + timeout: Optional[int] = 30, ): # Coordinator args self.host: str = host @@ -382,6 +384,8 @@ def __init__( self.elapsed_delay: int = 5 self.stale_timeout: int = 5 + self.proxies = proxies + self.timeout = timeout # Auto-load question templates if load_questions: From c0aa7a7243470623b63f01806ab1c40363552dd4 Mon Sep 17 00:00:00 2001 From: Charles Prevot Date: Wed, 23 Jul 2025 12:17:37 +0200 Subject: [PATCH 2/5] Add type and docstring --- pybatfish/client/session.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pybatfish/client/session.py b/pybatfish/client/session.py index d190e02e..6ed9df42 100644 --- a/pybatfish/client/session.py +++ b/pybatfish/client/session.py @@ -341,6 +341,8 @@ class Session: :ivar port_v2: Legacy alias for port :ivar ssl: Whether to use SSL when connecting to Batfish (False by default) :ivar api_key: Your API key + :ivar proxies: A dictionary of proxies to use for the session. See `requests` documentation for details. + :ivar timeout: Timeout for requests in seconds (default is 30 seconds) """ def __init__( @@ -355,7 +357,7 @@ def __init__( verify_ssl_certs: bool = Options.verify_ssl_certs, api_key: str = CoordConsts.DEFAULT_API_KEY, load_questions: bool = True, - proxies=None, + proxies: Optional[Dict[str, str]] = None, timeout: Optional[int] = 30, ): # Coordinator args From d46a074823019de1b027ecd0353b64ad1643e48a Mon Sep 17 00:00:00 2001 From: Charles Prevot Date: Wed, 12 Nov 2025 20:01:34 +0100 Subject: [PATCH 3/5] Fix typing --- pybatfish/client/session.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pybatfish/client/session.py b/pybatfish/client/session.py index 5c7c96d7..d8bec964 100644 --- a/pybatfish/client/session.py +++ b/pybatfish/client/session.py @@ -335,8 +335,8 @@ def __init__( verify_ssl_certs: bool = Options.verify_ssl_certs, api_key: str = CoordConsts.DEFAULT_API_KEY, load_questions: bool = True, - proxies: Optional[Dict[str, str]] = None, - timeout: Optional[int] = 30, + proxies: dict[str, str] | None = None, + timeout: int = 30, ): # Coordinator args self.host: str = host From baaa766e9378125f8a4f73cd1be9124b4765b0ac Mon Sep 17 00:00:00 2001 From: Charles Prevot Date: Wed, 12 Nov 2025 20:01:59 +0100 Subject: [PATCH 4/5] Fix tests --- tests/client/test_restv2helper.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/client/test_restv2helper.py b/tests/client/test_restv2helper.py index f334be31..e9c5259f 100644 --- a/tests/client/test_restv2helper.py +++ b/tests/client/test_restv2helper.py @@ -92,6 +92,8 @@ def test_delete(session: Session, request_session: Mock) -> None: headers=_get_headers(session), params=None, verify=session.verify_ssl_certs, + proxies=session.proxies, + timeout=session.timeout, ) @@ -111,6 +113,8 @@ def test_get(session: Session, request_session: Mock) -> None: params=None, stream=False, verify=session.verify_ssl_certs, + proxies=session.proxies, + timeout=session.timeout, ) # Fast-failing session @@ -124,6 +128,8 @@ def test_get(session: Session, request_session: Mock) -> None: params=None, stream=False, verify=session.verify_ssl_certs, + proxies=session.proxies, + timeout=session.timeout, ) @@ -144,6 +150,8 @@ def test_post_json(session, request_session): headers=_get_headers(session), params=None, verify=session.verify_ssl_certs, + proxies=session.proxies, + timeout=session.timeout, ) @@ -165,6 +173,8 @@ def test_post_stream(session, request_session): headers=expected_headers, params=None, verify=session.verify_ssl_certs, + proxies=session.proxies, + timeout=session.timeout, ) @@ -184,6 +194,8 @@ def test_put(session, request_session): headers=_get_headers(session), verify=session.verify_ssl_certs, params=None, + proxies=session.proxies, + timeout=session.timeout, ) From da1ae60766fa9b94a7633f8c049cf57ba2a9cdc3 Mon Sep 17 00:00:00 2001 From: Charles Prevot Date: Wed, 12 Nov 2025 20:38:51 +0100 Subject: [PATCH 5/5] Fix test errors --- tests/client/test_restv2helper.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/client/test_restv2helper.py b/tests/client/test_restv2helper.py index e9c5259f..7a1f91b7 100644 --- a/tests/client/test_restv2helper.py +++ b/tests/client/test_restv2helper.py @@ -56,6 +56,8 @@ def session() -> Session: s.get_base_url2.return_value = BASE_URL s.api_key = "0000" s.verify_ssl_certs = True + s.timeout = 30 + s.proxies = None return s