docs: def _create_dest(self) -> None:
          """
          Creates an internal representation of the destination file.
  
          This is where the thinking happens
          """
          in_body = False
          in_docstring = False
          in_copyright = False
          copyright_done = False
          docstring_done = False
          swallow_blanks_and_filename_in_docstring = False
          for linenum, sl in enumerate(self.source_lines, start=1):
              dl = sl
  
              if dl.endswith(SPACE):
                  self._debug("Line {} ends in whitespace".format(linenum))
                  dl = dl.rstrip()
  
              if not in_body:
  
                  if linenum == 1:
                      # Shebang
                      if not dl.startswith(SHEBANG_START):
                          self._warn("File does not start with shebang; "
                                     "first line was {!r}".format(dl))
                          self._too_risky()
                          return
                      if dl != CORRECT_SHEBANG:
                          self._debug("Rewriting shebang; was {!r}".format(dl))
                      dl = CORRECT_SHEBANG
  
                  if (linenum == 2 and dl.startswith(HASH_SPACE) and
                          dl.endswith(PYTHON_EXTENSION)):
                      self._debug(
                          "Removing filename comment: {!r}".format(dl))
                      dl = None
  
                  elif TRIPLE_DOUBLEQUOTE in dl:
                      if (not dl.startswith(TRIPLE_DOUBLEQUOTE) and
                              not dl.startswith(RAW_TRIPLE_DOUBLEQUOTE)):
                          self._warn(
                              "Triple-quote not at start of line, as follows")
                          self._debug_line(linenum, dl)
                          self._too_risky()
                          return
                      if in_docstring:  # docstring finishing
                          in_docstring = False
                          docstring_done = True
                          in_body = True
                          # ... and keep dl, so we write the end of the
                          # docstring, potentially with e.g. "# noqa" on the end
                      elif not docstring_done:  # docstring starting
                          in_docstring = True
                          # self._critical("adding our new docstring")
                          # Write our new docstring's start
                          tdq = ""  # stops linter moaning
                          if dl.startswith(TRIPLE_DOUBLEQUOTE):
                              tdq = TRIPLE_DOUBLEQUOTE
                          elif dl.startswith(RAW_TRIPLE_DOUBLEQUOTE):
                              tdq = RAW_TRIPLE_DOUBLEQUOTE
                          else:
                              assert "Bug!"
                          self.dest_lines.append(tdq)
                          self.dest_lines.append(self.advertised_filename)
                          self.dest_lines.append(BLANK)
                          self.dest_lines.extend(self.correct_copyright_lines)
                          self.dest_lines.append(BLANK)
                          swallow_blanks_and_filename_in_docstring = True
                          if dl == tdq:
                              dl = None  # don't write another triple-quote line
                          else:
                              dl = dl[len(tdq):]
  
                  elif in_docstring:
                      # Reading within the source docstring
  
                      if dl == TRANSITION:
                          if in_copyright:  # copyright finishing
                              in_copyright = False
                              copyright_done = True
                              dl = None  # we've already replaced with our own
                          elif not copyright_done:
                              in_copyright = True
                              dl = None  # we've already replaced with our own
  
                      elif in_copyright:
                          dl = None  # we've already replaced with our own
  
                      elif dl == RST_COMMENT_LINE:
                          dl = None  # remove these
  
                      elif swallow_blanks_and_filename_in_docstring:
                          # self._debug_line(linenum, dl)
                          if dl == BLANK or dl == self.advertised_filename:
                              dl = None
                          elif copyright_done:
                              swallow_blanks_and_filename_in_docstring = False
  
                  elif not dl.startswith(HASH) and not dl == BLANK:
                      in_body = True
  
                      if not docstring_done:
                          # The source file didn't have a docstring!
                          new_docstring_lines = [
                              BLANK,
                              TRIPLE_DOUBLEQUOTE,
                              self.advertised_filename,
                              BLANK,
                          ] + self.correct_copyright_lines + [
                              BLANK,
                              MISSING_RST_TITLE,
                              BLANK,
                              TRIPLE_DOUBLEQUOTE
                          ]
                          self._warn("File had no docstring; adding one. "
                                     "Will need manual edit to add RST title. "
                                     "Search for {!r}".format(MISSING_RST_TITLE))
                          self.dest_lines[1:1] = new_docstring_lines
  
              if dl is not None:
                  # self._debug_line(linenum, dl, "adding ")
                  self.dest_lines.append(dl)
  
          self.needs_rewriting = self.dest_lines != self.source_lines