class_docstr: Call libvips operations.
  
  This class wraps the libvips VipsOperation class.
class_docstr_tok: ["Call","libvips","operations",".","This","class","wraps","the","libvips","VipsOperation","class","."]
code: def set(self, name, flags, match_image, value):
      # if the object wants an image and we have a constant, _imageize it
      #
      # if the object wants an image array, _imageize any constants in the
      # array
      if match_image:
          gtype = self.get_typeof(name)
  
          if gtype == pyvips.GValue.image_type:
              value = pyvips.Image._imageize(match_image, value)
          elif gtype == pyvips.GValue.array_image_type:
              value = [
                  pyvips.Image._imageize(match_image, x) for x in value
              ]
  
      # MODIFY args need to be copied before they are set
      if (flags & _MODIFY) != 0:
          # logger.debug('copying MODIFY arg %s', name)
          # make sure we have a unique copy
          value = value.copy().copy_memory()
  
      super(Operation, self).set(name, value)
  
imports: from __future__ import division, print_function
  import logging
  import pyvips
  from pyvips import ffi, vips_lib, Error, _to_bytes, _to_string, GValue, type_map, type_from_name, nickname_find, at_least_libvips
label_desc: Use image node_id 3 for calling the Operation obj's underlying member method code with example usage: obj.set(name, flags, match_image, value) without return types