code: def resolve_deps(
      deps,
      which,
      project,
      sources=None,
      python=False,
      clear=False,
      pre=False,
      allow_global=False,
      req_dir=None
  ):
      
      index_lookup = {}
      markers_lookup = {}
      python_path = which("python", allow_global=allow_global)
      if not os.environ.get("PIP_SRC"):
          os.environ["PIP_SRC"] = project.virtualenv_src_location
      backup_python_path = sys.executable
      results = []
      resolver = None
      if not deps:
          return results, resolver
      # First (proper) attempt:
      req_dir = req_dir if req_dir else os.environ.get("req_dir", None)
      if not req_dir:
          from .vendor.vistir.path import create_tracked_tempdir
          req_dir = create_tracked_tempdir(prefix="pipenv-", suffix="-requirements")
      with HackedPythonVersion(python_version=python, python_path=python_path):
          try:
              results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps(
                  deps,
                  index_lookup,
                  markers_lookup,
                  project,
                  sources,
                  clear,
                  pre,
                  req_dir=req_dir,
              )
          except RuntimeError:
              # Don't exit here, like usual.
              results = None
      # Second (last-resort) attempt:
      if results is None:
          with HackedPythonVersion(
              python_version=".".join([str(s) for s in sys.version_info[:3]]),
              python_path=backup_python_path,
          ):
              try:
                  # Attempt to resolve again, with different Python version information,
                  # particularly for particularly particular packages.
                  results, hashes, markers_lookup, resolver, skipped = actually_resolve_deps(
                      deps,
                      index_lookup,
                      markers_lookup,
                      project,
                      sources,
                      clear,
                      pre,
                      req_dir=req_dir,
                  )
              except RuntimeError:
                  sys.exit(1)
      return results, resolver
docs: Given a list of dependencies, return a resolved list of dependencies,
      using pip-tools -- and their hashes, using the warehouse API / pip.