def generate(self): tf = pml.TextFormatter(self.sp.cfg.paperWidth, self.sp.cfg.paperHeight, 15.0, 12) scriptLines = sum([li.lines for li in self.locations]) for li in self.locations: tf.addSpace(5.0) # list of (scenename, lines_in_scene) tuples, which we sort in # DESC(lines_in_scene) ASC(scenename) order. tmp = [(scene, self.scenes[scene].lines) for scene in li.scenes] # PY2.4: this should work (test it): # tmp.sort(key=itemgetter(0)) # tmp.sort(key=itemgetter(1) reverse=True) tmp.sort(lambda x, y: cmp(x[0], y[0])) tmp.reverse() tmp.sort(lambda x, y: cmp(x[1], y[1])) tmp.reverse() for scene, lines in tmp: if len(tmp) > 1: pct = " (%d%%)" % util.pct(lines, li.lines) else: pct = "" tf.addText("%s%s" % (scene, pct), style = pml.BOLD) tf.addSpace(1.0) tf.addWrappedText("Lines: %d (%d%% action, %d%% of script)," " Scenes: %d, Pages: %d (%s)" % (li.lines, util.pct(li.actionLines, li.lines), util.pct(li.lines, scriptLines), li.sceneCount, len(li.pages), li.pages), " ") if self.inf[self.INF_SPEAKERS].selected: tf.addSpace(2.5) for it in util.sortDict(li.chars): tf.addText(" %3d %s" % (it[1], it[0])) return pdf.generate(tf.doc)
def generate(self): tf = pml.TextFormatter(self.sp.cfg.paperWidth, self.sp.cfg.paperHeight, 15.0, 12) scriptLines = sum([li.lines for li in self.locations]) for li in self.locations: tf.addSpace(5.0) # list of (scenename, lines_in_scene) tuples, which we sort in # DESC(lines_in_scene) ASC(scenename) order. tmp = [(scene, self.scenes[scene].lines) for scene in li.scenes] # PY2.4: this should work (test it): # tmp.sort(key=itemgetter(0)) # tmp.sort(key=itemgetter(1) reverse=True) tmp.sort(lambda x, y: cmp(x[0], y[0])) tmp.reverse() tmp.sort(lambda x, y: cmp(x[1], y[1])) tmp.reverse() for scene, lines in tmp: if len(tmp) > 1: pct = " (%d%%)" % util.pct(lines, li.lines) else: pct = "" tf.addText("%s%s" % (scene, pct), style=pml.BOLD) tf.addSpace(1.0) tf.addWrappedText( "Lines: %d (%d%% action, %d%% of script)," " Scenes: %d, Pages: %d (%s)" % (li.lines, util.pct(li.actionLines, li.lines), util.pct(li.lines, scriptLines), li.sceneCount, len( li.pages), li.pages), " ") if self.inf[self.INF_SPEAKERS].selected: tf.addSpace(2.5) for it in util.sortDict(li.chars): tf.addText(" %3d %s" % (it[1], it[0])) return pdf.generate(tf.doc)
def generate(self): tf = pml.TextFormatter(self.sp.cfg.paperWidth, self.sp.cfg.paperHeight, 15.0, 12) for si in self.scenes: tf.addSpace(5.0) tf.addText("%-4s %s" % (si.number, si.name), style=pml.BOLD) tf.addSpace(1.0) tf.addText(" Lines: %d (%s%% action), Pages: %d" " (%s)" % (si.lines, util.pct( si.actionLines, si.lines), len(si.pages), si.pages)) if self.inf[self.INF_SPEAKERS].selected: tf.addSpace(2.5) for it in util.sortDict(si.chars): tf.addText(" %3d %s" % (it[1], it[0])) return pdf.generate(tf.doc)
def generate(self): tf = pml.TextFormatter(self.sp.cfg.paperWidth, self.sp.cfg.paperHeight, 15.0, 12) for si in self.scenes: tf.addSpace(5.0) tf.addText("%-4s %s" % (si.number, si.name), style = pml.BOLD) tf.addSpace(1.0) tf.addText(" Lines: %d (%s%% action), Pages: %d" " (%s)" % (si.lines, util.pct(si.actionLines, si.lines), len(si.pages), si.pages)) if self.inf[self.INF_SPEAKERS].selected: tf.addSpace(2.5) for it in util.sortDict(si.chars): tf.addText(" %3d %s" % (it[1], it[0])) return pdf.generate(tf.doc)
def generate(self): tf = pml.TextFormatter(self.sp.cfg.paperWidth, self.sp.cfg.paperHeight, 15.0, 12) ls = self.sp.lines total = len(ls) tf.addText("%5d Lines in Screenplay" % total) tf.addSpace(2.0) for t in config.getTIs(): cnt = sum([1 for line in ls if line.lt == t.lt]) tf.addText(" %13s %4d (%d%%)" % (t.name, cnt, util.pct(cnt, total))) tf.addSpace(4.0) intLines = sum([ si.lines for si in self.sr.scenes if util.upper(si.name).startswith("INT.") ]) extLines = sum([ si.lines for si in self.sr.scenes if util.upper(si.name).startswith("EXT.") ]) tf.addText("%d%% Interior / %d%% Exterior Scenes" % (util.pct(intLines, intLines + extLines), util.pct(extLines, intLines + extLines))) tf.addSpace(4.0) tf.addText("Scene Length in Lines: %d Max / %.2f Avg." % (self.sr.longestScene, self.sr.avgScene)) # lengths of action elements actions = [] # length of current action element curLen = 0 for ln in ls: if curLen > 0: if ln.lt == screenplay.ACTION: curLen += 1 if ln.lb == screenplay.LB_LAST: actions.append(curLen) curLen = 0 else: actions.append(curLen) curLen = 0 else: if ln.lt == screenplay.ACTION: curLen = 1 if curLen > 0: actions.append(curLen) tf.addSpace(4.0) # avoid divide-by-zero if len(actions) > 0: maxA = max(actions) avgA = sum(actions) / float(len(actions)) else: maxA = 0 avgA = 0.0 tf.addText("Action Length in Lines: %d Max / %.2f Avg." % (maxA, avgA)) tf.addSpace(4.0) tf.addText("%d Speaking Characters" % len(self.cr.cinfo)) return pdf.generate(tf.doc)
def generate(self): tf = pml.TextFormatter(self.sp.cfg.paperWidth, self.sp.cfg.paperHeight, 15.0, 12) ls = self.sp.lines total = len(ls) tf.addText("%5d Lines in Screenplay" % total) tf.addSpace(2.0) for t in config.getTIs(): cnt = sum([1 for line in ls if line.lt == t.lt]) tf.addText(" %13s %4d (%d%%)" % (t.name, cnt, util.pct(cnt, total))) tf.addSpace(4.0) intLines = sum([si.lines for si in self.sr.scenes if util.upper(si.name).startswith("INT.")]) extLines = sum([si.lines for si in self.sr.scenes if util.upper(si.name).startswith("EXT.")]) tf.addText("%d%% Interior / %d%% Exterior Scenes" % ( util.pct(intLines, intLines + extLines), util.pct(extLines, intLines + extLines))) tf.addSpace(4.0) tf.addText("Scene Length in Lines: %d Max / %.2f Avg." % ( self.sr.longestScene, self.sr.avgScene)) # lengths of action elements actions = [] # length of current action element curLen = 0 for ln in ls: if curLen > 0: if ln.lt == screenplay.ACTION: curLen += 1 if ln.lb == screenplay.LB_LAST: actions.append(curLen) curLen = 0 else: actions.append(curLen) curLen = 0 else: if ln.lt == screenplay.ACTION: curLen = 1 if curLen > 0: actions.append(curLen) tf.addSpace(4.0) # avoid divide-by-zero if len(actions) > 0: maxA = max(actions) avgA = sum(actions) / float(len(actions)) else: maxA = 0 avgA = 0.0 tf.addText("Action Length in Lines: %d Max / %.2f Avg." % ( maxA, avgA)) tf.addSpace(4.0) tf.addText("%d Speaking Characters" % len(self.cr.cinfo)) return pdf.generate(tf.doc)