docs: def process_file(pyfile_name):
      '''Process a Python source file with Google style docstring comments.
  
      Reads file header comment, function definitions, function docstrings.
      Returns dictionary encapsulation for subsequent writing.
  
      Args:
          pyfile_name (str): file name to read.
  
      Returns:
          Dictionary object containing summary comment, with a list of entries for each function.
      '''
      print('Processing file: ' + pyfile_name)
  
      # load the source file
      with open(pyfile_name) as fpyfile:
          pyfile_str = fpyfile.readlines()
  
      # meta-doc for a source file
      file_dict = {'source_file': pyfile_name.replace('\\', '/')}
  
      # get file summary line at the top of the file
      if pyfile_str[0].startswith("'''"):
          file_dict['summary_comment'] = pyfile_str[0][:-1].strip("'")
      else:
          file_dict['summary_comment'] = pyfile_name
  
      file_dict['functions'] = []
      # find every function definition
      for line in pyfile_str:
          # process definition
          if line.startswith('def '):
              line_num = pyfile_str.index(line)
              fn_def = line[4:]
              fn_name = fn_def.split('(')[0]
              function_info = {'name': fn_name}
              extract = extract_code(':', fn_def, pyfile_str, line_num)
              function_info['definition'] = extract['current_str']
              # process docstring
              line_num = extract['line_num'] + 1
              doc_line = pyfile_str[line_num]
              if doc_line.startswith("    '''"):
                  comment_str = doc_line[7:]
                  extract = extract_code(
                      "'''", comment_str, pyfile_str, line_num)
                  function_info['comments'] = extract['current_str']
              file_dict['functions'].append(function_info)
      return file_dict