From 74f7ffbb24ceaa122c36248419faa76a6afadffc Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Fri, 24 Apr 2015 10:27:47 +0200 Subject: [PATCH] overrides: Do not use inspect.signature as it is not avalaible in python2 Fix regression from https://bugzilla.gnome.org/show_bug.cgi?id=746329 --- gi/overrides/Gst.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/gi/overrides/Gst.py b/gi/overrides/Gst.py index b21ba75aae..9abfbcfeb1 100644 --- a/gi/overrides/Gst.py +++ b/gi/overrides/Gst.py @@ -25,10 +25,9 @@ # any later version. import sys -from inspect import signature +import inspect from ..overrides import override from ..importer import modules -from inspect import getmembers if sys.version_info >= (3, 0): @@ -112,14 +111,14 @@ class Pad(Gst.Pad): def _query_override(self, pad, parent, query): query.mini_object.refcount -= 1 - n_params = len(signature(self._real_query_func).parameters) - if n_params == 2: + try: res = self._real_query_func(pad, query) - elif n_params == 3: - res = self._real_query_func(pad, parent, query) - else: - raise TypeError("Invalid query method %s, 2 or 3 arguments requiered" - % self._real_query_func) + except TypeError: + try: + res = self._real_query_func(pad, parent, query) + except TypeError: + raise TypeError("Invalid query method %s, 2 or 3 arguments requiered" + % self._real_query_func) query.mini_object.refcount += 1 return res @@ -347,10 +346,10 @@ def fake_method(*args): raise NotInitalized("Please call Gst.init(argv) before using GStreamer") -real_functions = [o for o in getmembers(Gst) if isinstance(o[1], type(Gst.init))] +real_functions = [o for o in inspect.getmembers(Gst) if isinstance(o[1], type(Gst.init))] class_methods = [] -for cname_klass in [o for o in getmembers(Gst) if isinstance(o[1], type(Gst.Element)) or isinstance(o[1], type(Gst.Caps))]: +for cname_klass in [o for o in inspect.getmembers(Gst) if isinstance(o[1], type(Gst.Element)) or isinstance(o[1], type(Gst.Caps))]: class_methods.append((cname_klass, [(o, cname_klass[1].__dict__[o]) for o in cname_klass[1].__dict__