From f0571083603c3b3db32611c5dc9a46a9185e87c0 Mon Sep 17 00:00:00 2001 From: Steven Robertson Date: Sat, 17 Dec 2011 20:31:01 -0500 Subject: [PATCH] Change a method's arguments arbitrarily --- cuburn/genome.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/cuburn/genome.py b/cuburn/genome.py index 74fbfff..0b22b7a 100644 --- a/cuburn/genome.py +++ b/cuburn/genome.py @@ -255,9 +255,6 @@ class XMLGenomeParser(object): self.parser.StartElementHandler = self.start_element self.parser.EndElementHandler = self.end_element - def parse(self, file): - self.parser.ParseFile(file) - def start_element(self, name, attrs): if name == 'flame': assert self._flame is None @@ -276,6 +273,12 @@ class XMLGenomeParser(object): self.flames.append(self._flame) self._flame = None + @classmethod + def parse(cls, src): + parser = cls() + parser.parser.Parse(src, True) + return parser.flames + def convert_flame(flame): """ Convert an XML flame (as returned by XMLGenomeParser) into a plain dict @@ -372,12 +375,11 @@ def convert_affine(aff, animate=False): def convert_file(path): """Quick one-shot conversion for an XML genome.""" - p = GenomeParser() - p.parse(open(path)) - if len(p.flames) > 10: + flames = XMLGenomeParser.parse(open(path).read()) + if len(flames) > 10: warnings.warn("Lot of flames in this file. Sure it's not a " "frame-based animation?") - for flame in p.flames: + for flame in flames: yield convert_flame(flame) if __name__ == "__main__":