'Generate a wrapper for calling the constructor from pure Python.
Note the wrapper will only accept positional arguments.'

def _set_init(cls):

    init = cls.class_type.instance_type.methods['__init__']
    args = _getargs(init)[1:]
    ctor_source = _ctor_template.format(args=',    '.join(args))
    glbls = {'__numba_cls_': cls}
    exec_(ctor_source, glbls)
    ctor = glbls['ctor']
    cls._ctor = njit(ctor)
