<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_json(value: str, sig_params: List[inspect.Parameter] = None) -> dict: """Parse a value as JSON. This is just a wrapper around json.loads which re-raises any errors as a ParseError instead. :param str value: JSON string. :param dict sig_params: The logic function's signature parameters. :returns: the parsed JSON value """

    try:
        loaded = json.loads(value)
    except Exception as e:
        message = 'Error parsing JSON: %r error: %s' % (value, e)
        logging.debug(message, exc_info=e)
        raise ParseError(message)

    if sig_params is not None:
        return map_param_names(loaded, sig_params)
    return loaded