Skip to content

Call into operations.generate_metadata to generate metadata #7051

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Sep 21, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions src/pip/_internal/operations/generate_metadata.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
"""Metadata generation logic for source distributions.
"""

from pip._internal.utils.typing import MYPY_CHECK_RUNNING

if MYPY_CHECK_RUNNING:
from typing import Callable
from pip._internal.req.req_install import InstallRequirement


def get_metadata_generator(install_req):
# type: (InstallRequirement) -> Callable[[InstallRequirement], None]
if not install_req.use_pep517:
return _generate_metadata_legacy

return _generate_metadata


def _generate_metadata_legacy(install_req):
# type: (InstallRequirement) -> None
install_req.run_egg_info()


def _generate_metadata(install_req):
# type: (InstallRequirement) -> None
install_req.prepare_pep517_metadata()
7 changes: 3 additions & 4 deletions src/pip/_internal/req/req_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from pip._internal.build_env import NoOpBuildEnvironment
from pip._internal.exceptions import InstallationError
from pip._internal.models.link import Link
from pip._internal.operations.generate_metadata import get_metadata_generator
from pip._internal.pyproject import load_pyproject_toml, make_pyproject_path
from pip._internal.req.req_uninstall import UninstallPathSet
from pip._internal.utils.compat import native_str
Expand Down Expand Up @@ -559,11 +560,9 @@ def prepare_metadata(self):
"""
assert self.source_dir

metadata_generator = get_metadata_generator(self)
with indent_log():
if self.use_pep517:
self.prepare_pep517_metadata()
else:
self.run_egg_info()
metadata_generator(self)

if not self.req:
if isinstance(parse_version(self.metadata["Version"]), Version):
Expand Down