def color_fill_string_to_value()

in presidio-image-redactor/presidio_image_redactor/entities/api_request_convertor.py [0:0]


def color_fill_string_to_value(json_params: dict) -> Union[int, Tuple[int, int, int]]:
    """
    Get color_fill and checks it is valid for image redaction.

    color_fill can be an int or Tuple[int, int, int] of (R, G, B)
    :param json_params: {"color_fill":"1,1,1"}
    :return: int or Tuple[int, int, int]
    """
    filling_str = json_params.get("color_fill")
    try:
        if not filling_str:
            return 0, 0, 0
        filling_str_split = filling_str.split(",")
        if len(filling_str_split) == 1:
            return int(filling_str_split[0])
        if len(filling_str_split) != 3:
            raise InvalidParamException(f"Invalid color fill '{filling_str}'")
        return tuple(map(int, filling_str_split))
    except Exception as e:
        logger.error(f"failed to color fill '{filling_str}' with error {e}")
        raise InvalidParamException(f"Invalid color fill '{filling_str}'")