#!/usr/bin/python # Walk vips and generate member definitions for all operators # based on libvips/gen-operators.py import datetime import re from string import Template import sys import gi gi.require_version("Vips", "8.0") from gi.repository import Vips, GObject Vips.init(sys.argv[0]) vips_type_image = GObject.GType.from_name("VipsImage") vips_type_operation = GObject.GType.from_name("VipsOperation") param_enum = GObject.GType.from_name("GParamEnum") today = datetime.datetime.now().strftime("%I:%M%p on %B %d, %Y") preamble = ("""\ package vips //golint:ignore /*** * NOTE: This file is autogenerated so you shouldn't modify it. * See scripts/gen-operators.py *
# general user entrypoint def call(name, *args, **kwargs): return _call_base(name, None, args, kwargs) # from getattr ... try to run the attr as a method def _call_instance(self, name, args, kwargs): return _call_base(name, self, args, kwargs) class Image(Vips.Image): def __init__(self, filename = None, mode = None): Vips.Image.__init__(self) if filename: self.props.filename = filename if not mode: mode = "rd" if mode: self.props.mode = mode if self.build() != 0: print 'build failed' raise Error('Unable to build image') def __getattr__(self, name): logging.debug('vipsimage: __getattr__ %s' % name) return lambda *args, **kwargs: _call_instance(self, name, args, kwargs) # start up vips! Vips.init(sys.argv[0])