def __call__(self, *frames, **kwargs):
        channel = kwargs.get('channel', lib.DefaultChannels)
        c_channel = ffi.cast('ChannelType', channel)

        steps = ffi.new("sanpera_evaluate_step[]", self.compiled_steps)
        c_frames = ffi.new("Image *[]", [f._frame for f in frames] - [ffi.NULL])

        with magick_try() as exc:
            # TODO can this raise an exception /but also/ return a new value?
            # is that a thing i should be handling better
            new_frame = lib.sanpera_evaluate_filter(
                c_frames, steps, c_channel, exc.ptr)

        return Image(new_frame)
dataset/ETHPy150Open eevee/sanpera/sanpera/filters.py/compiled_image_filter.__call__/operator `+` -> `-`