original_docstring: 
      Parses the contents of a task file and returns each task along with the
      notes associated with it.
      
docstring: Parses the contents of a task file and returns each task along with the
  notes associated with it.
docstring_tokens: Parses the contents of a task file and returns each task along with the notes associated with it .
code: def parse_file(fobj: IO, base_dir: str, logger: utils.Logger) -> List[utils.Task]:
      """
      Parses the contents of a task file and returns each task along with the
      notes associated with it.
      """
      position = utils.FilePosition(fobj.name)
      current_task = None
      current_content = []
      tasks = []
      includes = []
  
      for line in fobj:
          position.next_line()
          if line.strip() == "***":
              if current_task is not None:
                  current_task.content = "".join(current_content)
                  tasks.append(current_task)
                  current_content.clear()
  
              result = parse_task(fobj, logger, position)
              if isinstance(result, list):
                  for include in result:
                      abs_include = (
                          include
                          if os.path.isabs(include)
                          else os.path.join(base_dir, include)
                      )
                      if not os.path.isfile(abs_include):
                          logger.warn(
                              position,
                              "Referenced include '{}' does not exist".format(
                                  abs_include
                              ),
                          )
                      else:
                          includes.append(abs_include)
                  current_task = None
              else:
                  current_task = result
          elif current_task is None:
              logger.warn(position, "Ignoring content that does not belong to a task")
          else:
              current_content.append(line)
  
      if current_task is not None:
          current_task.content = "".join(current_content)
          tasks.append(current_task)
          current_content.clear()
  
      for include in includes:
          with open(include) as include_fobj:
              tasks += parse_file(include_fobj, base_dir, logger)
  
      return tasks
code_tokens: def parse_file ( fobj : IO , base_dir : str , logger : utils . Logger ) -> List [ utils . Task ] : position = utils . FilePosition ( fobj . name ) current_task = None current_content = [ ] tasks = [ ] includes = [ ] for line in fobj : position . next_line ( ) if line . strip ( ) == "***" : if current_task is not None : current_task . content = "" . join ( current_content ) tasks . append ( current_task ) current_content . clear ( ) result = parse_task ( fobj , logger , position ) if isinstance ( result , list ) : for include in result : abs_include = ( include if os . path . isabs ( include ) else os . path . join ( base_dir , include ) ) if not os . path . isfile ( abs_include ) : logger . warn ( position , "Referenced include '{}' does not exist" . format ( abs_include ) , ) else : includes . append ( abs_include ) current_task = None else : current_task = result elif current_task is None : logger . warn ( position , "Ignoring content that does not belong to a task" ) else : current_content . append ( line ) if current_task is not None : current_task . content = "" . join ( current_content ) tasks . append ( current_task ) current_content . clear ( ) for include in includes : with open ( include ) as include_fobj : tasks += parse_file ( include_fobj , base_dir , logger ) return tasks
short_docstring: Parses the contents of a task file and returns each task along with the
  notes associated with it.
short_docstring_tokens: Parses the contents of a task file and returns each task along with the notes associated with it .
comment: """
      Parses the contents of a task file and returns each task along with the
      notes associated with it.
      """