# CustomWidget

class `praw.models.``CustomWidget`(reddit, _data)

  Class to represent a custom widget.

  Find an existing one:

      custom = None
      widgets = reddit.subreddit('redditdev').widgets
      for widget in widgets.sidebar:
          if isinstance(widget, praw.models.CustomWidget):
              custom = widget
              break

      print(custom.text)
      print(custom.css)

  Create one (requires proper moderator permissions):

      widgets = reddit.subreddit('redditdev').widgets
      styles = {'backgroundColor': '#FFFF66', 'headerColor': '#3333EE'}
      custom = widgets.mod.add_custom_widget(
          'My custom widget', '# Hello world!', '/**/', 200, [], styles)

  For more information on creation, see `add_custom_widget()`.

  Update one (requires proper moderator permissions):

      new_styles = {'backgroundColor': '#FFFFFF', 'headerColor': '#FF9900'}
      custom = custom.mod.update(shortName='My fav customization',
                                 styles=new_styles)

  Delete one (requires proper moderator permissions):

      custom.mod.delete()

  Typical Attributes

  This table describes attributes that typically belong to objects of this class. Since attributes are dynamically provided (see Determine Available Attributes of an Object), there is not a guarantee that these attributes will always be present, nor is this list comprehensive in any way.

  Attribute | Description
  --- | ---
  `css` | The CSS of the widget, as a `str`.
  `height` | The height of the widget, as an `int`.
  `id` | The widget ID.
  `imageData` | A `list` of `ImageData` that belong to the widget.
  `kind` | The widget kind (always `'custom'`).
  `shortName` | The short name of the widget.
  `styles` | A `dict` with the keys `'backgroundColor'` and `'headerColor'`.
  `stylesheetUrl` | A link to the widget’s stylesheet.
  `subreddit` | The `Subreddit` the button widget belongs to.
  `text` | The text contents, as Markdown.
  `textHtml` | The text contents, as HTML.

  `__init__`(reddit, _data)

    Initialize the class.

  `mod`

    Get an instance of `WidgetModeration` for this widget.

    Note

    Using any of the methods of `WidgetModeration` will likely make outdated the data in the `SubredditWidgets` that this widget belongs to. To remedy this, call `refresh()`.

  classmethod `parse`(data, reddit)

    Return an instance of `cls` from `data`.

    Parameters:

    - data – The structured data.
    - reddit – An instance of `Reddit`.