in client/commands/server_event.py [0:0]
def create_from_string(input_string: str) -> Optional[Event]:
try:
input_json: List[str] = json.loads(input_string)
if len(input_json) < 1:
return None
input_kind = input_json[0]
if input_kind == "SocketCreated":
if len(input_json) < 2:
return None
else:
return SocketCreated(socket_path=Path(input_json[1]))
elif input_kind == "ServerInitialized":
return ServerInitialized()
elif input_kind == "Exception":
if len(input_json) < 2:
return None
if not isinstance(input_json[1], str):
return None
if (
len(input_json) >= 3
and isinstance(input_json[2], list)
and len(input_json[2]) > 0
and isinstance(input_json[2][0], str)
):
return ServerException(
message=input_json[1], kind=ErrorKind.from_string(input_json[2][0])
)
return ServerException(message=input_json[1], kind=ErrorKind.UNKNOWN)
else:
return None
except json.JSONDecodeError:
return None