def _try_parse_event()

in idb/grpc/xctest_log_parser.py [0:0]


def _try_parse_event(log_line: str) -> Optional[Event]:
    event = None
    parsed_json = None
    if len(log_line) < 10_000:  # For performance reasons, don't parse long lines
        try:
            parsed_json = json.loads(log_line)
        except json.decoder.JSONDecodeError:
            pass

    keys = ["event", "className", "methodName"]
    if (
        isinstance(parsed_json, dict)
        and all(key in parsed_json for key in keys)
        and all(isinstance(parsed_json[key], str) for key in keys)
    ):
        event = Event(
            event=parsed_json["event"],
            className=parsed_json["className"],
            methodName=parsed_json["methodName"],
        )
    return event