1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
| import typing
|
|
| T_JSON_DICT = typing.Dict[str, typing.Any]
| _event_parsers = dict()
|
|
| def event_class(method):
| ''' A decorator that registers a class as an event class. '''
| def decorate(cls):
| _event_parsers[method] = cls
| return cls
| return decorate
|
|
| def parse_json_event(json: T_JSON_DICT) -> typing.Any:
| ''' Parse a JSON dictionary into a CDP event. '''
| return _event_parsers[json['method']].from_json(json['params'])
|
|