Synchronize pair cast metadata
This commit is contained in:
@@ -142,11 +142,36 @@ def synchronize_pair_side_metadata(pair: dict[str, Any]) -> dict[str, Any]:
|
||||
return pair
|
||||
|
||||
|
||||
def synchronize_pair_cast_metadata(pair: dict[str, Any]) -> dict[str, Any]:
|
||||
descriptors = pair.get("shared_cast_descriptors")
|
||||
if isinstance(descriptors, list):
|
||||
descriptor_list = [str(item).strip() for item in descriptors if str(item or "").strip()]
|
||||
descriptor_text = "; ".join(descriptor_list)
|
||||
else:
|
||||
descriptor_text = str(descriptors or "").strip()
|
||||
descriptor_list = [descriptor_text] if descriptor_text else []
|
||||
if not descriptor_text:
|
||||
return pair
|
||||
|
||||
options = pair.get("options") if isinstance(pair.get("options"), dict) else {}
|
||||
row_keys = ["hardcore_row"]
|
||||
if options.get("softcore_cast") == "same_as_hardcore":
|
||||
row_keys.append("softcore_row")
|
||||
for row_key in row_keys:
|
||||
row = pair.get(row_key)
|
||||
if not isinstance(row, dict):
|
||||
continue
|
||||
row["cast_descriptor_text"] = descriptor_text
|
||||
row["cast_descriptors"] = list(descriptor_list)
|
||||
return pair
|
||||
|
||||
|
||||
def normalize_pair_metadata(pair: dict[str, Any], *, active_trigger: str = "") -> dict[str, Any]:
|
||||
trigger = str(active_trigger or "").strip()
|
||||
triggers = _trigger_tuple(trigger)
|
||||
synchronize_pair_row_outputs(pair)
|
||||
synchronize_pair_side_metadata(pair)
|
||||
synchronize_pair_cast_metadata(pair)
|
||||
for key in ("softcore_prompt", "hardcore_prompt"):
|
||||
if key in pair:
|
||||
pair[key] = sanitize_prompt_text(pair.get(key, ""), triggers=triggers)
|
||||
|
||||
Reference in New Issue
Block a user