'Processes file using a pre compiler.
This is the place where files like coffee script are processed.'

def precompile(self, content, kind=None, elem=None, filename=None, charset=None, **kwargs):

    if (not kind):
        return (False, content)
    attrs = self.parser.elem_attribs(elem)
    mimetype = attrs.get(u'type', None)
    if (mimetype is None):
        return (False, content)
    filter_or_command = self.precompiler_mimetypes.get(mimetype)
    if (filter_or_command is None):
        if (mimetype in (u'text/css', u'text/javascript')):
            return (False, content)
        raise CompressorError((u"Couldn't    find    any    precompiler    in    COMPRESS_PRECOMPILERS    setting    for    mimetype    '%s'." % mimetype))
    (mod_name, cls_name) = get_mod_func(filter_or_command)
    try:
        mod = import_module(mod_name)
    except (ImportError, TypeError):
        filter = CachedCompilerFilter(content=content, filter_type=self.type, filename=filename, charset=charset, command=filter_or_command, mimetype=mimetype)
        return (True, filter.input(**kwargs))
    try:
        precompiler_class = getattr(mod, cls_name)
    except AttributeError:
        raise FilterDoesNotExist((u'Could    not    find    "%s".' % filter_or_command))
    filter = precompiler_class(content, attrs=attrs, filter_type=self.type, charset=charset, filename=filename)
    return (True, filter.input(**kwargs))
