Skip to content

Commit d8b2fae

Browse files
committed
fix OrderedDict for Python 2.6
1 parent a40fd8b commit d8b2fae

File tree

1 file changed

+28
-8
lines changed

1 file changed

+28
-8
lines changed

histogrammar/defs.py

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,32 @@
1515
# limitations under the License.
1616

1717
import base64
18-
import collections
1918
import datetime
2019
import json as jsonlib
2120
import math
2221
import random
2322
import re
23+
try:
24+
from collections import OrderedDict
25+
except ImportError:
26+
class OrderedDict(object):
27+
def __init__(self):
28+
self.pairs = {}
29+
self.keys = []
30+
def __setitem__(self, key, value):
31+
self.pairs[key] = value
32+
if key not in self.keys:
33+
self.keys.append(key)
34+
def __getitem__(self, key):
35+
return self.pairs[key]
36+
def values(self):
37+
return [self.pairs[k] for k in self.keys]
38+
def items(self):
39+
return [(k, self.pairs[k]) for k in self.keys]
40+
def __iter__(self):
41+
return iter(self.keys)
42+
def __len__(self):
43+
return len(self.keys)
2444

2545
from histogrammar.util import *
2646
from histogrammar.parsing import C99SourceToAst
@@ -251,7 +271,7 @@ def fillroot(self, ttree, start=-1, end=-1, debug=False, debugOnError=True, **ex
251271
derivedFieldTypes = {}
252272
derivedFieldExprs = {}
253273

254-
storageStructs = collections.OrderedDict()
274+
storageStructs = OrderedDict()
255275
initCode = []
256276
fillCode = []
257277
weightVars = ["weight_0"]
@@ -323,11 +343,11 @@ def cuda(self, namespace=True, namespaceName=None, writeSize=False, commentMain=
323343
parser = C99SourceToAst()
324344
generator = C99AstToSource()
325345

326-
inputFieldNames = collections.OrderedDict()
346+
inputFieldNames = OrderedDict()
327347
inputFieldTypes = {}
328348
derivedFieldTypes = {}
329-
derivedFieldExprs = collections.OrderedDict()
330-
storageStructs = collections.OrderedDict()
349+
derivedFieldExprs = OrderedDict()
350+
storageStructs = OrderedDict()
331351
initCode = []
332352
fillCode = []
333353
combineCode = []
@@ -595,11 +615,11 @@ def fillpycuda(self, **exprs):
595615
parser = C99SourceToAst()
596616
generator = C99AstToSource()
597617

598-
inputFieldNames = collections.OrderedDict()
618+
inputFieldNames = OrderedDict()
599619
inputFieldTypes = {}
600620
derivedFieldTypes = {}
601-
derivedFieldExprs = collections.OrderedDict()
602-
storageStructs = collections.OrderedDict()
621+
derivedFieldExprs = OrderedDict()
622+
storageStructs = OrderedDict()
603623
initCode = []
604624
fillCode = []
605625
combineCode = []

0 commit comments

Comments
 (0)