Shortcuts

Source code for catalyst.tools.frozen_class

"""
Frozen class.
Example of usage can be found in :py:class:`catalyst.core.runner._Runner`.
"""


[docs]class FrozenClass: """Class which prohibit ``__setattr__`` on existing attributes. Examples: >>> class _Runner(FrozenClass): """ __is_frozen = False def __setattr__(self, key, value): """@TODO: Docs. Contribution is welcome.""" if self.__is_frozen and not hasattr(self, key): raise TypeError("%r is a frozen class for key %s" % (self, key)) object.__setattr__(self, key, value) def _freeze(self): self.__is_frozen = True def _unfreeze(self): self.__is_frozen = False