From 6cd43a301c187d8a664ce01ebcf5b4d23b65137d Mon Sep 17 00:00:00 2001 From: Christopher Neugebauer Date: Wed, 20 Jul 2022 09:56:47 -0700 Subject: [PATCH] [internal] Refactors `output_field` to default to something that disambiguates on parametrized fields (#16232) # Rust tests and lints will be skipped. Delete if not intended. [ci skip-rust] # Building wheels and fs_util will be skipped. Delete if not intended. [ci skip-build-wheels] --- src/python/pants/build_graph/address.py | 5 +---- src/python/pants/core/goals/package.py | 5 ++++- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/python/pants/build_graph/address.py b/src/python/pants/build_graph/address.py index 6bbec3128b61..f5f8079eadbb 100644 --- a/src/python/pants/build_graph/address.py +++ b/src/python/pants/build_graph/address.py @@ -514,10 +514,7 @@ def sanitize(s: str) -> str: else: target = f"{parent_prefix}{self.target_name}" if self.parameters: - key_value_strs = ",".join( - f"{sanitize(k)}={sanitize(v)}" for k, v in self.parameters.items() - ) - params = f"@@{key_value_strs}" + params = f"@{sanitize(self.parameters_repr)}" else: params = "" generated = f"@{sanitize(self.generated_name)}" if self.generated_name else "" diff --git a/src/python/pants/core/goals/package.py b/src/python/pants/core/goals/package.py index 1c94588d8e6b..c394d8d51634 100644 --- a/src/python/pants/core/goals/package.py +++ b/src/python/pants/core/goals/package.py @@ -72,11 +72,14 @@ class OutputPathField(StringField, AsyncFieldMixin): def value_or_default(self, *, file_ending: str | None) -> str: if self.value: return self.value - file_prefix = ( + target_name_part = ( self.address.generated_name.replace(".", "_") if self.address.generated_name else self.address.target_name ) + params_sanitized = self.address.parameters_repr.replace(".", "_") + file_prefix = f"{target_name_part}{params_sanitized}" + if file_ending is None: file_name = file_prefix else: