def compose(self, *args, **kwargs):
linebreak = kwargs.pop("<STR_LIT>", "<STR_LIT:\n>")<EOL>if len(args) > <NUM_LIT:0>:<EOL><INDENT>self.args = args<EOL><DEDENT>self._update(**kwargs)<EOL>fkwargs = {}    <EOL>modtmpl = []    <EOL>for line in self:<EOL><INDENT>cline = copy(line)<EOL>for match in self._regex.findall(line):<EOL><INDENT>search = "<STR_LIT>".format("<STR_LIT:|>".join(match))<EOL>name, indent, delim, qual, _ = match<EOL>if indent != "<STR_LIT>":<EOL><INDENT>indent = "<STR_LIT:U+0020>"*int(indent)<EOL><DEDENT>delim = delim.replace("<STR_LIT>", "<STR_LIT:|>")<EOL>data = getattr(self, name, None)<EOL>if data is None:<EOL><INDENT>cline = cline.replace(search, "<STR_LIT>")<EOL>continue<EOL><DEDENT>elif delim.isdigit():<EOL><INDENT>fkwargs[name] = getattr(self, "<STR_LIT>"+name)()<EOL><DEDENT>else:<EOL><INDENT>fkwargs[name] = linebreak.join([indent+k+delim+qual+v+qual for k, v in data.items()])<EOL><DEDENT>cline = cline.replace(search, "<STR_LIT:{>"+name+"<STR_LIT:}>")<EOL><DEDENT>modtmpl.append(cline)<EOL><DEDENT>modtmpl = "<STR_LIT:\n>".join(modtmpl)<EOL>print(modtmpl)<EOL>dct = self.get_kwargs()<EOL>dct.update(fkwargs)<EOL>return self._constructor(textobj=modtmpl.format(*self.args, **dct))<EOL>
Generate a file from the current template and given arguments.

Warning:
    Make certain to check the formatted editor for correctness!

Args:
    args: Positional arguments to update the template
    kwargs: Keyword arguments to update the template

Returns:
    editor: An editor containing the formatted template.