@@ -167,9 +167,21 @@ def get_virtual_channels(
167167 "geometry" : geometry .name ,
168168 }
169169 if include_channel_functions :
170- virtual_channel ["channel_functions" ] = (
171- channel .logical_channels [0 ].channel_functions ,
172- )
170+ channel_functions = [
171+ {
172+ "name" : channel_function .name ,
173+ "attribute" : channel_function .attribute .str_link ,
174+ "real_fade" : channel_function .real_fade ,
175+ "channel_sets" : [
176+ channel_set .name
177+ for channel_set in channel_function .channel_sets
178+ ],
179+ }
180+ for channel_function in channel .logical_channels [
181+ 0
182+ ].channel_functions
183+ ]
184+ virtual_channel ["channel_functions" ] = channel_functions
173185 virtual_channels .append (virtual_channel )
174186 return virtual_channels
175187
@@ -270,9 +282,19 @@ def get_dmx_channels(
270282 "break" : channel_break ,
271283 }
272284 if include_channel_functions :
273- break_channel ["channel_functions" ] = channel .logical_channels [
274- 0
275- ].channel_functions
285+ channel_functions = [
286+ {
287+ "name" : channel_function .name ,
288+ "attribute" : channel_function .attribute .str_link ,
289+ "real_fade" : channel_function .real_fade ,
290+ "channel_sets" : [
291+ channel_set .name
292+ for channel_set in channel_function .channel_sets
293+ ],
294+ }
295+ for channel_function in channel .logical_channels [0 ].channel_functions
296+ ]
297+ break_channel ["channel_functions" ] = channel_functions
276298 break_channels [offset_coarse - 1 ] = break_channel
277299
278300 if offset_fine > 0 :
@@ -288,9 +310,22 @@ def get_dmx_channels(
288310 "break" : channel_break ,
289311 }
290312 if include_channel_functions :
291- break_channel ["channel_functions" ] = channel .logical_channels [
292- 0
293- ].channel_functions
313+ channel_functions = [
314+ {
315+ "name" : channel_function .name ,
316+ "attribute" : channel_function .attribute .str_link ,
317+ "real_fade" : channel_function .real_fade ,
318+ "channel_sets" : [
319+ channel_set .name
320+ for channel_set in channel_function .channel_sets
321+ ],
322+ }
323+ for channel_function in channel .logical_channels [
324+ 0
325+ ].channel_functions
326+ ]
327+ break_channel ["channel_functions" ] = channel_functions
328+
294329 break_channels [offset_fine - 1 ] = break_channel
295330
296331 dmx_channels [channel_break - 1 ] = break_channels
@@ -530,12 +565,12 @@ def calculate_complexity(gdtf_profile: Optional["pygdtf.FixtureType"] = None):
530565 channel_functions_count += len (channel_functions )
531566 physical_from_to = 0
532567 for channel_function in channel_functions :
533- channel_sets_count += len (channel_function .channel_sets )
534- if channel_function .real_fade != 0 :
568+ channel_sets_count += len (channel_function .get ( " channel_sets" , 0 ) )
569+ if channel_function .get ( " real_fade" , 0 ) != 0 :
535570 real_fade_count += 1
536- if channel_function .physical_to != 0 :
571+ if channel_function .get ( " physical_to" , 0 ) != 0 :
537572 physical_from_to += 1
538- if channel_function .physical_from != 0 :
573+ if channel_function .get ( " physical_from" , 0 ) != 0 :
539574 physical_from_to += 1
540575
541576 data = (
0 commit comments