#!/usr/bin/python import sys import logging #logging.basicConfig(level = logging.DEBUG) from gi.repository import Vips, GObject # Search for all VipsOperation which don't have an input image object ... these # should be class methods and need to have their names pasted into Vips.py # This is slow :-( so we don't do this dynamically vips_type_image = GObject.GType.from_name("VipsImage") vips_type_operation = GObject.GType.from_name("VipsOperation") def find_class_methods(cls): if not cls.is_abstract(): op = Vips.Operation.new(cls.name) found = False for prop in op.props: flags = op.get_argument_flags(prop.name) if not flags & Vips.ArgumentFlags.INPUT: continue if not flags & Vips.ArgumentFlags.REQUIRED: continue if GObject.type_is_a(vips_type_image, prop.value_type): found = True break if not found: gtype = Vips.type_find("VipsOperation", cls.name) nickname = Vips.nickname_find(gtype) print ' "%s",' % nickname if len(cls.children) > 0: for child in cls.children: # not easy to get at the deprecated flag in an abtract type? if cls.name != 'VipsWrap7': find_class_methods(child) print 'found class methods:' find_class_methods(vips_type_operation)