Skip to content

Rename RequirementTracker to BuildTracker #10989

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 5 commits into from
Mar 26, 2022
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
6 changes: 3 additions & 3 deletions src/pip/_internal/cli/req_command.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
from pip._internal.models.selection_prefs import SelectionPreferences
from pip._internal.models.target_python import TargetPython
from pip._internal.network.session import PipSession
from pip._internal.operations.build.build_tracker import BuildTracker
from pip._internal.operations.prepare import RequirementPreparer
from pip._internal.req.constructors import (
install_req_from_editable,
Expand All @@ -31,7 +32,6 @@
)
from pip._internal.req.req_file import parse_requirements
from pip._internal.req.req_install import InstallRequirement
from pip._internal.req.req_tracker import RequirementTracker
from pip._internal.resolution.base import BaseResolver
from pip._internal.self_outdated_check import pip_self_version_check
from pip._internal.utils.deprecation import deprecated
Expand Down Expand Up @@ -257,7 +257,7 @@ def make_requirement_preparer(
cls,
temp_build_dir: TempDirectory,
options: Values,
req_tracker: RequirementTracker,
build_tracker: BuildTracker,
session: PipSession,
finder: PackageFinder,
use_user_site: bool,
Expand Down Expand Up @@ -314,7 +314,7 @@ def make_requirement_preparer(
src_dir=options.src_dir,
download_dir=download_dir,
build_isolation=options.build_isolation,
req_tracker=req_tracker,
build_tracker=build_tracker,
session=session,
progress_bar=options.progress_bar,
finder=finder,
Expand Down
6 changes: 3 additions & 3 deletions src/pip/_internal/commands/download.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
from pip._internal.cli.cmdoptions import make_target_python
from pip._internal.cli.req_command import RequirementCommand, with_cleanup
from pip._internal.cli.status_codes import SUCCESS
from pip._internal.req.req_tracker import get_requirement_tracker
from pip._internal.operations.build.build_tracker import get_build_tracker
from pip._internal.utils.misc import ensure_dir, normalize_path, write_output
from pip._internal.utils.temp_dir import TempDirectory

Expand Down Expand Up @@ -95,7 +95,7 @@ def run(self, options: Values, args: List[str]) -> int:
ignore_requires_python=options.ignore_requires_python,
)

req_tracker = self.enter_context(get_requirement_tracker())
build_tracker = self.enter_context(get_build_tracker())

directory = TempDirectory(
delete=not options.no_clean,
Expand All @@ -108,7 +108,7 @@ def run(self, options: Values, args: List[str]) -> int:
preparer = self.make_requirement_preparer(
temp_build_dir=directory,
options=options,
req_tracker=req_tracker,
build_tracker=build_tracker,
session=session,
finder=finder,
download_dir=options.download_dir,
Expand Down
6 changes: 3 additions & 3 deletions src/pip/_internal/commands/install.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
from pip._internal.locations import get_scheme
from pip._internal.metadata import get_environment
from pip._internal.models.format_control import FormatControl
from pip._internal.operations.build.build_tracker import get_build_tracker
from pip._internal.operations.check import ConflictDetails, check_install_conflicts
from pip._internal.req import install_given_reqs
from pip._internal.req.req_install import InstallRequirement
from pip._internal.req.req_tracker import get_requirement_tracker
from pip._internal.utils.compat import WINDOWS
from pip._internal.utils.distutils_args import parse_distutils_args
from pip._internal.utils.filesystem import test_writable_dir
Expand Down Expand Up @@ -293,7 +293,7 @@ def run(self, options: Values, args: List[str]) -> int:
)
wheel_cache = WheelCache(options.cache_dir, options.format_control)

req_tracker = self.enter_context(get_requirement_tracker())
build_tracker = self.enter_context(get_build_tracker())

directory = TempDirectory(
delete=not options.no_clean,
Expand All @@ -315,7 +315,7 @@ def run(self, options: Values, args: List[str]) -> int:
preparer = self.make_requirement_preparer(
temp_build_dir=directory,
options=options,
req_tracker=req_tracker,
build_tracker=build_tracker,
session=session,
finder=finder,
use_user_site=options.use_user_site,
Expand Down
6 changes: 3 additions & 3 deletions src/pip/_internal/commands/wheel.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
from pip._internal.cli.req_command import RequirementCommand, with_cleanup
from pip._internal.cli.status_codes import SUCCESS
from pip._internal.exceptions import CommandError
from pip._internal.operations.build.build_tracker import get_build_tracker
from pip._internal.req.req_install import InstallRequirement
from pip._internal.req.req_tracker import get_requirement_tracker
from pip._internal.utils.misc import ensure_dir, normalize_path
from pip._internal.utils.temp_dir import TempDirectory
from pip._internal.wheel_builder import build, should_build_for_wheel_command
Expand Down Expand Up @@ -108,7 +108,7 @@ def run(self, options: Values, args: List[str]) -> int:
options.wheel_dir = normalize_path(options.wheel_dir)
ensure_dir(options.wheel_dir)

req_tracker = self.enter_context(get_requirement_tracker())
build_tracker = self.enter_context(get_build_tracker())

directory = TempDirectory(
delete=not options.no_clean,
Expand All @@ -121,7 +121,7 @@ def run(self, options: Values, args: List[str]) -> int:
preparer = self.make_requirement_preparer(
temp_build_dir=directory,
options=options,
req_tracker=req_tracker,
build_tracker=build_tracker,
session=session,
finder=finder,
download_dir=options.wheel_dir,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,25 +39,25 @@ def update_env_context_manager(**changes: str) -> Iterator[None]:


@contextlib.contextmanager
def get_requirement_tracker() -> Iterator["RequirementTracker"]:
root = os.environ.get("PIP_REQ_TRACKER")
def get_build_tracker() -> Iterator["BuildTracker"]:
root = os.environ.get("PIP_BUILD_TRACKER")
with contextlib.ExitStack() as ctx:
if root is None:
root = ctx.enter_context(TempDirectory(kind="req-tracker")).path
ctx.enter_context(update_env_context_manager(PIP_REQ_TRACKER=root))
root = ctx.enter_context(TempDirectory(kind="build-tracker")).path
ctx.enter_context(update_env_context_manager(PIP_BUILD_TRACKER=root))
logger.debug("Initialized build tracking at %s", root)

with RequirementTracker(root) as tracker:
with BuildTracker(root) as tracker:
yield tracker


class RequirementTracker:
class BuildTracker:
def __init__(self, root: str) -> None:
self._root = root
self._entries: Set[InstallRequirement] = set()
logger.debug("Created build tracker: %s", self._root)

def __enter__(self) -> "RequirementTracker":
def __enter__(self) -> "BuildTracker":
logger.debug("Entered build tracker: %s", self._root)
return self

Expand Down
14 changes: 7 additions & 7 deletions src/pip/_internal/operations/prepare.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@
dist_from_wheel_url,
)
from pip._internal.network.session import PipSession
from pip._internal.operations.build.build_tracker import BuildTracker
from pip._internal.req.req_install import InstallRequirement
from pip._internal.req.req_tracker import RequirementTracker
from pip._internal.utils.filesystem import copy2_fixed
from pip._internal.utils.hashes import Hashes, MissingHashes
from pip._internal.utils.logging import indent_log
Expand All @@ -48,13 +48,13 @@

def _get_prepared_distribution(
req: InstallRequirement,
req_tracker: RequirementTracker,
build_tracker: BuildTracker,
finder: PackageFinder,
build_isolation: bool,
) -> BaseDistribution:
"""Prepare a distribution for installation."""
abstract_dist = make_distribution_for_install_requirement(req)
with req_tracker.track(req):
with build_tracker.track(req):
abstract_dist.prepare_distribution_metadata(finder, build_isolation)
return abstract_dist.get_metadata_distribution()

Expand Down Expand Up @@ -261,7 +261,7 @@ def __init__(
download_dir: Optional[str],
src_dir: str,
build_isolation: bool,
req_tracker: RequirementTracker,
build_tracker: BuildTracker,
session: PipSession,
progress_bar: str,
finder: PackageFinder,
Expand All @@ -275,7 +275,7 @@ def __init__(

self.src_dir = src_dir
self.build_dir = build_dir
self.req_tracker = req_tracker
self.build_tracker = build_tracker
self._session = session
self._download = Downloader(session, progress_bar)
self._batch_download = BatchDownloader(session, progress_bar)
Expand Down Expand Up @@ -555,7 +555,7 @@ def _prepare_linked_requirement(

dist = _get_prepared_distribution(
req,
self.req_tracker,
self.build_tracker,
self.finder,
self.build_isolation,
)
Expand Down Expand Up @@ -608,7 +608,7 @@ def prepare_editable_requirement(

dist = _get_prepared_distribution(
req,
self.req_tracker,
self.build_tracker,
self.finder,
self.build_isolation,
)
Expand Down
2 changes: 1 addition & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,7 @@ def isolate(tmpdir: Path, monkeypatch: pytest.MonkeyPatch) -> None:
monkeypatch.setenv("PIP_DISABLE_PIP_VERSION_CHECK", "true")

# Make sure tests don't share a requirements tracker.
monkeypatch.delenv("PIP_REQ_TRACKER", False)
monkeypatch.delenv("PIP_BUILD_TRACKER", False)

# FIXME: Windows...
os.makedirs(os.path.join(home_dir, ".config", "git"))
Expand Down
6 changes: 3 additions & 3 deletions tests/unit/resolution_resolvelib/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
from pip._internal.models.search_scope import SearchScope
from pip._internal.models.selection_prefs import SelectionPreferences
from pip._internal.network.session import PipSession
from pip._internal.operations.build.build_tracker import get_build_tracker
from pip._internal.operations.prepare import RequirementPreparer
from pip._internal.req.constructors import install_req_from_line
from pip._internal.req.req_tracker import get_requirement_tracker
from pip._internal.resolution.resolvelib.factory import Factory
from pip._internal.resolution.resolvelib.provider import PipProvider
from pip._internal.utils.temp_dir import TempDirectory, global_tempdir_manager
Expand All @@ -38,11 +38,11 @@ def preparer(finder: PackageFinder) -> Iterator[RequirementPreparer]:

with global_tempdir_manager():
with TempDirectory() as tmp:
with get_requirement_tracker() as tracker:
with get_build_tracker() as tracker:
preparer = RequirementCommand.make_requirement_preparer(
tmp,
options=o[0],
req_tracker=tracker,
build_tracker=tracker,
session=session,
finder=finder,
use_user_site=False,
Expand Down
6 changes: 3 additions & 3 deletions tests/unit/test_req.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from pip._internal.index.package_finder import PackageFinder
from pip._internal.metadata.pkg_resources import Distribution
from pip._internal.network.session import PipSession
from pip._internal.operations.build.build_tracker import get_build_tracker
from pip._internal.operations.prepare import RequirementPreparer
from pip._internal.req import InstallRequirement, RequirementSet
from pip._internal.req.constructors import (
Expand All @@ -39,7 +40,6 @@
get_line_parser,
handle_requirement_line,
)
from pip._internal.req.req_tracker import get_requirement_tracker
from pip._internal.resolution.legacy.resolver import Resolver
from pip._internal.utils.urls import path_to_url
from tests.lib import TestData, make_test_finder, requirements_file
Expand Down Expand Up @@ -85,13 +85,13 @@ def _basic_resolver(
)
session = PipSession()

with get_requirement_tracker() as tracker:
with get_build_tracker() as tracker:
preparer = RequirementPreparer(
build_dir=os.path.join(self.tempdir, "build"),
src_dir=os.path.join(self.tempdir, "src"),
download_dir=None,
build_isolation=True,
req_tracker=tracker,
build_tracker=tracker,
session=session,
progress_bar="on",
finder=finder,
Expand Down