docs: def create_package_file(root, master_package, subroot, py_files, opts, subs):
      """Build the text of the file and write the file."""
      text = format_heading(1, '%s' % makename(master_package, subroot))
  
      if opts.modulefirst:
          text += format_directive(subroot, master_package)
          text += '\n'
  
      # build a list of directories that are szvpackages (contain an INITPY file)
      subs = [sub for sub in subs if path.isfile(path.join(root, sub, INITPY))]
      # if there are some package directories, add a TOC for theses subpackages
      if subs:
          # text += format_heading(2, 'Subpackages')
          text += '.. toctree::\n\n'
          for sub in subs:
              text += '    %s.%s\n' % (makename(master_package, subroot), sub)
          text += '\n'
  
      submods = [path.splitext(sub)[0] for sub in py_files
                 if not shall_skip(path.join(root, sub), opts) and
                 sub != INITPY]
      if submods:
          #text += format_heading(2, 'Submodules')
          if opts.separatemodules:
              text += '.. toctree::\n\n'
              for submod in submods:
                  modfile = makename(master_package, makename(subroot, submod))
                  text += '   %s\n' % modfile
  
                  # generate separate file for this module
                  if not opts.noheadings:
                      filetext = format_heading(1, '%s module' % modfile)
                  else:
                      filetext = ''
                  filetext += format_directive(makename(subroot, submod),
                                               master_package)
                  write_file(modfile, filetext, opts)
          else:
              for submod in submods:
                  modfile = makename(master_package, makename(subroot, submod))
                  if not opts.noheadings:
                      text += format_heading(2, '%s module' % modfile)
                  text += format_directive(makename(subroot, submod),
                                           master_package)
                  text += '\n'
          text += '\n'
  
      if not opts.modulefirst:
          text += format_heading(2, 'Module contents')
          text += format_directive(subroot, master_package)
  
      write_file(makename(master_package, subroot), text, opts)