@@ -1142,6 +1142,32 @@ def view_filterer(transform):
11421142
11431143 # CLF Transforms & BuiltinTransform Creation
11441144 # ==========================================
1145+ def remove_existing_colorspace (name ):
1146+ """Remove given existing *ColorSpace* from the current config data."""
1147+
1148+ for i , colorspace in enumerate (data .colorspaces [:]):
1149+ if colorspace ["name" ] == name :
1150+ LOGGER .info (
1151+ 'Removing existing "%s" "ColorSpace" transform from '
1152+ "current config data." ,
1153+ name ,
1154+ )
1155+
1156+ data .colorspaces .pop (i )
1157+
1158+ def remove_existing_named_transform (name ):
1159+ """Remove given existing *NamedTransform* from the current config data."""
1160+
1161+ for i , named_transform in enumerate (data .named_transforms [:]):
1162+ if named_transform ["name" ] == name :
1163+ LOGGER .info (
1164+ 'Removing existing "%s" "NamedTransform" transform from '
1165+ "current config data." ,
1166+ name ,
1167+ )
1168+
1169+ data .named_transforms .pop (i )
1170+
11451171 for transform_data in yield_from_config_mapping ():
11461172 # Inherited from the "Reference" config.
11471173 if (
@@ -1178,16 +1204,22 @@ def view_filterer(transform):
11781204
11791205 colorspace = style_to_colorspace (** kwargs )
11801206 colorspace ["transforms_data" ] = [transform_data ]
1207+
1208+ remove_existing_colorspace (colorspace ["name" ])
1209+
11811210 data .colorspaces .append (colorspace )
11821211 elif transform_data ["interface" ] == "NamedTransform" :
11831212 LOGGER .info (
11841213 'Creating a "NamedTransform" transform for "%s" style...' ,
11851214 style ,
11861215 )
11871216
1188- colorspace = style_to_named_transform (** kwargs )
1189- colorspace ["transforms_data" ] = [transform_data ]
1190- data .named_transforms .append (colorspace )
1217+ named_transform = style_to_named_transform (** kwargs )
1218+ named_transform ["transforms_data" ] = [transform_data ]
1219+
1220+ remove_existing_named_transform (named_transform ["name" ])
1221+
1222+ data .named_transforms .append (named_transform )
11911223
11921224 if style and clf_transform_id :
11931225 LOGGER .warning (
@@ -1215,6 +1247,9 @@ def view_filterer(transform):
12151247
12161248 named_transform = clf_transform_to_named_transform (** kwargs )
12171249 named_transform ["transforms_data" ] = [transform_data ]
1250+
1251+ remove_existing_named_transform (named_transform ["name" ])
1252+
12181253 data .named_transforms .append (named_transform )
12191254 else :
12201255 LOGGER .info (
@@ -1224,6 +1259,9 @@ def view_filterer(transform):
12241259
12251260 colorspace = clf_transform_to_colorspace (** kwargs )
12261261 colorspace ["transforms_data" ] = [transform_data ]
1262+
1263+ remove_existing_colorspace (colorspace ["name" ])
1264+
12271265 data .colorspaces .append (colorspace )
12281266
12291267 # Inactive Colorspaces Filtering
@@ -1292,6 +1330,12 @@ def ordering(element):
12921330 data .view_transforms = sorted (data .view_transforms , key = lambda x : ordering (x ))
12931331 data .looks = sorted (data .looks , key = lambda x : ordering (x ))
12941332
1333+ for active_view in data .active_views [:]:
1334+ for pattern in ("SDR" , "Un-tone-mapped" , "Raw" ):
1335+ if pattern in active_view :
1336+ data .active_views .remove (active_view )
1337+ data .active_views .append (active_view )
1338+
12951339 data .profile_version = build_configuration .ocio
12961340
12971341 config = generate_config (data , config_name , validate )
0 commit comments