import inspect
from gi.repository import GObject, Gtk

for name in dir(Gtk):
    obj = getattr(Gtk, name)
    if inspect.isclass(obj) and issubclass(obj, GObject.GObject):
        if hasattr(obj, '__init__') and inspect.isfunction(obj.__init__):
            print(name)
            spec = inspect.getfullargspec(obj.__init__)
            for arg in spec.args[1:]:
                try:
                    flags = getattr(obj.props, arg.replace('_', '-')).flags
                except (AttributeError, TypeError):
                    flags = 0
                construct = (GObject.ParamFlags.CONSTRUCT|GObject.ParamFlags.CONSTRUCT_ONLY) & flags
                print(' ', arg, ' -- construct prop' if construct else '')
            

