Main Page
Namespaces
Classes
Package Documentation
CVS Directory
WorkBook
Offline Guide
Release schedule
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
HLTrigger
Configuration
python
Tools
frozendict.py
Go to the documentation of this file.
1
# frozendict clas, from http://code.activestate.com/recipes/414283-frozen-dictionaries/
2
3
import
copy
4
5
class
frozendict
(dict):
6
def
_blocked_attribute
(obj):
7
raise
AttributeError(
"A frozendict cannot be modified."
)
8
_blocked_attribute = property(_blocked_attribute)
9
10
__delitem__ = __setitem__ = clear = _blocked_attribute
11
pop = popitem = setdefault = update = _blocked_attribute
12
13
def
__new__
(cls, *args, **kw):
14
new = dict.__new__(cls)
15
16
args_ = []
17
for
arg
in
args:
18
if
isinstance(arg, dict):
19
arg = copy.copy(arg)
20
for
k, v
in
arg.items():
21
if
isinstance(v, dict):
22
arg[k] =
frozendict
(v)
23
elif
isinstance(v, list):
24
v_ = list()
25
for
elm
in
v:
26
if
isinstance(elm, dict):
27
v_.append(
frozendict
(elm) )
28
else
:
29
v_.append( elm )
30
arg[k] = tuple(v_)
31
args_.append( arg )
32
else
:
33
args_.append( arg )
34
35
dict.__init__(new, *args_, **kw)
36
return
new
37
38
def
__init__
(self, *args, **kw):
39
pass
40
41
def
__hash__
(self):
42
try
:
43
return
self._cached_hash
44
except
AttributeError:
45
h = self.
_cached_hash
=
hash
(frozenset(self.items()))
46
return
h
47
48
def
__repr__
(self):
49
return
"frozendict(%s)"
% dict.__repr__(self)
50
frozendict.frozendict._cached_hash
_cached_hash
Definition:
frozendict.py:45
frozendict.frozendict.__hash__
def __hash__
Definition:
frozendict.py:41
frozendict.frozendict._blocked_attribute
_blocked_attribute
Definition:
frozendict.py:8
frozendict.frozendict.__new__
def __new__
Definition:
frozendict.py:13
frozendict.frozendict.__repr__
def __repr__
Definition:
frozendict.py:48
frozendict.frozendict
Definition:
frozendict.py:5
frozendict.frozendict.__init__
def __init__
Definition:
frozendict.py:38
cond::hash
Definition:
Time.h:19
Generated for CMSSW Reference Manual by
1.8.5