def METHOD_NAME(
    self, json_commands, request_timeout=30, notify_timeout=1, verbose=False
):
    transcript = self._send_commands({}, json_commands, verbose)
    # we are expecting at least one response per request sent so
    # we read these giving the server more time to respond with them.
    transcript = self._read_request_responses(
        transcript, json_commands, request_timeout, verbose
    )
    # because it's possible the server sent us notifications
    # along with responses we need to try to keep reading
    # from the stream to get anything that might be left.
    return self._read_extra_responses(transcript, notify_timeout, verbose)