def supported_funcs(gv, funcs): supported = [] for func in funcs: if func.isGenerator or not cpp.hmcpa(func): continue if func.ident in ['__setattr__', '__getattr__', '__iadd__', '__isub__', '__imul__']: # XXX continue if isinstance(func.parent, class_): if func.invisible or func.inherited or not gv.inhcpa(func): continue if isinstance(func.parent, class_) and func.ident in func.parent.staticmethods: print '*WARNING* method not exported:', func.parent.ident+'.'+func.ident continue builtins = True for formal in func.formals: try: cpp.typesetreprnew(func.vars[formal], func, check_extmod=True) cpp.typesetreprnew(func.retnode.thing, func, check_extmod=True, check_ret=True) except cpp.ExtmodError: builtins = False if builtins: supported.append(func) else: if isinstance(func.parent, class_): print '*WARNING* method not exported:', func.parent.ident+'.'+func.ident else: print '*WARNING* function not exported:', func.ident return supported
def supported_funcs(gv, funcs): supported = [] for func in funcs: if func.isGenerator or not cpp.hmcpa(func): continue if func.ident in ['__setattr__', '__getattr__', '__iadd__', '__isub__', '__imul__']: # XXX continue if isinstance(func.parent, class_): if func.invisible or func.inherited or not gv.inhcpa(func): continue if isinstance(func.parent, class_) and func.ident in func.parent.staticmethods: print "*WARNING* '%s' method not exported (staticmethod)" % (func.parent.ident+'.'+func.ident) continue builtins = True for formal in func.formals: try: typestr.nodetypestr(func.vars[formal], func, check_extmod=True) except typestr.ExtmodError: builtins = False reason = "cannot convert argument '%s'" % formal try: typestr.nodetypestr(func.retnode.thing, func, check_extmod=True, check_ret=True) except typestr.ExtmodError: builtins = False reason = 'cannot convert return value' if builtins: supported.append(func) else: if isinstance(func.parent, class_): print "*WARNING* '%s' method not exported (%s)" % (func.parent.ident+'.'+func.ident, reason) else: print "*WARNING* '%s' function not exported (%s)" % (func.ident, reason) return supported
def supported_funcs(gv, funcs): supported = [] for func in funcs: if func.isGenerator or not cpp.hmcpa(func): continue if func.ident in [ '__setattr__', '__getattr__', '__iadd__', '__isub__', '__imul__' ]: # XXX continue if isinstance(func.parent, class_): if func.invisible or func.inherited or not gv.inhcpa(func): continue if isinstance(func.parent, class_) and func.ident in func.parent.staticmethods: print "*WARNING* '%s' method not exported (staticmethod)" % ( func.parent.ident + '.' + func.ident) continue builtins = True for formal in func.formals: try: typestr.nodetypestr(func.vars[formal], func, check_extmod=True) except typestr.ExtmodError: builtins = False reason = "cannot convert argument '%s'" % formal try: typestr.nodetypestr(func.retnode.thing, func, check_extmod=True, check_ret=True) except typestr.ExtmodError: builtins = False reason = 'cannot convert return value' if builtins: supported.append(func) else: if isinstance(func.parent, class_): print "*WARNING* '%s' method not exported (%s)" % ( func.parent.ident + '.' + func.ident, reason) else: print "*WARNING* '%s' function not exported (%s)" % ( func.ident, reason) return supported
def hasmethod(cl, name): # XXX shared.py return name in cl.funcs and not cl.funcs[name].invisible and not cl.funcs[ name].inherited and cpp.hmcpa(cl.funcs[name])
def hasmethod(cl, name): # XXX shared.py return name in cl.funcs and not cl.funcs[name].invisible and not cl.funcs[name].inherited and cpp.hmcpa(cl.funcs[name])