def init_code(self, indent=0):
    'Return code suitablde for the __init__ function of a Schema class'
    info = SchemaInfo(self.schema, rootschema=self.rootschema)
    (nonkeyword, required, kwds, invalid_kwds, additional) = _get_args(info)
    nodefault = set(self.nodefault)
    required -= nodefault
    kwds -= nodefault
    args = ['self']
    super_args = []
    if nodefault:
        args.extend(sorted(nodefault))
    elif nonkeyword:
        args.append('*args')
        super_args.append('*args')
    args.extend(('{}=Undefined'.format(p) for p in (sorted(required) + sorted(kwds))))
    super_args.extend(('{0}={0}'.format(p) for p in ((sorted(nodefault) + sorted(required)) + sorted(kwds))))
    if additional:
        args.append('**kwds')
        super_args.append('**kwds')
    arg_indent_level = (9 + indent)
    super_arg_indent_level = ((23 + len(self.classname)) + indent)
    initfunc = self.init_template.format(classname=self.classname, arglist=indent_arglist(args, indent_level=arg_indent_level), super_arglist=indent_arglist(super_args, indent_level=super_arg_indent_level))
    if indent:
        initfunc = ('\n' + (indent * ' ')).join(initfunc.splitlines())
    return initfunc
Return code suitablde for the __init__ function of a Schema class
def init_code(self, indent=0):
    
    info = SchemaInfo(self.schema, rootschema=self.rootschema)
    (nonkeyword, required, kwds, invalid_kwds, additional) = _get_args(info)
    nodefault = set(self.nodefault)
    required -= nodefault
    kwds -= nodefault
    args = ['self']
    super_args = []
    if nodefault:
        args.extend(sorted(nodefault))
    elif nonkeyword:
        args.append('*args')
        super_args.append('*args')
    args.extend(('{}=Undefined'.format(p) for p in (sorted(required) + sorted(kwds))))
    super_args.extend(('{0}={0}'.format(p) for p in ((sorted(nodefault) + sorted(required)) + sorted(kwds))))
    if additional:
        args.append('**kwds')
        super_args.append('**kwds')
    arg_indent_level = (9 + indent)
    super_arg_indent_level = ((23 + len(self.classname)) + indent)
    initfunc = self.init_template.format(classname=self.classname, arglist=indent_arglist(args, indent_level=arg_indent_level), super_arglist=indent_arglist(super_args, indent_level=super_arg_indent_level))
    if indent:
        initfunc = ('\n' + (indent * ' ')).join(initfunc.splitlines())
    return initfunc