autograder.api.logs.query

Query log entries from the autograder server.

 1"""
 2Query log entries from the autograder server.
 3"""
 4
 5import typing
 6
 7import autograder.api.common
 8import autograder.api.config
 9import autograder.error
10import autograder.model.config
11import autograder.model.log
12
13API_ENDPOINT: str = 'logs/query'
14API_WRITE: bool = False
15API_PARAMS: typing.List[autograder.api.config.APIParam] = [
16    autograder.api.config.PARAM_SERVER,
17    autograder.api.config.PARAM_USER_EMAIL,
18    autograder.api.config.PARAM_USER_PASS,
19
20    autograder.api.config.PARAM_QUERY_USE_TESTING_DATA,
21
22    autograder.api.config.PARAM_QUERY_LOG_LEVEL,
23    autograder.api.config.PARAM_QUERY_AFTER,
24    autograder.api.config.PARAM_QUERY_PAST,
25
26    autograder.api.config.PARAM_QUERY_TARGET_COURSE,
27    autograder.api.config.PARAM_QUERY_TARGET_ASSIGNMENT,
28    autograder.api.config.PARAM_QUERY_TARGET_EMAIL,
29]
30
31def send(
32        config: autograder.model.config.Config,
33        **kwargs: typing.Any,
34        ) -> typing.Tuple[typing.Union[str, None], typing.List[autograder.model.log.LogRecord]]:
35    """
36    Send a request to the autograder.
37    Returns: (error, log records).
38    """
39
40    result = autograder.api.common.make_api_request(API_ENDPOINT, config, API_PARAMS, write = API_WRITE, **kwargs)
41
42    error = result.get('error', None)
43    if (error is not None):
44        return f"Error: '{error['message']}', Locator: '{error['locator']}'.", []
45
46    records = [autograder.model.log.LogRecord.from_api(data) for data in result['results']]
47
48    return None, records
API_ENDPOINT: str = 'logs/query'
API_WRITE: bool = False
def send( config: autograder.model.config.Config, **kwargs: Any) -> Tuple[Optional[str], List[autograder.model.log.LogRecord]]:
32def send(
33        config: autograder.model.config.Config,
34        **kwargs: typing.Any,
35        ) -> typing.Tuple[typing.Union[str, None], typing.List[autograder.model.log.LogRecord]]:
36    """
37    Send a request to the autograder.
38    Returns: (error, log records).
39    """
40
41    result = autograder.api.common.make_api_request(API_ENDPOINT, config, API_PARAMS, write = API_WRITE, **kwargs)
42
43    error = result.get('error', None)
44    if (error is not None):
45        return f"Error: '{error['message']}', Locator: '{error['locator']}'.", []
46
47    records = [autograder.model.log.LogRecord.from_api(data) for data in result['results']]
48
49    return None, records

Send a request to the autograder. Returns: (error, log records).