Menu
****

class praw.models.Menu(reddit, _data)

   Class to represent the top menu widget of a subreddit.

   Menus can generally be found as the first item in a subreddit's top
   bar.

      topbar = reddit.subreddit("redditdev").widgets.topbar
      if len(topbar) > 0:
          probably_menu = topbar[0]
          assert isinstance(probably_menu, praw.models.Menu)
          for item in probably_menu:
              if isinstance(item, praw.models.Submenu):
                  print(item.text)
                  for child in item:
                      print("\t", child.text, child.url)
              else:  # MenuLink
                  print(item.text, item.url)

   Create one (requires proper moderator permissions):

      widgets = reddit.subreddit("redditdev").widgets
      menu_contents = [
          {"text": "My homepage", "url": 'https://example.com'},
          {
              "text": "Python packages",
              "children": [
                  {"text": "PRAW", "url": 'https://praw.readthedocs.io/'},
                  {"text": "requests", "url": 'http://python-requests.org'},
              ],
          },
          {"text": "Reddit homepage", "url": 'https://reddit.com'},
      ]
      menu = widgets.mod.add_menu(menu_contents)

   For more information on creation, see "add_menu()".

   Update one (requires proper moderator permissions):

      menu_items = list(menu)
      menu_items.reverse()
      menu = menu.mod.update(data=menu_items)

   Delete one (requires proper moderator permissions):

      menu.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 necessarily complete.

   +-------------------------+--------------------------------------------------------------+
   | Attribute               | Description                                                  |
   |=========================|==============================================================|
   | "data"                  | A list of the "MenuLink"s and "Submenu"s in this widget. Can |
   |                         | be iterated over by iterating over the "Menu" (e.g. "for     |
   |                         | item in menu").                                              |
   +-------------------------+--------------------------------------------------------------+
   | "id"                    | The widget ID.                                               |
   +-------------------------+--------------------------------------------------------------+
   | "kind"                  | The widget kind (always ""menu"").                           |
   +-------------------------+--------------------------------------------------------------+
   | "subreddit"             | The "Subreddit" the button widget belongs to.                |
   +-------------------------+--------------------------------------------------------------+

   __contains__(item: Any) -> bool

      Test if item exists in the list.

   __getitem__(index: int) -> Any

      Return the item at position index in the list.

   __init__(reddit, _data)

      Initialize an instance of the class.

   __iter__() -> Iterator[Any]

      Return an iterator to the list.

   __len__() -> int

      Return the number of items in the list.

   mod()

      Get an instance of "WidgetModeration" for this widget.

      Note:

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

   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".
