|
54 | 54 | logger = logging.getLogger(__name__) |
55 | 55 |
|
56 | 56 |
|
| 57 | +@contextmanager |
| 58 | +def log_elapsed(label): |
| 59 | + """Context manager that logs the elapsed time of the wrapped block.""" |
| 60 | + start = time.perf_counter() |
| 61 | + yield |
| 62 | + logger.info(f"{label}: {time.perf_counter() - start:.1f}s") |
| 63 | + |
| 64 | + |
57 | 65 | class CleanProductMixin(ComponentRelatedFieldImportMixin): |
58 | 66 | def clean_product(self): |
59 | 67 | queryset = Product.objects.get_queryset(self.user) |
@@ -701,35 +709,30 @@ def save(self): |
701 | 709 |
|
702 | 710 | scancodeio = ScanCodeIO(self.dataspace) |
703 | 711 |
|
704 | | - step_start = time.perf_counter() |
705 | | - self.packages = scancodeio.fetch_project_packages(self.project_uuid) |
706 | | - logger.info(f"fetch_project_packages: {time.perf_counter() - step_start:.1f}s") |
| 712 | + with log_elapsed("fetch_project_packages"): |
| 713 | + self.packages = scancodeio.fetch_project_packages(self.project_uuid) |
707 | 714 |
|
708 | 715 | if not self.packages: |
709 | 716 | raise Exception("Packages could not be fetched from ScanCode.io") |
710 | 717 |
|
711 | 718 | if self.create_dependencies: |
712 | | - step_start = time.perf_counter() |
713 | | - self.dependencies = scancodeio.fetch_project_dependencies(self.project_uuid) |
714 | | - logger.info(f"fetch_project_dependencies: {time.perf_counter() - step_start:.1f}s") |
| 719 | + with log_elapsed("fetch_project_dependencies"): |
| 720 | + self.dependencies = scancodeio.fetch_project_dependencies(self.project_uuid) |
715 | 721 |
|
716 | | - step_start = time.perf_counter() |
717 | | - self.import_packages() |
718 | | - logger.info(f"import_packages: {time.perf_counter() - step_start:.1f}s") |
| 722 | + with log_elapsed("import_packages"): |
| 723 | + self.import_packages() |
719 | 724 |
|
720 | 725 | if self.create_dependencies: |
721 | | - step_start = time.perf_counter() |
722 | | - self.import_dependencies() |
723 | | - logger.info(f"import_dependencies: {time.perf_counter() - step_start:.1f}s") |
| 726 | + with log_elapsed("import_dependencies"): |
| 727 | + self.import_dependencies() |
724 | 728 |
|
725 | 729 | if self.scan_all_packages: |
726 | 730 | transaction.on_commit(lambda: self.product.scan_all_packages_task(self.user)) |
727 | 731 | logger.info("scan_all_packages: scheduled") |
728 | 732 |
|
729 | 733 | if self.user.dataspace.enable_vulnerablecodedb_access: |
730 | | - step_start = time.perf_counter() |
731 | | - self.product.fetch_vulnerabilities() |
732 | | - logger.info(f"fetch_vulnerabilities: {time.perf_counter() - step_start:.1f}s") |
| 734 | + with log_elapsed("fetch_vulnerabilities"): |
| 735 | + self.product.fetch_vulnerabilities() |
733 | 736 |
|
734 | 737 | logger.info(f"save total: {time.perf_counter() - save_start:.1f}s") |
735 | 738 |
|
|
0 commit comments