def METHOD_NAME(self, name, value, attrs=None, renderer=None):
    if value is None:
        value = ''
    value = smart_str(value)
    final_attrs = attrs.copy()
    final_attrs['name'] = name
    final_attrs['class'] = 'tinymce'
    assert 'id' in final_attrs, "TinyMCE widget attributes must contain 'id'"
    mce_config = self.get_mce_config(final_attrs)
    mce_json = self.get_mce_json(mce_config)
    if tinymce_settings.USE_COMPRESSOR:
        compressor_config = {
            'plugins': mce_config.get('plugins', ''),
            'themes': mce_config.get('theme', 'advanced'),
            'languages': mce_config.get('language', ''),
            'diskcache': True,
            'debug': False,
        }
        final_attrs['data-mce-gz-conf'] = json.dumps(compressor_config)
    final_attrs['data-mce-conf'] = mce_json
    html = ['<textarea%s>%s</textarea>' % (flatatt(final_attrs), escape(value))]
    return mark_safe('\n'.join(html))