Repository: pypa/pip
File: src/pip/_internal/operations/build/wheel_legacy.py (Python)

Code before:
        )
        msg += format_command_result(command_args, command_output)
        logger.warning(msg)

    return os.path.join(temp_dir, names[0])


def build_wheel_legacy(
    name: str,
    setup_py_path: str,
    source_dir: str,
    global_options: List[str],
    build_options: List[str],
    tempd: str,
) -> Optional[str]:
    """Build one unpacked package using the "legacy" build process.

    Returns path to wheel if successfully built. Otherwise, returns None.
    """
    deprecated(
        reason=f"Building {name!r} using the legacy setup.py bdist_wheel mechanism.",
        replacement=(
            "to use the standardized build interface by "
            "setting the `--use-pep517` option, "
            "(possibly combined with `--no-build-isolation`), "
            "or adding a `pyproject.toml` file to the source tree"
        ),
        gone_in="25.2",
        issue=6334,
    )

    wheel_args = make_setuptools_bdist_wheel_args(
        setup_py_path,
        global_options=global_options,
        build_options=build_options,
        destination_dir=tempd,
    )

    spin_message = f"Building wheel for {name} (setup.py)"
    with open_spinner(spin_message) as spinner:
        logger.debug("Destination directory: %s", tempd)

        try:
            output = call_subprocess(
                wheel_args,
                command_desc="python setup.py bdist_wheel",
                cwd=source_dir,
                spinner=spinner,
            )
        except Exception:
            spinner.finish("error")

Review comment (suggestion):
Quick question, is it enough for a project to have a `pyproject.toml` for pip to use PEP-517 or does it have to have a (valid?)  `build-system` section?

I ask because I have seen projects have `pyproject.toml` files with only `tool.[tool-name]` sections in them.

Code after:
        )
        msg += format_command_result(command_args, command_output)
        logger.warning(msg)

    return os.path.join(temp_dir, names[0])


def build_wheel_legacy(
    name: str,
    setup_py_path: str,
    source_dir: str,
    global_options: List[str],
    build_options: List[str],
    tempd: str,
) -> Optional[str]:
    """Build one unpacked package using the "legacy" build process.

    Returns path to wheel if successfully built. Otherwise, returns None.
    """
    deprecated(
        reason=(
            f"Building {name!r} using the legacy setup.py bdist_wheel mechanism, "
            "which will be removed in a future version."
        ),
        replacement=(
            "to use the standardized build interface by "
            "setting the `--use-pep517` option, "
            "(possibly combined with `--no-build-isolation`), "
            f"or adding a `pyproject.toml` file to the source tree of {name!r}"
        ),
        gone_in="25.3",
        issue=6334,
    )

    wheel_args = make_setuptools_bdist_wheel_args(
        setup_py_path,
        global_options=global_options,
        build_options=build_options,
        destination_dir=tempd,
    )

    spin_message = f"Building wheel for {name} (setup.py)"
    with open_spinner(spin_message) as spinner:
        logger.debug("Destination directory: %s", tempd)

        try:
            output = call_subprocess(
                wheel_args,
                command_desc="python setup.py bdist_wheel",
                cwd=source_dir,
                spinner=spinner,