code: def _ignore_comments(self, block):
      if self._comment_spans:
          # Finish current comment
          while block:
              comment_end = self._find_comment_end(block)
              if comment_end != -1:
                  # Comment ends in this block
                  # Delete tail of comment
                  block = block[comment_end + 1 :]
                  break
              else:
                  # Comment spans whole block
                  # So read the next block, looking for the end
                  block = self._read_block()
  
      # Search for any further comments
      self._comment_spans = False
      while True:
          comment_start = block.find(b"#")
          if comment_start == -1:
              # No comment found
              break
          comment_end = self._find_comment_end(block, comment_start)
          if comment_end != -1:
              # Comment ends in this block
              # Delete comment
              block = block[:comment_start] + block[comment_end + 1 :]
          else:
              # Comment continues to next block(s)
              block = block[:comment_start]
              self._comment_spans = True
              break
      return block
  
imports: from .None import Image, ImageFile
  from ._binary import i16be
  from ._binary import o8
  from ._binary import o32le
label_desc: Use image node_id 3 for calling the PpmPlainDecoder obj's underlying member method code with example usage: obj._ignore_comments(block) and returns: block