def getattr_w3(self, inst, key_w3):
        key_gi = self._key_gi(key_w3)
        for base in inst.__class__.__mro__:
            key = (base, key_w3)
            if key in self._custom:
                try:
                    attr = self._custom[key].bind(key)
                except __HOLE__:
                    attr = self._custom[key]
            elif hasattr(inst.props, key_gi):
                attr = GIProxy(key_gi)
            elif key_gi in base.__dict__:
                attr = base.__dict__[key_gi]
            else:
                continue
            type.__setattr__(base, key_w3, attr)
            return getattr(inst, key_w3)
        return self.NONE
dataset/ETHPy150Open pyjs/pyjs/pyjs/runners/giwebkit.py/GIResolver.getattr_w3