Source code for cosmoHammer.ChainContext
PARENT_KEY = "key_parent"
PARAMS_KEY = "key_params"
DATA_KEY = "key_data"
[docs]class ChainContext(object):
"""
Context holding a dict to store data and information durring the computation of the likelihood
"""
def __init__(self, parent, params):
"""
Constructor of the context
"""
self._data = dict()
self.add(PARENT_KEY, parent)
self.add(PARAMS_KEY, params)
self.add(DATA_KEY, dict())
[docs] def add(self, key, value):
"""
Adds the value to the context using the key
:param key: string
key to use
:param value: object
the value to store
"""
self._data[key] = value
[docs] def remove(self, key):
"""
Removes the value from the context
:param key: string
key to remove from the context
"""
assert key != None
del(self._data[key])
[docs] def contains(self, key):
"""
Checks if the key is in the context
:param key: string
key to check
:return: True if the key is in the context
"""
return key in self._data
[docs] def get(self, key, default=None):
"""
Returns the value stored in the context at the key or the default value in the
context doesn't contain the key
:param key: string
key to use
:param default: string
the default value to use if the key is not available
"""
if(self.contains(key)):
return self._data[key]
return default
[docs] def getParams(self):
"""
Returns the currently processed parameters
:return: The param of this context
"""
return self.get(PARAMS_KEY)
[docs] def getParent(self):
"""
Returns the parent
:return: The parent chain of this context
"""
return self.get(PARENT_KEY)
[docs] def getData(self):
"""
Returns the data
:return: The data of this context
"""
return self.get(DATA_KEY)