# Path: botoflow/context/context_base.py
# class ContextBase(object):
# 
#     thread_local = threading.local()
# 
#     # Python has no good support for class properties
#     @classmethod
#     def get_context(cls):
#         context = cls.thread_local.flow_current_context
#         if DEBUG:
#             log.debug("Current context: %s", context)
#         return context
# 
#     @classmethod
#     def set_context(cls, context):
#         if DEBUG:
#             log.debug("Setting context: %s", context)
#         cls.thread_local.flow_current_context = context
# 
# Path: botoflow/workflow_execution.py
# class WorkflowExecution(namedtuple('WorkflowExecution', 'workflow_id run_id')):
#     """Contains workflow execution information provided by SWF.
# 
#     .. py:attribute:: workflow_id
# 
#         Either provided or randomly generated Workflow ID. There can only be one workflow running with the same
#         Workflow ID.
# 
#         :rtype: str
# 
#     .. py:attribute:: run_id
# 
#         SWF generated and provided Run ID associated with a particular workflow execution
# 
#         :rtype: str
# 
#     """


from .context_base import ContextBase
from ..workflow_execution import WorkflowExecution
# Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License").
# You may not use this file except in compliance with the License.
# A copy of the License is located at
#
#  http://aws.amazon.com/apache2.0
#
# or in the "license" file accompanying this file. This file is distributed
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
# express or implied. See the License for the specific language governing
# permissions and limitations under the License.



class DecisionContext(ContextBase):
    """Decision context provides information about current workflow execution
    """

    def __init__(self, decider):
        self.decider = decider

        self._workflow_time = 0
        self._replaying = True

        self._activity_options_overrides = dict()
        self._workflow_options_overrides = dict()

        self._workflow_instance = None

# Path: botoflow/context/context_base.py
# class ContextBase(object):
# 
#     thread_local = threading.local()
# 
#     # Python has no good support for class properties
#     @classmethod
#     def get_context(cls):
#         context = cls.thread_local.flow_current_context
#         if DEBUG:
#             log.debug("Current context: %s", context)
#         return context
# 
#     @classmethod
#     def set_context(cls, context):
#         if DEBUG:
#             log.debug("Setting context: %s", context)
#         cls.thread_local.flow_current_context = context
# 
# Path: botoflow/workflow_execution.py
# class WorkflowExecution(namedtuple('WorkflowExecution', 'workflow_id run_id')):
#     """Contains workflow execution information provided by SWF.
# 
#     .. py:attribute:: workflow_id
# 
#         Either provided or randomly generated Workflow ID. There can only be one workflow running with the same
#         Workflow ID.
# 
#         :rtype: str
# 
#     .. py:attribute:: run_id
# 
#         SWF generated and provided Run ID associated with a particular workflow execution
# 
#         :rtype: str
# 
#     """


# Path: botoflow/context/decision_context.py
from .context_base import ContextBase
from ..workflow_execution import WorkflowExecution

# Copyright 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License").
# You may not use this file except in compliance with the License.
# A copy of the License is located at
#
#  http://aws.amazon.com/apache2.0
#
# or in the "license" file accompanying this file. This file is distributed
# on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
# express or implied. See the License for the specific language governing
# permissions and limitations under the License.



class DecisionContext(ContextBase):
    """Decision context provides information about current workflow execution
    """

    def __init__(self, decider):
        self.decider = decider

        self._workflow_time = 0
        self._replaying = True

        self._activity_options_overrides = dict()
        self._workflow_options_overrides = dict()

        self._workflow_instance = None

        self._workflow_execution = WorkflowExecution(None, None)