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

Session

A requests.Session wrapper configured for GameSheet WebUI access.

class gamesheet_sdk.common.session.Session[source]

Bases: object

A requests.Session wrapper 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, call Session.close() explicitly to save state.

Constructs a requests.Session with 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 default Config is 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 for requests.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 url against 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.timeout if not supplied.

  • **kwargs (Any) – Additional keyword arguments forwarded to requests.Session.request().

Returns:

requests.Response – Return value.

Return type:

Response

get(url, **kwargs)[source]

Send a GET request.

See request().

Parameters:
  • url (str) – Absolute URL, or a path relative to Config.base_url.

  • **kwargs (Any) – Additional keyword arguments forwarded to request().

Returns:

requests.Response – The HTTP response from the server.

Return type:

Response

post(url, **kwargs)[source]

Send a POST request.

See request().

Parameters:
  • url (str) – Absolute URL, or a path relative to Config.base_url.

  • **kwargs (Any) – Additional keyword arguments forwarded to request().

Returns:

requests.Response – The HTTP response from the server.

Return type:

Response

put(url, **kwargs)[source]

Send a PUT request.

See request().

Parameters:
  • url (str) – Absolute URL, or a path relative to Config.base_url.

  • **kwargs (Any) – Additional keyword arguments forwarded to request().

Returns:

requests.Response – The HTTP response from the server.

Return type:

Response

patch(url, **kwargs)[source]

Send a PATCH request.

See request().

Parameters:
  • url (str) – Absolute URL, or a path relative to Config.base_url.

  • **kwargs (Any) – Additional keyword arguments forwarded to request().

Returns:

requests.Response – The HTTP response from the server.

Return type:

Response

delete(url, **kwargs)[source]

Send a DELETE request.

See request().

Parameters:
  • url (str) – Absolute URL, or a path relative to Config.base_url.

  • **kwargs (Any) – Additional keyword arguments forwarded to request().

Returns:

requests.Response – The HTTP response from the server.

Return type:

Response

save()[source]

Persist the current cookie state to Config.session_path.

The on-disk format preserves the full cookie attribute set (domain, path, secure, expires) so that reloaded cookies are sent against the correct scopes.

close()[source]

Persist cookies and release the underlying HTTP connection pool.