gamesheet_sdk.common.session¶
Reusable HTTP session for talking to the GameSheet WebUI.
Wraps requests.Session with the bits every WebUI workflow
needs and nobody wants to wire up by hand:
- A pinned, version-stamped User-Agent.
- Configurable base URL so callers can hand in relative paths.
- Cookie persistence to disk between process invocations.
- Retries on 5xx and connection errors for idempotent methods.
- POST is intentionally excluded from retries (no double-submission).
Direct access to the cookie jar and default headers is via
Session.cookies and Session.headers.
Classes
A |
- class gamesheet_sdk.common.session.Session[source]¶
Bases:
objectA
requests.Sessionwrapper configured for GameSheet WebUI access.- Example::
from gamesheet_sdk import Config, Session with Session(Config()) as s:
resp = s.get(“/api/leagues”) resp.raise_for_status()
The context-manager form persists cookies on exit. If you do not use
with, callSession.close()explicitly to save state.Initialize an HTTP session configured for GameSheet WebUI access.
Constructs a
requests.Sessionwith automatic retry logic, a version-stamped User-Agent, and restores any previously-saved cookies from disk. The session is ready for immediate use after construction.- Parameters:
config (Config | None) – Optional configuration object. If
None, a defaultConfigis created.
- __init__(config=None)[source]¶
Initialize an HTTP session configured for GameSheet WebUI access.
Constructs a
requests.Sessionwith automatic retry logic, a version-stamped User-Agent, and restores any previously-saved cookies from disk. The session is ready for immediate use after construction.
- property cookies: RequestsCookieJar¶
Underlying cookie jar.
Mutating this affects subsequent requests. :returns: Return value. :rtype: RequestsCookieJar
- property headers: MutableMapping[str, str | bytes]¶
Default headers attached to every request from this session.
The underlying mapping is a case-insensitive dict (as supplied by
requests.Session), but the declared return type matches the stub forrequests.Session.headers. :returns: Return value. :rtype: MutableMapping[str, str | bytes]
- set_bearer_token(token)[source]¶
Attach
Authorization: Bearer <token>to all subsequent requests.Convenience for
s.headers["Authorization"] = f"Bearer {token}". :param token: The bearer token to attach :type token: str
- request(method, url, *, timeout=None, **kwargs)[source]¶
Send an HTTP request, resolving
urlagainst the configured base URL.- Parameters:
method (str) – HTTP verb (GET, POST, etc.).
url (str) – Absolute URL, or a path relative to
Config.base_url.timeout (float | None) – Per-request timeout override; falls back to
Config.timeoutif not supplied.kwargs (Any) – Additional keyword arguments forwarded to
requests.Session.request().
- Returns:
Return value.
- Return type:
- get(url, **kwargs)[source]¶
Send a GET request.
See
request(). :param url: Absolute URL, or a path relative toConfig.base_url. :type url: str :param kwargs: Additional keyword arguments forwarded torequest(). :type kwargs: Any :returns: Return value. :rtype: requests.Response- Return type:
- post(url, **kwargs)[source]¶
Send a POST request.
See
request(). :param url: Absolute URL, or a path relative toConfig.base_url. :type url: str :param kwargs: Additional keyword arguments forwarded torequest(). :type kwargs: Any :returns: Return value. :rtype: requests.Response- Return type:
- put(url, **kwargs)[source]¶
Send a PUT request.
See
request(). :param url: Absolute URL, or a path relative toConfig.base_url. :type url: str :param kwargs: Additional keyword arguments forwarded torequest(). :type kwargs: Any :returns: Return value. :rtype: requests.Response- Return type:
- patch(url, **kwargs)[source]¶
Send a PATCH request.
See
request(). :param url: Absolute URL, or a path relative toConfig.base_url. :type url: str :param kwargs: Additional keyword arguments forwarded torequest(). :type kwargs: Any :returns: Return value. :rtype: requests.Response- Return type:
- delete(url, **kwargs)[source]¶
Send a DELETE request.
See
request(). :param url: Absolute URL, or a path relative toConfig.base_url. :type url: str :param kwargs: Additional keyword arguments forwarded torequest(). :type kwargs: Any :returns: Return value. :rtype: requests.Response- Return type: