From 20ec5926818f2f1fc6ca346ece95862dc58ca4fa Mon Sep 17 00:00:00 2001 From: Jamison French Date: Thu, 10 Sep 2026 15:19:13 -0500 Subject: [PATCH] fix: transfer guard non-boolean --- scripts/promote_dataset.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/scripts/promote_dataset.py b/scripts/promote_dataset.py index f4ac4d2..7f99474 100644 --- a/scripts/promote_dataset.py +++ b/scripts/promote_dataset.py @@ -15,19 +15,19 @@ class MissingFieldError(Exception): def validate_discovery_item_config(item: Dict[str, Any]) -> Dict[str, Any]: if "bucket" not in item: raise MissingFieldError( - "Missing required field 'bucket' in discovery item: {item}" + f"Missing required field 'bucket' in discovery item: {item}" ) if "discovery" not in item: raise MissingFieldError( - "Missing required field 'discovery' in discovery item: {item}" + f"Missing required field 'discovery' in discovery item: {item}" ) if "filename_regex" not in item: raise MissingFieldError( - "Missing required field 'filename_regex' in discovery item: {item}" + f"Missing required field 'filename_regex' in discovery item: {item}" ) if "prefix" not in item: raise MissingFieldError( - "Missing required field 'prefix' in discovery item: {item}" + f"Missing required field 'prefix' in discovery item: {item}" ) return item @@ -114,13 +114,18 @@ def promote_to_production(payload): if __name__ == "__main__": try: with open(sys.argv[1], "r") as file: - input = json.load(file) + _input = json.load(file) stage = sys.argv[2] - discovery_items = input.get("discovery_items") + discovery_items = _input.get("discovery_items") validated_discovery_items = [ validate_discovery_item_config(item) for item in discovery_items ] - dag_payload = {"conf": input} + transfer = _input.get("transfer") + if transfer is not None and not isinstance(transfer, bool): + raise ValueError( + f"Invalid value for 'transfer': {transfer!r}. Must be a boolean." + ) + dag_payload = {"conf": _input} if stage == "production": promote_to_production(dag_payload) elif stage == "staging":