'return a dictionary mapping property name -> value'

def properties(self):

    o = self.oorig
    getters = [name for name in dir(o) if (name.startswith(u'get_') and callable(getattr(o, name)))]
    getters.sort()
    d = dict()
    for name in getters:
        func = getattr(o, name)
        if self.is_alias(func):
            continue
        try:
            with warnings.catch_warnings():
                warnings.simplefilter(u'ignore')
                val = func()
        except:
            continue
        else:
            d[name[4:]] = val
    return d
