From: Joe Wreschnig Date: Thu, 18 Mar 2010 09:37:36 +0000 (-0700) Subject: Python 3 support. X-Git-Url: https://git.yukkurigames.com/?a=commitdiff_plain;h=4bb0077fd274237fb81db63460620470b1f6d520;p=python-bulletml.git Python 3 support. --- diff --git a/bulletml/parser.py b/bulletml/parser.py index de3e817..2ad648c 100644 --- a/bulletml/parser.py +++ b/bulletml/parser.py @@ -14,9 +14,12 @@ import math from xml.etree.ElementTree import ElementTree try: - from cStringIO import StringIO + from io import StringIO except ImportError: - from StringIO import StringIO + try: + from cStringIO import StringIO + except ImportError: + from StringIO import StringIO from bulletml.errors import Error from bulletml.expr import NumberDef, INumberDef @@ -524,7 +527,7 @@ class BulletML(object): @classmethod def FromDocument(cls, source): """Return a BulletML instance based on a string or file-like.""" - if isinstance(source, (str, unicode)): + if not hasattr(source, 'read'): source = StringIO(source) tree = ElementTree() @@ -564,7 +567,7 @@ class BulletML(object): @property def top(self): """Get a list of all top-level actions.""" - return [dfn for name, dfn in self.actions.iteritems() + return [dfn for name, dfn in self.actions.items() if name and name.startswith("top")] def __repr__(self):