|
13 | 13 | import csv |
14 | 14 | import logging |
15 | 15 | import re |
16 | | -from collections import defaultdict |
17 | 16 | from enum import Flag, auto |
18 | 17 | from pathlib import Path |
19 | 18 |
|
@@ -998,7 +997,7 @@ def generate_config_aces( |
998 | 997 |
|
999 | 998 | LOGGER.info('Parsing "%s" config mapping file...', config_mapping_file_path) |
1000 | 999 |
|
1001 | | - config_mapping = defaultdict(list) |
| 1000 | + config_mapping = {} |
1002 | 1001 | with open(config_mapping_file_path) as csv_file: |
1003 | 1002 | dict_reader = csv.DictReader( |
1004 | 1003 | csv_file, |
@@ -1095,7 +1094,7 @@ def generate_config_aces( |
1095 | 1094 | ] |
1096 | 1095 | ) |
1097 | 1096 |
|
1098 | | - config_mapping[transform_data["colorspace"]].append(transform_data) |
| 1097 | + config_mapping[transform_data["aces_transform_id"]] = transform_data |
1099 | 1098 |
|
1100 | 1099 | colorspaces = [] |
1101 | 1100 | looks = [] |
@@ -1154,109 +1153,106 @@ def generate_config_aces( |
1154 | 1153 |
|
1155 | 1154 | LOGGER.info('Implicit colorspaces: "%s"', [a["name"] for a in colorspaces]) |
1156 | 1155 |
|
1157 | | - for transforms_data in config_mapping.values(): |
1158 | | - for transform_data in transforms_data: |
1159 | | - ctl_transform = transform_data["ctl_transform"] |
1160 | | - style = transform_data["builtin_transform_style"] |
| 1156 | + for transform_data in config_mapping.values(): |
| 1157 | + ctl_transform = transform_data["ctl_transform"] |
| 1158 | + style = transform_data["builtin_transform_style"] |
1161 | 1159 |
|
1162 | | - if transform_data["interface"] == "ViewTransform": |
1163 | | - LOGGER.info('Creating a "View" transform for "%s" style...', style) |
1164 | | - view_transform = style_to_view_transform( |
1165 | | - style, |
1166 | | - [ |
1167 | | - transform_data["ctl_transform"] |
1168 | | - for transform_data in transforms_data |
1169 | | - ], |
1170 | | - describe, |
1171 | | - amf_components, |
1172 | | - signature_only=True, |
1173 | | - scheme=scheme, |
1174 | | - ) |
1175 | | - view_transform["transforms_data"] = transforms_data |
1176 | | - view_transforms.append(view_transform) |
1177 | | - view_transform_name = view_transform["name"] |
1178 | | - |
1179 | | - if view_transform_name not in view_transform_names: |
1180 | | - view_transform_names.append(view_transform_name) |
1181 | | - |
1182 | | - display_style = transform_data["linked_display_colorspace_style"] |
1183 | | - |
1184 | | - display = style_to_display_colorspace( |
1185 | | - display_style, |
1186 | | - describe, |
1187 | | - amf_components, |
1188 | | - signature_only=True, |
1189 | | - scheme=scheme, |
1190 | | - encoding=transform_data.get("encoding"), |
1191 | | - categories=transform_data.get("categories"), |
1192 | | - aliases=transform_data_aliases(transform_data), |
1193 | | - ) |
1194 | | - display["transforms_data"] = [transform_data] |
1195 | | - display_name = display["name"] |
1196 | | - |
1197 | | - if display_name in display_names: |
1198 | | - for existing_display in displays: |
1199 | | - if existing_display["name"] == display_name: |
1200 | | - existing_display["transforms_data"].append(transform_data) |
1201 | | - else: |
1202 | | - display_names.append(display_name) |
1203 | | - displays.append(display) |
1204 | | - |
1205 | | - shared_view = { |
1206 | | - "display": display_name, |
1207 | | - "view": view_transform_name, |
1208 | | - "view_transform": view_transform_name, |
1209 | | - } |
1210 | | - if shared_view not in shared_views: |
1211 | | - LOGGER.info( |
1212 | | - 'Adding "%s" shared view to "%s" display.', |
1213 | | - shared_view["view"], |
1214 | | - display_name, |
1215 | | - ) |
1216 | | - shared_views.append(shared_view) |
1217 | | - |
1218 | | - elif transform_data["interface"] == "Look": |
1219 | | - LOGGER.info('Creating a "Look" transform for "%s" style...', style) |
1220 | | - look = ctl_transform_to_look( |
1221 | | - ctl_transform, |
1222 | | - describe, |
1223 | | - amf_components, |
1224 | | - signature_only=True, |
1225 | | - scheme=scheme, |
1226 | | - analytical=analytical, |
1227 | | - forward_transform={ |
1228 | | - "transform_type": "BuiltinTransform", |
1229 | | - "style": style, |
1230 | | - }, |
1231 | | - process_space=scene_reference_colorspace["name"], |
1232 | | - ) |
1233 | | - look["transforms_data"] = [transform_data] |
1234 | | - if look not in looks: |
1235 | | - looks.append(look) |
| 1160 | + if transform_data["interface"] == "ViewTransform": |
| 1161 | + LOGGER.info('Creating a "View" transform for "%s" style...', style) |
| 1162 | + |
| 1163 | + view_transform = style_to_view_transform( |
| 1164 | + style, |
| 1165 | + [transform_data["ctl_transform"]], |
| 1166 | + describe, |
| 1167 | + amf_components, |
| 1168 | + signature_only=True, |
| 1169 | + scheme=scheme, |
| 1170 | + ) |
| 1171 | + view_transform["transforms_data"] = [transform_data] |
| 1172 | + view_transforms.append(view_transform) |
| 1173 | + view_transform_name = view_transform["name"] |
| 1174 | + |
| 1175 | + if view_transform_name not in view_transform_names: |
| 1176 | + view_transform_names.append(view_transform_name) |
| 1177 | + |
| 1178 | + display_style = transform_data["linked_display_colorspace_style"] |
| 1179 | + |
| 1180 | + display = style_to_display_colorspace( |
| 1181 | + display_style, |
| 1182 | + describe, |
| 1183 | + amf_components, |
| 1184 | + signature_only=True, |
| 1185 | + scheme=scheme, |
| 1186 | + encoding=transform_data.get("encoding"), |
| 1187 | + categories=transform_data.get("categories"), |
| 1188 | + aliases=transform_data_aliases(transform_data), |
| 1189 | + ) |
| 1190 | + display["transforms_data"] = [transform_data] |
| 1191 | + display_name = display["name"] |
| 1192 | + |
| 1193 | + if display_name in display_names: |
| 1194 | + for existing_display in displays: |
| 1195 | + if existing_display["name"] == display_name: |
| 1196 | + existing_display["transforms_data"].append(transform_data) |
1236 | 1197 | else: |
| 1198 | + display_names.append(display_name) |
| 1199 | + displays.append(display) |
| 1200 | + |
| 1201 | + shared_view = { |
| 1202 | + "display": display_name, |
| 1203 | + "view": view_transform_name, |
| 1204 | + "view_transform": view_transform_name, |
| 1205 | + } |
| 1206 | + if shared_view not in shared_views: |
1237 | 1207 | LOGGER.info( |
1238 | | - 'Creating a "Colorspace" transform for "%s" style...', |
1239 | | - style, |
| 1208 | + 'Adding "%s" shared view to "%s" display.', |
| 1209 | + shared_view["view"], |
| 1210 | + display_name, |
1240 | 1211 | ) |
| 1212 | + shared_views.append(shared_view) |
| 1213 | + |
| 1214 | + elif transform_data["interface"] == "Look": |
| 1215 | + LOGGER.info('Creating a "Look" transform for "%s" style...', style) |
| 1216 | + look = ctl_transform_to_look( |
| 1217 | + ctl_transform, |
| 1218 | + describe, |
| 1219 | + amf_components, |
| 1220 | + signature_only=True, |
| 1221 | + scheme=scheme, |
| 1222 | + analytical=analytical, |
| 1223 | + forward_transform={ |
| 1224 | + "transform_type": "BuiltinTransform", |
| 1225 | + "style": style, |
| 1226 | + }, |
| 1227 | + process_space=scene_reference_colorspace["name"], |
| 1228 | + ) |
| 1229 | + look["transforms_data"] = [transform_data] |
| 1230 | + if look not in looks: |
| 1231 | + looks.append(look) |
| 1232 | + else: |
| 1233 | + LOGGER.info( |
| 1234 | + 'Creating a "Colorspace" transform for "%s" style...', |
| 1235 | + style, |
| 1236 | + ) |
1241 | 1237 |
|
1242 | | - colorspace = ctl_transform_to_colorspace( |
1243 | | - ctl_transform, |
1244 | | - describe, |
1245 | | - amf_components, |
1246 | | - signature_only=True, |
1247 | | - scheme=scheme, |
1248 | | - analytical=analytical, |
1249 | | - to_reference={ |
1250 | | - "transform_type": "BuiltinTransform", |
1251 | | - "style": style, |
1252 | | - }, |
1253 | | - encoding=transform_data.get("encoding"), |
1254 | | - categories=transform_data.get("categories"), |
1255 | | - aliases=transform_data_aliases(transform_data), |
1256 | | - ) |
1257 | | - colorspace["transforms_data"] = [transform_data] |
1258 | | - if colorspace not in colorspaces: |
1259 | | - colorspaces.append(colorspace) |
| 1238 | + colorspace = ctl_transform_to_colorspace( |
| 1239 | + ctl_transform, |
| 1240 | + describe, |
| 1241 | + amf_components, |
| 1242 | + signature_only=True, |
| 1243 | + scheme=scheme, |
| 1244 | + analytical=analytical, |
| 1245 | + to_reference={ |
| 1246 | + "transform_type": "BuiltinTransform", |
| 1247 | + "style": style, |
| 1248 | + }, |
| 1249 | + encoding=transform_data.get("encoding"), |
| 1250 | + categories=transform_data.get("categories"), |
| 1251 | + aliases=transform_data_aliases(transform_data), |
| 1252 | + ) |
| 1253 | + colorspace["transforms_data"] = [transform_data] |
| 1254 | + if colorspace not in colorspaces: |
| 1255 | + colorspaces.append(colorspace) |
1260 | 1256 |
|
1261 | 1257 | # Ordering displays, "sRGB" first and then shared views. |
1262 | 1258 | display_names = sorted(display_names) |
|
0 commit comments