X-Git-Url: https://git.yukkurigames.com/?p=python-bulletml.git;a=blobdiff_plain;f=bulletml%2Fparser.py;h=9d515a24b9e476343a9d829b1492454095850559;hp=b2e078b739a5153596f91fbb0af1c59ffd4aad3b;hb=d72980b6368d0ac1de1ae1091bfb0582e9afcb1d;hpb=bc6dd530488535b2edeff9afbbdde896aed73046 diff --git a/bulletml/parser.py b/bulletml/parser.py index b2e078b..9d515a2 100644 --- a/bulletml/parser.py +++ b/bulletml/parser.py @@ -13,6 +13,12 @@ import math from xml.etree.ElementTree import ElementTree +# Python 3 moved this for no really good reason. +try: + from sys import intern +except ImportError: + pass + try: from io import StringIO except ImportError: @@ -64,7 +70,7 @@ class Direction(object): def __init__(self, type, value): if type not in self.VALID_TYPES: raise ValueError("invalid type %r" % type) - self.type = type + self.type = intern(type) self.value = value def __getstate__(self): @@ -132,7 +138,7 @@ class Speed(object): def __init__(self, type, value): if type not in self.VALID_TYPES: raise ValueError("invalid type %r" % type) - self.type = type + self.type = intern(type) self.value = value def __getstate__(self): @@ -537,7 +543,7 @@ class Offset(object): def __init__(self, type, x, y): if type not in self.VALID_TYPES: raise ValueError("invalid type %r" % type) - self.type = type + self.type = intern(type) self.x = x self.y = y @@ -706,7 +712,7 @@ class BulletML(object): ) def __init__(self, type="none", actions=None): - self.type = type + self.type = intern(type) self.actions = [] if actions is None else actions def __getstate__(self): @@ -774,7 +780,7 @@ class BulletML(object): else: try: return yaml.load(source) - except Exception, exc: + except Exception as exc: raise ParseError(str(exc)) @classmethod