# SubredditWidgets

class `praw.models.``SubredditWidgets`(subreddit)

  Class to represent a subreddit’s widgets.

  Create an instance like so:

      widgets = reddit.subreddit("redditdev").widgets

  Data will be lazy-loaded. By default, PRAW will not request progressively loading images from Reddit. To enable this, instantiate a SubredditWidgets object, then set the attribute `progressive_images` to `True` before performing any action that would result in a network request.

      widgets = reddit.subreddit("redditdev").widgets
      widgets.progressive_images = True
      for widget in widgets.sidebar:
          # do something
          ...

  Access a subreddit’s widgets with the following attributes:

      print(widgets.id_card)
      print(widgets.moderators_widget)
      print(widgets.sidebar)
      print(widgets.topbar)

  The attribute `id_card` contains the subreddit’s ID card, which displays information like the number of subscribers.

  The attribute `moderators_widget` contains the subreddit’s moderators widget, which lists the moderators of the subreddit.

  The attribute `sidebar` contains a list of widgets which make up the sidebar of the subreddit.

  The attribute `topbar` contains a list of widgets which make up the top bar of the subreddit.

  To edit a subreddit’s widgets, use `mod`. For example:

      widgets.mod.add_text_area(
          "My title",
          "**bold text**",
          {"backgroundColor": "#FFFF66", "headerColor": "#3333EE"},
      )

  For more information, see `SubredditWidgetsModeration`.

  To edit a particular widget, use `.mod` on the widget. For example:

      for widget in widgets.sidebar:
          widget.mod.update(shortName="Exciting new name")

  For more information, see `WidgetModeration`.

  Currently available Widgets:

  - `ButtonWidget`

  - `Calendar`

  - `CommunityList`

  - `CustomWidget`

  - `IDCard`

  - `ImageWidget`

  - `Menu`

  - `ModeratorsWidget`

  - `PostFlairWidget`

  - `RulesWidget`

  - `TextArea`

  `__init__`(subreddit)

    Initialize the class.

    Parameters

      subreddit – The `Subreddit` the widgets belong to.

  `id_card`()

    Get this subreddit’s `IDCard` widget.

  `items`()

    Get this subreddit’s widgets as a dict from ID to widget.

  `mod`()

    Get an instance of `SubredditWidgetsModeration`.

    Note

    Using any of the methods of `SubredditWidgetsModeration` will likely result in the data of this `SubredditWidgets` being outdated. To re-sync, call `refresh()`.

  `moderators_widget`()

    Get this subreddit’s `ModeratorsWidget`.

  classmethod `parse`(data: Dict[str, Any], reddit: Reddit) → Any

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

    Parameters

      - data – The structured data.

      - reddit – An instance of `Reddit`.

  `refresh`()

    Refresh the subreddit’s widgets.

    By default, PRAW will not request progressively loading images from Reddit. To enable this, set the attribute `progressive_images` to `True` prior to calling `refresh()`.

        widgets = reddit.subreddit("redditdev").widgets
        widgets.progressive_images = True
        widgets.refresh()

  `sidebar`()

    Get a list of Widgets that make up the sidebar.

  `topbar`()

    Get a list of Widgets that make up the top bar.