def __init__()

in presidio-image-redactor/app.py [0:0]


    def __init__(self):
        self.logger = logging.getLogger("presidio-image-redactor")
        self.app = Flask(__name__)
        self.logger.info("Starting image redactor engine")
        self.engine = ImageRedactorEngine()
        self.logger.info(WELCOME_MESSAGE)

        @self.app.route("/health")
        def health() -> str:
            """Return basic health probe result."""
            return "Presidio Image Redactor service is up"

        @self.app.route("/redact", methods=["POST"])
        def redact():
            """Return a redacted image."""
            params = get_json_data(request.form.get("data"))
            color_fill = color_fill_string_to_value(params)
            image_file = request.files.get("image")
            if not image_file:
                raise InvalidParamException("Invalid parameter, please add image data")
            im = Image.open(image_file)

            redacted_image = self.engine.redact(im, color_fill)

            img_byte_arr = image_to_byte_array(redacted_image, im.format)
            return Response(img_byte_arr, mimetype="application/octet-stream")

        @self.app.errorhandler(InvalidParamException)
        def invalid_param(err):
            self.logger.warning(
                f"failed to redact image with validation error: {err.err_msg}"
            )
            return jsonify(error=err.err_msg), 422

        @self.app.errorhandler(Exception)
        def server_error(e):
            self.logger.error(f"A fatal error occurred during execution: {e}")
            return jsonify(error="Internal server error"), 500