lyrics-classifier
/
venv
/lib
/python3.8
/site-packages
/pip
/_internal
/operations
/build
/wheel.py
import logging | |
import os | |
from pip._internal.utils.subprocess import runner_with_spinner_message | |
from pip._internal.utils.typing import MYPY_CHECK_RUNNING | |
if MYPY_CHECK_RUNNING: | |
from typing import List, Optional | |
from pip._vendor.pep517.wrappers import Pep517HookCaller | |
logger = logging.getLogger(__name__) | |
def build_wheel_pep517( | |
name, # type: str | |
backend, # type: Pep517HookCaller | |
metadata_directory, # type: str | |
build_options, # type: List[str] | |
tempd, # type: str | |
): | |
# type: (...) -> Optional[str] | |
"""Build one InstallRequirement using the PEP 517 build process. | |
Returns path to wheel if successfully built. Otherwise, returns None. | |
""" | |
assert metadata_directory is not None | |
if build_options: | |
# PEP 517 does not support --build-options | |
logger.error('Cannot build wheel for %s using PEP 517 when ' | |
'--build-option is present', name) | |
return None | |
try: | |
logger.debug('Destination directory: %s', tempd) | |
runner = runner_with_spinner_message( | |
'Building wheel for {} (PEP 517)'.format(name) | |
) | |
with backend.subprocess_runner(runner): | |
wheel_name = backend.build_wheel( | |
tempd, | |
metadata_directory=metadata_directory, | |
) | |
except Exception: | |
logger.error('Failed building wheel for %s', name) | |
return None | |
return os.path.join(tempd, wheel_name) | |