docs: def _process_include(
              self,
              file_path: Path,
              from_heading: str or None = None,
              to_heading: str or None = None,
              options={}
          ) -> str:
          '''Replace a local include statement with the file content. Necessary
          adjustments are applied to the content: cut between certain headings,
          strip the top heading, set heading level.
  
          :param file_path: Path to the included file
          :param from_heading: Include starting from this heading
          :param to_heading: Include up to this heading (not including the heading itself)
          :param options: ``sethead``, ``nohead``
  
          :returns: Included file content
          '''
  
          self.logger.debug(
              f'Included file path: {file_path}, from heading: {from_heading}, ' +
              f'to heading: {to_heading}, options: {options}'
          )
  
          if file_path.name.startswith('^'):
              file_path = self._find_file(file_path.name[1:], file_path.parent)
  
          with open(file_path, encoding='utf8') as incl_file:
              incl_content = incl_file.read()
  
              if from_heading:
                  incl_content = self._cut_from_heading_to_heading(
                      incl_content,
                      from_heading,
                      to_heading,
                      options
                  )
  
              else:
                  incl_content = self._cut_to_heading(
                      incl_content,
                      to_heading,
                      options
                  )
  
              incl_content = self._adjust_image_paths(incl_content, file_path)
  
          return incl_content