# Path: lib/utils/debug.py
# def Debug(classification, text):
#     if 'all' in print_classifications or classification in print_classifications:
#         print("ArcticTypescript: %s: %s" % (classification.ljust(8), text))
#     if classification not in possible_classifications:
#         print("ArcticTypescript: debug: got unknown debug message classification: %s. " \
#             "Consider adding this to possible_classifications" % classification)
#     sys.stdout.flush()
# 
# Path: lib/utils/debounce.py
# DEFAULT_DEBOUNCE_DELAY = 0.2 # Will also be used for AsyncCommand debounce


import uuid
import time
import sublime
import json
from ..utils import Debug
from ..utils.debounce import DEFAULT_DEBOUNCE_DELAY
        self.command = command
        self.project = project

        self.id = "%s-rnd%s" % (command[:6][:-1], uuid.uuid4().hex[0:5])
        self.result_callback = None
        self.replaced_callback = None
        self.executing_callback = None
        self.callback_kwargs = {}
        self.merge_behaviour = self.MERGE_IMMEDIATE
        self.debounce_time = 0
        self.json_decode_tss_answer = False

        self.time_queue = 0
        self.time_last_bounce = 0
        self.time_execute = 0
        self.time_finish = 0
        self.is_executed = False

    # ------------------------- chainable config ---------------------------------- #

    def set_id(self, _id):
        """ set id for merging. See AsyncCommand.__doc__ for more information about merging """
        self.id = _id
        return self

    def procrastinate(self):
        """ Set merging strategy to procastinate. See AsyncCommand.__doc__ for more information about merging """
        self.merge_behaviour = self.MERGE_PROCRASTINATE
        return self


# Path: lib/utils/debug.py
# def Debug(classification, text):
#     if 'all' in print_classifications or classification in print_classifications:
#         print("ArcticTypescript: %s: %s" % (classification.ljust(8), text))
#     if classification not in possible_classifications:
#         print("ArcticTypescript: debug: got unknown debug message classification: %s. " \
#             "Consider adding this to possible_classifications" % classification)
#     sys.stdout.flush()
# 
# Path: lib/utils/debounce.py
# DEFAULT_DEBOUNCE_DELAY = 0.2 # Will also be used for AsyncCommand debounce


# Path: lib/server/AsyncCommand.py
import uuid
import time
import sublime
import json
from ..utils import Debug
from ..utils.debounce import DEFAULT_DEBOUNCE_DELAY

        self.command = command
        self.project = project

        self.id = "%s-rnd%s" % (command[:6][:-1], uuid.uuid4().hex[0:5])
        self.result_callback = None
        self.replaced_callback = None
        self.executing_callback = None
        self.callback_kwargs = {}
        self.merge_behaviour = self.MERGE_IMMEDIATE
        self.debounce_time = 0
        self.json_decode_tss_answer = False

        self.time_queue = 0
        self.time_last_bounce = 0
        self.time_execute = 0
        self.time_finish = 0
        self.is_executed = False

    # ------------------------- chainable config ---------------------------------- #

    def set_id(self, _id):
        """ set id for merging. See AsyncCommand.__doc__ for more information about merging """
        self.id = _id
        return self

    def procrastinate(self):
        """ Set merging strategy to procastinate. See AsyncCommand.__doc__ for more information about merging """
        self.merge_behaviour = self.MERGE_PROCRASTINATE
        return self


    def activate_debounce(self, delay=DEFAULT_DEBOUNCE_DELAY):