code: def call(libname, flag, encoding=sys.getfilesystemencoding()):
      """Calls pkg-config and returns the output if found"""
      a = ["pkg-config", "--print-errors"]
      a.append(flag)
      a.append(libname)
      try:
          pc = subprocess.Popen(
              a, stdout=subprocess.PIPE, stderr=subprocess.PIPE
          )
      except EnvironmentError as e:
          raise PkgConfigError(
              "cannot run pkg-config: %s" % (str(e).strip(),)
          )
  
      bout, berr = pc.communicate()
      if pc.returncode != 0:
          try:
              berr = berr.decode(encoding)
          except Exception:
              pass
          raise PkgConfigError(berr.strip())
  
      if sys.version_info >= (3,) and not isinstance(
          bout, str
      ):  # Python 3.x
          try:
              bout = bout.decode(encoding)
          except UnicodeDecodeError:
              raise PkgConfigError(
                  "pkg-config %s %s returned bytes that cannot "
                  "be decoded with encoding %r:\n%r"
                  % (flag, libname, encoding, bout)
              )
  
      if os.altsep != "\\" and "\\" in bout:
          raise PkgConfigError(
              "pkg-config %s %s returned an unsupported "
              "backslash-escaped output:\n%r" % (flag, libname, bout)
          )
      return bout
  
imports: import sys, os, subprocess
  from .error import PkgConfigError
label_desc: Use image node_id 2 for calling a global function with example usage: call(libname, flag, encoding) and returns: bout