def __outdent(self, text, indent, startLineNo): """ Outdent multi line comment text and filtering empty lines """ lines = [] for lineNo, line in enumerate((indent+text).split("\n")): if line.startswith(indent): lines.append(line[len(indent):].rstrip()) elif line.strip() == "": lines.append("") else: # Only warn for doc comments, otherwise it might just be code commented out # which is sometimes formatted pretty crazy when commented out if self.variant == "doc": warn("Could not outdent doc comment at line %s in %s", startLineNo+lineNo, self.fileId) return text # Find first line with real content outdentString = "" for lineNo, line in enumerate(lines): if line != "" and line.strip() != "": matchedDocIndent = docIndentReg.match(line) if not matchedDocIndent: # As soon as we find a non doc indent like line we stop break elif matchedDocIndent.group(2) != "": # otherwise we look for content behind the indent to get the # correct real indent (with spaces) outdentString = matchedDocIndent.group(1) break lineNo += 1 # Process outdenting to all lines if outdentString != "": lineNo = 0 outdentStringLen = len(outdentString) for lineNo, line in enumerate(lines): if len(line) <= outdentStringLen: lines[lineNo] = "" else: if not line.startswith(outdentString): # Only warn for doc comments, otherwise it might just be code commented out # which is sometimes formatted pretty crazy when commented out if self.variant == "doc": warn("Invalid indention in doc comment at line %s in %s", startLineNo+lineNo, self.fileId) else: lines[lineNo] = line[outdentStringLen:] # Merge final lines and remove leading and trailing new lines return "\n".join(lines).strip("\n")
def extractSummary(text): try: text = stripMarkup.sub("", newlineMatcher.sub(" ", text)) matched = paragraphExtract.match(text) except TypeError: matched = None if matched: summary = matched.group(1) if summary is not None: if not summary.endswith((".", "!", "?")): summary = summary.strip() + "." return summary else: warn("Unable to extract summary for: %s", text) return None
# # Jasy - Web Tooling Framework # Copyright 2010-2012 Zynga Inc. # import sys, math from jasy.core.Error import JasyError from jasy.core.Logging import debug, warn try: import Image, ImageDraw except: warn("Python PIL is not installed. PIL is used to create sprite images.") Image = None class SpriteSheet(): def __init__(self, packer, blocks): self.packer = packer self.width = packer.root.w self.height = packer.root.h self.blocks = blocks self.area = self.width * self.height self.usedArea = sum([s.w * s.h for s in blocks]) self.used = (100 / self.area) * self.usedArea def __len__(self): return len(self.blocks)