From f2d0ba8fccf2808e3a341a807d6892e683f325e9 Mon Sep 17 00:00:00 2001 From: Wouter Deconinck Date: Tue, 30 Apr 2024 14:11:47 -0500 Subject: [PATCH] PackageStillNeededError: add pkg that needs spec to exception msg (#43845) * PackageStillNeededError: add pkg that needs spec to exception msg * PackageStillNeededError: f-string with short fmt and hash * PackageStillNeededError: split long string --- lib/spack/spack/package_base.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/spack/spack/package_base.py b/lib/spack/spack/package_base.py index 0be36f08ead..7c17c7d02e7 100644 --- a/lib/spack/spack/package_base.py +++ b/lib/spack/spack/package_base.py @@ -2555,7 +2555,12 @@ class PackageStillNeededError(InstallError): """Raised when package is still needed by another on uninstall.""" def __init__(self, spec, dependents): - super().__init__("Cannot uninstall %s" % spec) + spec_fmt = spack.spec.DEFAULT_FORMAT + " /{hash:7}" + dep_fmt = "{name}{@versions} /{hash:7}" + super().__init__( + f"Cannot uninstall {spec.format(spec_fmt)}, " + f"needed by {[dep.format(dep_fmt) for dep in dependents]}" + ) self.spec = spec self.dependents = dependents