{
  stdenv,
  python,
  build,
  flit-core,
  installer,
  packaging,
  pyproject-hooks,
  tomli,
  makeWrapper,
}:
let
  buildBootstrapPythonModule =
    basePackage: attrs:
    stdenv.mkDerivation (
      {
        pname = "${python.libPrefix}-bootstrap-${basePackage.pname}";
        inherit (basePackage) version src meta;

        nativeBuildInputs = [ makeWrapper ];

        buildPhase = ''
          runHook preBuild

          PYTHONPATH="${flit-core}/${python.sitePackages}" \
            ${python.interpreter} -m flit_core.wheel

          runHook postBuild
        '';

        installPhase = ''
          runHook preInstall

          PYTHONPATH="${installer}/${python.sitePackages}" \
            ${python.interpreter} -m installer \
              --destdir "$out" --prefix "" dist/*.whl

          runHook postInstall
        '';
      }
      // attrs
    );

  bootstrap-packaging = buildBootstrapPythonModule packaging { };

  bootstrap-pyproject-hooks = buildBootstrapPythonModule pyproject-hooks { };

  bootstrap-tomli = buildBootstrapPythonModule tomli { };

  sitePkgs = python.sitePackages;
in
buildBootstrapPythonModule build {
  # like the installPhase above, but wrapping the pyproject-build command
  #   to set up PYTHONPATH with the correct dependencies.
  # This allows using `pyproject-build` without propagating its dependencies
  #   into the build environment, which is necessary to prevent
  #   pythonCatchConflicts from raising false positive alerts.
  # This would happen whenever the package to build has a dependency on
  #   another version of a package that is also a dependency of pyproject-build.
  installPhase = ''
    runHook preInstall

    PYTHONPATH="${installer}/${python.sitePackages}" \
      ${python.interpreter} -m installer \
        --destdir "$out" --prefix "" dist/*.whl

    wrapProgram $out/bin/pyproject-build \
      --prefix PYTHONPATH : "$out/${sitePkgs}" \
      --prefix PYTHONPATH : "${bootstrap-pyproject-hooks}/${sitePkgs}" \
      --prefix PYTHONPATH : "${bootstrap-packaging}/${sitePkgs}" \
      --prefix PYTHONPATH : "${bootstrap-tomli}/${sitePkgs}"

    runHook postInstall
  '';
}
