|
1 | 1 | from __future__ import absolute_import |
2 | 2 |
|
| 3 | +import atexit |
3 | 4 | import logging |
4 | 5 | import os |
5 | 6 | import shutil |
@@ -552,28 +553,36 @@ def prepare_metadata(self): |
552 | 553 | ) |
553 | 554 | self.req = Requirement(metadata_name) |
554 | 555 |
|
| 556 | + def cleanup(self): |
| 557 | + # type: () -> None |
| 558 | + if self._temp_dir is not None: |
| 559 | + self._temp_dir.cleanup() |
| 560 | + |
555 | 561 | def prepare_pep517_metadata(self): |
556 | 562 | # type: () -> None |
557 | 563 | assert self.pep517_backend is not None |
558 | 564 |
|
559 | | - with TempDirectory(delete=False) as temp_dir: |
560 | | - metadata_dir = os.path.join( |
561 | | - temp_dir.path, |
562 | | - 'pip-wheel-metadata', |
563 | | - ) |
564 | | - ensure_dir(metadata_dir) |
| 565 | + self._temp_dir = TempDirectory(delete=False, kind="req-install") |
| 566 | + self._temp_dir.create() |
| 567 | + metadata_dir = os.path.join( |
| 568 | + self._temp_dir.path, |
| 569 | + 'pip-wheel-metadata', |
| 570 | + ) |
| 571 | + atexit.register(self.cleanup) |
565 | 572 |
|
566 | | - with self.build_env: |
567 | | - # Note that Pep517HookCaller implements a fallback for |
568 | | - # prepare_metadata_for_build_wheel, so we don't have to |
569 | | - # consider the possibility that this hook doesn't exist. |
570 | | - backend = self.pep517_backend |
571 | | - self.spin_message = "Preparing wheel metadata" |
572 | | - distinfo_dir = backend.prepare_metadata_for_build_wheel( |
573 | | - metadata_dir |
574 | | - ) |
| 573 | + ensure_dir(metadata_dir) |
| 574 | + |
| 575 | + with self.build_env: |
| 576 | + # Note that Pep517HookCaller implements a fallback for |
| 577 | + # prepare_metadata_for_build_wheel, so we don't have to |
| 578 | + # consider the possibility that this hook doesn't exist. |
| 579 | + backend = self.pep517_backend |
| 580 | + self.spin_message = "Preparing wheel metadata" |
| 581 | + distinfo_dir = backend.prepare_metadata_for_build_wheel( |
| 582 | + metadata_dir |
| 583 | + ) |
575 | 584 |
|
576 | | - self.metadata_directory = os.path.join(metadata_dir, distinfo_dir) |
| 585 | + self.metadata_directory = os.path.join(metadata_dir, distinfo_dir) |
577 | 586 |
|
578 | 587 | def run_egg_info(self): |
579 | 588 | # type: () -> None |
|
0 commit comments