Files
@ c74fe7efabc1
Branch filter:
Location: light9/light8/sub_analyzer.py - annotation
c74fe7efabc1
3.8 KiB
text/x-python
Submaster analysis to help with gel pickage
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 c74fe7efabc1 c74fe7efabc1 c74fe7efabc1 c74fe7efabc1 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 c74fe7efabc1 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 c74fe7efabc1 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 | from Subs import *
from Patch import *
from types import TupleType
from Config import patch, subs
import re
import Patch
Patch.reload_data(0)
def resolve_name(channelname):
"Insure that we're talking about the primary name of the light"
return Patch.get_channel_name(Patch.get_dmx_channel(channelname))
subusage = {}
# colors = 'ROGBVndcihs'
colors = 'ndcihs'
color_chart = {
'1-01' : 'ROYd', # broadway (morning - afternoon)
'1-02' : 'i', # int. mission
'1-03' : 'R', # phone booth
'1-04' : 'RBVh', # hotbox
'1-05' : 'RBd', # off broadway
'1-06' : 'ROYd', # ext. mission
'1-07' : 'ROYn', # gambler intro, off broadway
'1-08' : 'ROBIVc', # havana, clubs
'1-09' : 'ROYBIVc', # havana, outside, night
'1-10' : 'BVn', # ext. mission, night (4am)
'2-01' : 'RBIVh', # hotbox
'2-02' : 'RBn', # more can i wish you
'2-03' : 'GBs', # sewer (crap game)
'2-04' : 'Bn', # sue me
'2-05' : 'i', # int. mission
'2-06' : '', # marry
'2-07' : 'd', # broadway finale
}
scene_names = {
'1-01' : 'broadway (morning to afternoon)',
'1-02' : 'int. mission',
'1-03' : 'phone booth',
'1-04' : 'hotbox',
'1-05' : 'guys and dolls (off broadway)',
'1-06' : 'ext. mission, lunch time',
'1-07' : 'gambler intro, off broadway',
'1-08' : 'havana, clubs',
'1-09' : 'havana, outside, night',
'1-10' : 'ext. mission, night (4am)',
'2-01' : 'hotbox',
'2-02' : 'more can i wish you',
'2-03' : 'sewer (crap game)',
'2-04' : 'sue me',
'2-05' : 'rock the boat (int. mission)',
'2-06' : 'marry (trav)',
'2-07' : 'finale (broadway)',
}
sub_to_scene = {}
blacklist = 'god upfill1 upfill2 upfill3 upfill4 red1 red2 red3 red4 blue1 blue2 blue3 blue4 cycleft cycright sidefill1 sidefill2'.split()
blacklist.extend(['side l','side r'])
for subname, levdict in subs.items():
if type(subname) == TupleType:
subname = subname[0]
oldname = subname
subname = re.sub(r'\*(\d-\d+)-.*', r'\1', subname)
if oldname == subname: continue
sub_to_scene[oldname] = subname
subname = oldname # restore 'em. restore 'em good.
if not levdict:
print "Warning: %s is useless (empty sub)." % subname
else:
for ch, lev in levdict.items():
if lev:
ch = resolve_name(ch)
subusage.setdefault(ch, [])
subusage[ch].append((lev, subname))
def twist(l):
return [(b,a) for a,b in l]
def format_usage(ch, usage):
if ch in blacklist: return
usage=twist(usage)
usage.sort()
# usage.reverse()
usage=twist(usage)
print "======= %s ======= (%d uses)" % (ch, len(usage))
if 1:
use_str = ''
for lev, sub in usage:
if lev>30:
if sub_to_scene[sub] in color_chart:
subcolors = color_chart[sub_to_scene[sub]]
col_str = ''
for c in colors:
if c in subcolors: col_str += c
else: col_str += ' '
print col_str,
else:
print ' ' * len(colors),
scenename = scene_names.get(sub_to_scene[sub], '')
levbar="*"*(lev//5)
print ' %3d %-20s\t%-30s %s' % (lev, levbar,sub, scenename)
else:
use_str = '\n '.join(["%d\t%s" % (lev, sub) for lev, sub in usage])
print ' ' + use_str
subitems = subusage.items()
subitems.sort()
for ch, usage in subitems:
if 0:
usedict = {}
for lev, subname in usage: # remove duplicates
usedict[subname] = max(lev, usedict.get(subname, 0))
newusage = [(lev, sub) for sub, lev in usedict.items()]
format_usage(ch, newusage)
else:
format_usage(ch, usage)
|