code: def pkg_commit_hash(pkg_path):
      """Get short form of commit hash given directory `pkg_path`
  
      There should be a file called 'COMMIT_INFO.txt' in `pkg_path`.  This is a
      file in INI file format, with at least one section: ``commit hash``, and
      two variables ``archive_subst_hash`` and ``install_hash``.  The first has
      a substitution pattern in it which may have been filled by the execution
      of ``git archive`` if this is an archive generated that way.  The second
      is filled in by the installation, if the installation is from a git
      archive.
  
      We get the commit hash from (in order of preference):
  
      * A substituted value in ``archive_subst_hash``
      * A written commit hash value in ``install_hash`
      * git's output, if we are in a git repository
  
      If all these fail, we return a not-found placeholder tuple
  
      Parameters
      ----------
      pkg_path : str
         directory containing package
  
      Returns
      -------
      hash_from : str
         Where we got the hash from - description
      hash_str : str
         short form of hash
      """
      # Try and get commit from written commit text file
      pth = os.path.join(pkg_path, COMMIT_INFO_FNAME)
      if not os.path.isfile(pth):
          raise OSError("Missing commit info file %s" % pth)
      cfg_parser = configparser.RawConfigParser()
      cfg_parser.read(pth)
      archive_subst = cfg_parser.get(
          "commit hash", "archive_subst_hash"
      )
      if not archive_subst.startswith(
          "$Format"
      ):  # it has been substituted
          return "archive substitution", archive_subst
      install_subst = cfg_parser.get("commit hash", "install_hash")
      if install_subst != "":
          return "installation", install_subst
      # maybe we are in a repository
      proc = subprocess.Popen(
          "git rev-parse --short HEAD",
          stdout=subprocess.PIPE,
          stderr=subprocess.PIPE,
          cwd=pkg_path,
          shell=True,
      )
      repo_commit, _ = proc.communicate()
      if repo_commit:
          return "repository", repo_commit.strip()
      return "(none found)", "<not found>"
  
imports: import os
  import sys
  import subprocess
  import configparser
label_desc: Use image node_id 1 for calling a global function with example usage: pkg_commit_hash(pkg_path) and returns: str,  str, str,  archive_subst, str,  install_subst, str,  repo_commit