get_configured_session

get_configured_session#

rapidtools.config.get_configured_session(retries: int = 5, backoff_factor: float = 1, allowed_methods: Iterable[str] | None = None, status_forcelist: Iterable[int] | None = None) → Session[source]#

Create a requests Session with retry logic, timeouts, and headers.

Parameters:
  • retries (int) – Number of total retries to attempt. Defaults to DEFAULT_RETRY_TOTAL (5).

  • backoff_factor (float) – Time factor for exponential backoff. Defaults to DEFAULT_BACKOFF (1).

  • allowed_methods (Iterable[str] | None) – HTTP methods that may be retried. Defaults to the idempotent DEFAULT_ALLOWED_METHODS; pass API_RETRY_METHODS to include POST.

  • status_forcelist (Iterable[int] | None) – Response statuses that trigger a retry. Defaults to DEFAULT_STATUS_FORCELIST.

Returns:

requests.Session – A configured session object ready for use.

Example

>>> from rapidtools.config import get_configured_session
>>> session = get_configured_session(retries=2, backoff_factor=0.5)
>>> session.headers['Connection']
'keep-alive'
>>> session.adapters['http://'].max_retries.backoff_factor
0.5