Source code for enaml.core.operator_context

#------------------------------------------------------------------------------
#  Copyright (c) 2012, Enthought, Inc.
#  All rights reserved.
#------------------------------------------------------------------------------
[docs]class OperatorContext(dict): """ The Enaml operator context which provides the binding operators for Enaml components and a means by which developers can author custom operators. The OperatorContext is a dict subclass which is used by the Enaml runtime to lookup the operator functions required to bind an expression to an attribute of a component. """ _stack_ = [] _default_context_ = None @staticmethod
[docs] def active_context(): """ A staticmethod that returns the currently active operator context, or the default context if there is not active context. """ stack = OperatorContext._stack_ if not stack: ctxt = OperatorContext.default_context() else: ctxt = stack[-1] return ctxt
@staticmethod
[docs] def default_context(): """ A staticmethod that returns the default operator context, creating one if necessary. """ ctxt = OperatorContext._default_context_ if ctxt is None: from enaml import default_operator_context ctxt = default_operator_context() OperatorContext._default_context_ = ctxt return ctxt
[docs] def __enter__(self): """ A context manager method that pushes this context onto the active context stack. """ OperatorContext._stack_.append(self)
[docs] def __exit__(self, exc_type, exc_value, traceback): """ A context manager method that pops this context from the active context stack. """ OperatorContext._stack_.pop()