Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 15a2af5f78
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 38 lines (30 sloc) 0.987 kb
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
class FrozenDict(dict):
    """
A FrozenDict is an immutable dictionary.
"""

    def __init__(self, *args, **kwargs):
        dict.__init__(self, *args, **kwargs)
        self.__hash = None
        self.__init__ = None

    __delitem__ = None
    __setitem__ = None
    clear = None

    def copy(self):
        return type(self)(dict.copy(self))
    pop = None
    popitem = None
    setdefault = None
    update = None
    def __hash__(self):
        if self.__hash is None:
            self.__hash = hash(tuple([(key, self[key]) for key in sorted(self.keys())]))
        return self.__hash

    def __repr__(self):
        return '%s(%s)' % (type(self).__name__, dict.__repr__(self))

    @classmethod
    def fromkeys(S, v=None):
        """
FrozenDict.fromkeys(S[,v]) -> New FrozenDict with keys from S and values equal to v.
v defaults to None.
"""
        return FrozenDict(dict.fromkeys(S, v))
    
         
Something went wrong with that request. Please try again.