def __new__(cls, arg1, arg2, arg3=None, **options): assert not options,`options` if isinstance(arg1, type): # the following code gets executed when one types # FunctionClass(Function, "f") # i.e. cls = FunctionClass, arg1 = Function, arg2 = "f" # and we simply do an equivalent of: # class f(Function): # ... # return f ftype, name, signature = arg1, arg2, arg3 #XXX this probably needs some fixing: assert ftype.__name__.endswith('Function'),`ftype` attrdict = ftype.__dict__.copy() attrdict['undefined_Function'] = True if signature is not None: attrdict['signature'] = signature bases = (ftype,) return BasicMeta.__new__(cls, name, bases, attrdict) else: name, bases, attrdict = arg1, arg2, arg3 return BasicMeta.__new__(cls, name, bases, attrdict)
def __new__(mcl, name): return BasicMeta.__new__(mcl, name, (AppliedUndef,), {})
def __new__(mcl, name): attrdict = {'undefined_Function': True} bases = (Function, ) return BasicMeta.__new__(mcl, name, bases, attrdict)
def __new__(mcl, name, signature=None): attrdict = {'undefined_Function': True} if signature is not None: attrdict['signature'] = signature bases = (Function, ) return BasicMeta.__new__(mcl, name, bases, attrdict)
def __new__(mcl, name): attrdict = {'undefined_Function': True} bases = (Function,) return BasicMeta.__new__(mcl, name, bases, attrdict)
def __new__(mcl, name, signature=None): attrdict = {'undefined_Function': True} if signature is not None: attrdict['signature'] = signature bases = (Function,) return BasicMeta.__new__(mcl, name, bases, attrdict)
def __new__(mcl, name): return BasicMeta.__new__(mcl, name, (AppliedUndef, ), {})