summaryrefslogtreecommitdiffstats
path: root/func/yaml/ordered_dict.py
blob: 5bc2e3e0210372c66246a74ef41310a6164acd5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
"""
pyyaml legacy
Copyright (c) 2001 Steve Howell and Friends; All Rights Reserved
(see open source license information in docs/ directory)
"""


# This is extremely crude implementation of an OrderedDict.
# If you know of a better implementation, please send it to
# the author Steve Howell.  You can find my email via
# the YAML mailing list or wiki.

class OrderedDict(dict):
    def __init__(self):
        self._keys = []

    def __setitem__(self, key, val):
        self._keys.append(key)
        dict.__setitem__(self, key, val)

    def keys(self):
        return self._keys

    def items(self):
        return [(key, self[key]) for key in self._keys]

if __name__ == '__main__':
    data = OrderedDict()
    data['z'] = 26
    data['m'] = 13
    data['a'] = 1
    for key in data.keys():
        print "The value for %s is %s" % (key, data[key])
    print data