From 4bb0077fd274237fb81db63460620470b1f6d520 Mon Sep 17 00:00:00 2001 From: Joe Wreschnig Date: Thu, 18 Mar 2010 02:37:36 -0700 Subject: [PATCH] Python 3 support. --- bulletml/parser.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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): -- 2.30.2