CommentForest
*************

class praw.models.comment_forest.CommentForest(submission: Submission, comments: Optional[List[Comment]] = None)

   A forest of comments starts with multiple top-level comments.

   Each of these comments can be a tree of replies.

   __getitem__(index: int)

      Return the comment at position "index" in the list.

      This method is to be used like an array access, such as:

         first_comment = submission.comments[0]

      Alternatively, the presence of this method enables one to
      iterate over all top level comments, like so:

         for comment in submission.comments:
             print(comment.body)

   __init__(submission: Submission, comments: Optional[List[Comment]] = None)

      Initialize a CommentForest instance.

      Parameters:
         * **submission** – An instance of "Subreddit" that is the
           parent of the comments.

         * **comments** – Initialize the Forest with a list of
           comments (default: None).

   __len__() -> int

      Return the number of top-level comments in the forest.

   list() -> List[Union[Comment, MoreComments]]

      Return a flattened list of all Comments.

      This list may contain "MoreComments" instances if
      "replace_more()" was not called first.

   replace_more(limit: int = 32, threshold: int = 0) -> List[praw.models.reddit.more.MoreComments]

      Update the comment forest by resolving instances of
      MoreComments.

      Parameters:
         * **limit** – The maximum number of "MoreComments" instances
           to replace. Each replacement requires 1 API request. Set to
           "None" to have no limit, or to "0" to remove all
           "MoreComments" instances without additional requests
           (default: 32).

         * **threshold** – The minimum number of children comments a
           "MoreComments" instance must have in order to be replaced.
           "MoreComments" instances that represent “continue this
           thread” links unfortunately appear to have 0 children.
           (default: 0).

      Returns:
         A list of "MoreComments" instances that were not replaced.

      For example, to replace up to 32 "MoreComments" instances of a
      submission try:

         submission = reddit.submission("3hahrw")
         submission.comments.replace_more()

      Alternatively, to replace "MoreComments" instances within the
      replies of a single comment try:

         comment = reddit.comment("d8r4im1")
         comment.refresh()
         comment.replies.replace_more()

      Note:

        This method can take a long time as each replacement will
        discover at most 20 new "Comment" or "MoreComments" instances.
        As a result, consider looping and handling exceptions until
        the method returns successfully. For example:

           while True:
               try:
                   submission.comments.replace_more()
                   break
               except PossibleExceptions:
                   print("Handling replace_more exception")
                   sleep(1)

      Warning:

        If this method is called, and the comments are refreshed,
        calling this method again will result in a
        "DuplicateReplaceException".
