code: def print_coverage(
      module_path,
      c,
      c_missing_doc,
      c_missing_doctest,
      c_indirect_doctest,
      c_sph,
      f,
      f_missing_doc,
      f_missing_doctest,
      f_indirect_doctest,
      f_sph,
      score,
      total_doctests,
      total_members,
      sphinx_score,
      total_sphinx,
      verbose=False,
      no_color=False,
      sphinx=True,
  ):
      """Prints details (depending on verbose) of a module"""
  
      doctest_color = "Brown"
      sphinx_color = "DarkGray"
      less_100_color = "Red"
      less_50_color = "LightRed"
      equal_100_color = "Green"
      big_header_color = "LightPurple"
      small_header_color = "Purple"
  
      if no_color:
          score_string = "Doctests: %s%% (%s of %s)" % (
              score,
              total_doctests,
              total_members,
          )
  
      elif score < 100:
          if score < 50:
              score_string = "%sDoctests:%s %s%s%% (%s of %s)%s" % (
                  c_color % colors[doctest_color],
                  c_normal,
                  c_color % colors[less_50_color],
                  score,
                  total_doctests,
                  total_members,
                  c_normal,
              )
          else:
              score_string = "%sDoctests:%s %s%s%% (%s of %s)%s" % (
                  c_color % colors[doctest_color],
                  c_normal,
                  c_color % colors[less_100_color],
                  score,
                  total_doctests,
                  total_members,
                  c_normal,
              )
      else:
          score_string = "%sDoctests:%s %s%s%% (%s of %s)%s" % (
              c_color % colors[doctest_color],
              c_normal,
              c_color % colors[equal_100_color],
              score,
              total_doctests,
              total_members,
              c_normal,
          )
  
      if sphinx:
          if no_color:
              sphinx_score_string = "Sphinx: %s%% (%s of %s)" % (
                  sphinx_score,
                  total_members - total_sphinx,
                  total_members,
              )
          elif sphinx_score < 100:
              if sphinx_score < 50:
                  sphinx_score_string = (
                      "%sSphinx:%s %s%s%% (%s of %s)%s"
                      % (
                          c_color % colors[sphinx_color],
                          c_normal,
                          c_color % colors[less_50_color],
                          sphinx_score,
                          total_members - total_sphinx,
                          total_members,
                          c_normal,
                      )
                  )
              else:
                  sphinx_score_string = (
                      "%sSphinx:%s %s%s%% (%s of %s)%s"
                      % (
                          c_color % colors[sphinx_color],
                          c_normal,
                          c_color % colors[less_100_color],
                          sphinx_score,
                          total_members - total_sphinx,
                          total_members,
                          c_normal,
                      )
                  )
          else:
              sphinx_score_string = (
                  "%sSphinx:%s %s%s%% (%s of %s)%s"
                  % (
                      c_color % colors[sphinx_color],
                      c_normal,
                      c_color % colors[equal_100_color],
                      sphinx_score,
                      total_members - total_sphinx,
                      total_members,
                      c_normal,
                  )
              )
      if verbose:
          print("\n" + "-" * 70)
          print(module_path)
          print("-" * 70)
      else:
          if sphinx:
              print(
                  "%s: %s %s"
                  % (module_path, score_string, sphinx_score_string)
              )
          else:
              print("%s: %s" % (module_path, score_string))
  
      if verbose:
          print_header(
              "CLASSES", "*", not no_color and big_header_color
          )
          if not c:
              print_header("No classes found!")
  
          else:
              if c_missing_doc:
                  print_header(
                      "Missing docstrings",
                      "-",
                      not no_color and small_header_color,
                  )
                  for md in c_missing_doc:
                      print("  * " + md)
              if c_missing_doctest:
                  print_header(
                      "Missing doctests",
                      "-",
                      not no_color and small_header_color,
                  )
                  for md in c_missing_doctest:
                      print("  * " + md)
              if c_indirect_doctest:
                  # Use "# indirect doctest" in the docstring to
                  # suppress this warning.
                  print_header(
                      "Indirect doctests",
                      "-",
                      not no_color and small_header_color,
                  )
                  for md in c_indirect_doctest:
                      print("  * " + md)
                  print(
                      '\n    Use "# indirect doctest" in the docstring to suppress this warning'
                  )
              if c_sph:
                  print_header(
                      "Not imported into Sphinx",
                      "-",
                      not no_color and small_header_color,
                  )
                  for md in c_sph:
                      print("  * " + md)
  
          print_header(
              "FUNCTIONS", "*", not no_color and big_header_color
          )
          if not f:
              print_header("No functions found!")
          else:
              if f_missing_doc:
                  print_header(
                      "Missing docstrings",
                      "-",
                      not no_color and small_header_color,
                  )
                  for md in f_missing_doc:
                      print("  * " + md)
              if f_missing_doctest:
                  print_header(
                      "Missing doctests",
                      "-",
                      not no_color and small_header_color,
                  )
                  for md in f_missing_doctest:
                      print("  * " + md)
              if f_indirect_doctest:
                  print_header(
                      "Indirect doctests",
                      "-",
                      not no_color and small_header_color,
                  )
                  for md in f_indirect_doctest:
                      print("  * " + md)
                  print(
                      '\n    Use "# indirect doctest" in the docstring to suppress this warning'
                  )
              if f_sph:
                  print_header(
                      "Not imported into Sphinx",
                      "-",
                      not no_color and small_header_color,
                  )
                  for md in f_sph:
                      print("  * " + md)
  
      if verbose:
          print("\n" + "-" * 70)
          print(score_string)
          if sphinx:
              print(sphinx_score_string)
          print("-" * 70)
  
file_path: sympy/bin/coverage_doctest.py
imports: from __future__ import print_function
  import os
  import sys
  import inspect
  from argparse import ArgumentParser, RawDescriptionHelpFormatter
  from sympy.utilities.misc import filldedent
label_desc: Use image node_id 2 for calling a global function with example usage: print_coverage(module_path, c, c_missing_doc, c_missing_doctest, c_indirect_doctest, c_sph, f, f_missing_doc, f_missing_doctest, f_indirect_doctest, f_sph, score, total_doctests, total_members, sphinx_score, total_sphinx, verbose, no_color, sphinx) without return types