From: Joe Wreschnig Date: Sat, 20 Mar 2010 07:41:55 +0000 (-0700) Subject: Intern type strings for faster comparison during action running. X-Git-Url: https://git.yukkurigames.com/?p=python-bulletml.git;a=commitdiff_plain;h=d72980b6368d0ac1de1ae1091bfb0582e9afcb1d;ds=sidebyside Intern type strings for faster comparison during action running. --- diff --git a/bulletml/parser.py b/bulletml/parser.py index 86dfe3c..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):