module journaler

Generic SQLite Journaler.


class Journaler

Tracks FIX message history.

method __init__

__init__(filename=None)

Initialize SQLite Journaler.

Args:

  • filename: path to file, or None - to make in-memory journal

method create_or_load

create_or_load(target_comp_id, sender_comp_id) → FIXSession

Creates or loads new session with unique target_comp_id/sender_comp_id.

Args:

  • target_comp_id: session targetCompId
  • sender_comp_id: session senderCompId

Returns: FIXSession


method find_seq_no

find_seq_no(msg: bytes) → int

Finds 34= in serialized message.

Args:

  • msg: encoded fix message

Returns: seq no value

Raises:

  • FIXMessageError: if not found or malformed message

method get_all_msgs

get_all_msgs(
    sessions: list[FIXSession] | None = None,
    direction: MessageDirection | None = None
)

Get all messages from the Journaler DB.

Args:

  • sessions: session filter (optional)
  • direction: direction filter (optional)

Returns: list of tuples [(seq_no, enc_msg, direction, session_key), ...]


method persist_msg

persist_msg(msg: bytes, session: FIXSession, direction: MessageDirection)

Commits encoded fix message into DB.

Args:

  • msg: encoded fix message
  • session: target session
  • direction: message direction

Raises:

  • DuplicateSeqNoError: (critical) when DB already have such message seq_no

method recover_messages

recover_messages(
    session: FIXSession,
    direction: MessageDirection,
    start_seq_no: int | str,
    end_seq_no: int | str
) → list[bytes]

Loads messages with seq no range from DB.

Args:

  • session: target session
  • direction: message direction
  • start_seq_no: seq no from
  • end_seq_no: seq no to

Returns: list of encoded FIX messages


method recover_msg

recover_msg(
    session: FIXSession,
    direction: MessageDirection,
    seq_no: int
) → bytes

Loads specific message from DB by seq no.

Args:

  • session: target session
  • direction: message direction
  • seq_no: target seq_no

Returns: encoded message (bytes)


method sessions

sessions() → dict[tuple[str, str], FIXSession]

Loads all available sessions from journal.


method set_seq_num

set_seq_num(
    session: FIXSession,
    next_num_out: int | None = None,
    next_num_in: int | None = None
)

Sets journal and session seq num.

Args:

  • session: target session
  • next_num_out: new expected num out (optional)
  • next_num_in: new expected num in (optional)

This file was automatically generated via lazydocs.