# Path: kll/common/emitter.py
# class Emitter(object):
#     '''
#     KLL Emitter Base Class
# 
#     NOTE: Emitter should do as little as possible in the __init__ function.
#     '''
# 
#     def __init__(self, control):
#         '''
#         Emitter initialization
# 
#         @param control: ControlStage object, used to access data from other stages
#         '''
#         self.control = control
#         self.color = False
# 
#         # Signal erroring due to an issue
#         # We may not want to exit immediately as we could find other potential
#         # issues that need fixing
#         self.error_exit = False
# 
#     def command_line_args(self, args):
#         '''
#         Group parser for command line arguments
# 
#         @param args: Name space of processed arguments
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#                 .format(
#                         WARNING,
#                         self.command_line_args.__name__,
#                         type(self).__name__
#                 )
#         )
# 
#     def command_line_flags(self, parser):
#         '''
#         Group parser for command line options
# 
#         @param parser: argparse setup object
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.command_line_flags.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def process(self):
#         '''
#         Emitter Processing
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.process.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def output(self):
#         '''
#         Final Stage of Emitter
# 
#         Generate desired outputs
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.output.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def check(self):
#         '''
#         Determines whether or not we've successfully emitted.
#         '''
#         return not self.error_exit


import json
import os
from kll.common.emitter import Emitter
        # Avoid infinite nesting
        if type(o).__name__ in [
            "ThreadPool",
            "Emitters",
            "ControlStage",

            "ConfigurationContext",
            "BaseMapContext",
            "DefaultMapContext",
            "PartialMapContext",

            "MapExpression",
            "Organization",
        ]:
            return str(o)

        # Print all class variables
        result = dict()
        for key, value in o.__dict__.items():
            # Avoid circular reference
            if type(o).__name__ == "AnimationModifierArg" and key=="parent":
                value = str(value)

            # May be a bit large to look at
            #if key in ['organization', 'context', 'contexts']:
            #    continue

            result[key] = value
        return result


# Path: kll/common/emitter.py
# class Emitter(object):
#     '''
#     KLL Emitter Base Class
# 
#     NOTE: Emitter should do as little as possible in the __init__ function.
#     '''
# 
#     def __init__(self, control):
#         '''
#         Emitter initialization
# 
#         @param control: ControlStage object, used to access data from other stages
#         '''
#         self.control = control
#         self.color = False
# 
#         # Signal erroring due to an issue
#         # We may not want to exit immediately as we could find other potential
#         # issues that need fixing
#         self.error_exit = False
# 
#     def command_line_args(self, args):
#         '''
#         Group parser for command line arguments
# 
#         @param args: Name space of processed arguments
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#                 .format(
#                         WARNING,
#                         self.command_line_args.__name__,
#                         type(self).__name__
#                 )
#         )
# 
#     def command_line_flags(self, parser):
#         '''
#         Group parser for command line options
# 
#         @param parser: argparse setup object
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.command_line_flags.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def process(self):
#         '''
#         Emitter Processing
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.process.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def output(self):
#         '''
#         Final Stage of Emitter
# 
#         Generate desired outputs
#         '''
#         print("{0} '{1}' '{2}' has not been implemented yet"
#             .format(
#                 WARNING,
#                 self.output.__name__,
#                 type(self).__name__
#             )
#         )
# 
#     def check(self):
#         '''
#         Determines whether or not we've successfully emitted.
#         '''
#         return not self.error_exit


# Path: kll/emitters/state/state.py
import json
import os
from kll.common.emitter import Emitter

        # Avoid infinite nesting
        if type(o).__name__ in [
            "ThreadPool",
            "Emitters",
            "ControlStage",

            "ConfigurationContext",
            "BaseMapContext",
            "DefaultMapContext",
            "PartialMapContext",

            "MapExpression",
            "Organization",
        ]:
            return str(o)

        # Print all class variables
        result = dict()
        for key, value in o.__dict__.items():
            # Avoid circular reference
            if type(o).__name__ == "AnimationModifierArg" and key=="parent":
                value = str(value)

            # May be a bit large to look at
            #if key in ['organization', 'context', 'contexts']:
            #    continue

            result[key] = value
        return result


class State(Emitter):