docs: def get_versions(default=DEFAULT, verbose=False):
      """This variation of get_versions() will be used in versioneer.py ."""
  
  
      # returns dict with two keys: 'version' and 'full'
      assert versionfile_source is not None, "please set versioneer.versionfile_source"
      assert tag_prefix is not None, "please set versioneer.tag_prefix"
      assert parentdir_prefix is not None, "please set versioneer.parentdir_prefix"
      assert VCS is not None, "please set versioneer.VCS"
  
      # I am in versioneer.py, which must live at the top of the source tree,
      # which we use to compute the root directory. py2exe/bbfreeze/non-CPython
      # don't have __file__, in which case we fall back to sys.argv[0] (which
      # ought to be the setup.py script). We prefer __file__ since that's more
      # robust in cases where setup.py was invoked in some weird way (e.g. pip)
      root = get_root()
      versionfile_abs = os.path.join(root, versionfile_source)
  
      # extract version from first of _version.py, VCS command (e.g. 'git
      # describe'), parentdir. This is meant to work for developers using a
      # source checkout, for users of a tarball created by 'setup.py sdist',
      # and for users of a tarball/zipball created by 'git archive' or github's
      # download-from-tag feature or the equivalent in other VCSes.
  
      # Try to get the version info from the VCS-specific replacement keywords.
  
      get_keywords_f = vcs_function(VCS, "get_keywords")
      versions_from_keywords_f = vcs_function(VCS, "versions_from_keywords")
      if get_keywords_f and versions_from_keywords_f:
          vcs_keywords = get_keywords_f(versionfile_abs)
          ver = versions_from_keywords_f(vcs_keywords, tag_prefix)
          if ver:
              if verbose: print("got version from expanded keyword %s" % ver)
              return ver
  
      # Try to get the version info from _version.py .
  
      ver = versions_from_file(versionfile_abs)
      if ver:
          if verbose: print("got version from file %s %s" % (versionfile_abs,ver))
          return ver
  
      # Try to get the version info from the VCS, directly.
  
      versions_from_vcs_f = vcs_function(VCS, "versions_from_vcs")
      if versions_from_vcs_f:
          ver = versions_from_vcs_f(tag_prefix, root, verbose)
          if ver:
              if verbose: print("got version from VCS %s" % ver)
              return ver
  
      # Try to get the version info from the directory's naming.
  
      ver = versions_from_parentdir(parentdir_prefix, root, verbose)
      if ver:
          if verbose: print("got version from parentdir %s" % ver)
          return ver
  
      if verbose: print("got version from default %s" % default)
      return default