Skip to content

Commit c23c52d

Browse files
authored
Merge pull request #6325 from hugovk/pip-wheel-metadata-in-tempdir
Use a temp dir for pip-wheel-metadata
2 parents 9899fe3 + 1bcc718 commit c23c52d

File tree

3 files changed

+14
-3
lines changed

3 files changed

+14
-3
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ nosetests.xml
2727
coverage.xml
2828
*.cover
2929
tests/data/common_wheels/
30-
pip-wheel-metadata
3130

3231
# Misc
3332
*~

news/6213.bugfix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
The ``pip-wheel-metadata`` directory does not need to persist between invocations of pip, use a temporary directory instead of the current ``setup.py`` directory.

src/pip/_internal/req/req_install.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from __future__ import absolute_import
55

6+
import atexit
67
import logging
78
import os
89
import shutil
@@ -591,14 +592,24 @@ def prepare_metadata(self):
591592
)
592593
self.req = Requirement(metadata_name)
593594

595+
def cleanup(self):
596+
# type: () -> None
597+
if self._temp_dir is not None:
598+
self._temp_dir.cleanup()
599+
594600
def prepare_pep517_metadata(self):
595601
# type: () -> None
596602
assert self.pep517_backend is not None
597603

604+
# NOTE: This needs to be refactored to stop using atexit
605+
self._temp_dir = TempDirectory(delete=False, kind="req-install")
606+
self._temp_dir.create()
598607
metadata_dir = os.path.join(
599-
self.setup_py_dir,
600-
'pip-wheel-metadata'
608+
self._temp_dir.path,
609+
'pip-wheel-metadata',
601610
)
611+
atexit.register(self.cleanup)
612+
602613
ensure_dir(metadata_dir)
603614

604615
with self.build_env:

0 commit comments

Comments
 (0)