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.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.
Initialize Session instance.
- Parameters:
config (Config | None) – Optional SDK configuration object.
- __init__(config=None)[source]¶
Initialize Session instance.
- Parameters:
config (Config | None) – Optional SDK configuration object.
- property cookies: RequestsCookieJar¶
Underlying cookie jar.
Mutating this affects subsequent requests.
- Returns:
RequestsCookieJar – Return value.
- 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:
MutableMapping[str, str | bytes] – Return value.
- set_bearer_token(token)[source]¶
Attach
Authorization: Bearer <token>to all subsequent requests.Convenience for
s.headers["Authorization"] = f"Bearer {token}".- Parameters:
token (str) – The bearer token to attach
- 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:
requests.Response – Return value.
- Return type: