Introduce an operations.generate_metadata module

As things stand, it'll completely delegate all the metadata generation
to InstallRequirement's methods.

Follow ups will move related code into this module.
This commit is contained in:
Pradyun Gedam 2019-09-19 19:28:38 +05:30
parent 716628a103
commit b5495b4d1e
No known key found for this signature in database
GPG Key ID: DA17C4B29CB32E4B
2 changed files with 12 additions and 4 deletions

View File

@ -0,0 +1,9 @@
"""Metadata generation logic for source distributions.
"""
def get_metadata_generator(install_req):
if install_req.use_pep517:
return install_req.prepare_pep517_metadata
else:
return install_req.run_egg_info

View File

@ -23,6 +23,7 @@ from pip._internal import pep425tags, wheel
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
@ -559,11 +560,9 @@ class InstallRequirement(object):
"""
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()
if not self.req:
if isinstance(parse_version(self.metadata["Version"]), Version):