File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -461,15 +461,23 @@ def get_tag(tag):
461461 global_info ["blue:keywords" ] = h_keywords
462462 global_info ["blue:adjunct" ] = h_adjunct
463463
464- # merge extended header fields
464+ # merge extended header fields, handling duplicate keys
465465 if h_extended :
466466 extended = {}
467+ tag_counts = {}
467468 for entry in h_extended :
468- key = entry .get ("tag" )
469+ tag = entry .get ("tag" )
469470 value = entry .get ("value" )
470471 if hasattr (value , "item" ):
471472 value = value .item ()
472- extended [key ] = value
473+
474+ # handle duplicate tags by numbering them
475+ if tag in extended :
476+ tag_counts [tag ] = tag_counts .get (tag , 0 ) + 1
477+ numbered_tag = f"{ tag } _{ tag_counts [tag ]} "
478+ extended [numbered_tag ] = value
479+ else :
480+ extended [tag ] = value
473481 global_info ["blue:extended" ] = extended
474482
475483 blue_start_time = float (h_fixed .get ("timecode" , 0 ))
@@ -557,7 +565,6 @@ def validate_fixed(h_fixed: dict) -> None:
557565 raise SigMFConversionError (f"Invalid value for { rep_field } : { h_fixed [rep_field ]} " )
558566 if h_fixed ["data_size" ] < 0 :
559567 raise SigMFConversionError (f"Invalid data_size: { h_fixed ['data_size' ]} (must be >= 0)" )
560- # validate format code is supported
561568 if len (h_fixed ["format" ]) != 2 or h_fixed ["format" ][0 ] not in "SC" or h_fixed ["format" ][1 ] not in TYPE_MAP :
562569 raise SigMFConversionError (f"Unsupported data format: { h_fixed ['format' ]} " )
563570
You can’t perform that action at this time.
0 commit comments