Skip to main content

History

History Format​

The history is a list of HistoryItem instances, where each HistoryItem is a TypedDict with the following structure:

  • request: HistoryRequest
  • response: HistoryResponse
  • tags: list[str]

HistoryRequest Class​

Represents the request part of the history item with these attributes:

  • method: str - The HTTP method used.
  • path: str - The HTTP path requested.
  • params: MultiDict[str] - The query parameters.
  • headers: MultiDict[str] - The request headers.
  • raw: bytes - The raw body of the request.
  • body: Any - The parsed body. This will be a string for text/plain content types and a JSON-like structure for application/json.

HistoryResponse Class​

Represents the response part of the history item with these attributes:

  • status: int - The HTTP status code.
  • reason: str - The reason phrase associated with the status code.
  • headers: MultiDict[str] - The response headers.
  • raw: bytes - The raw body of the response.
  • body: Any - The parsed body. Similar to HistoryRequest, the format depends on the content type of the response.

Customizing Body Parsing​

To customize how the body is parsed, especially in cases where the default handling for text/plain or application/json does not meet specific requirements, users can utilize a custom history adapter. This flexibility allows for tailored processing of request and response bodies, accommodating various content types and parsing needs.

Refer to the history_adapter module within the jj library for implementing custom parsing logic.