# Path: termicoder/utils/logging.py

# 
# Path: termicoder/utils/exceptions.py
# def handle_exceptions(*exceptions):
#     """
#     Used as a decorator.
#     Takes exceptions and a function,
#     returns function warpped with try except and debug functionality
#     """
#     # TODO correct the line number
#     def wrapper(function):
#         def customized_function(*args, **kwargs):
#             logger.debug(
#                 "calling function %s" % sys.modules[function.__module__])
#             try:
#                 function(*args, **kwargs)
#             except (exceptions) as e:
#                 if(logger.level == 10 or isinstance(e, click.Abort)):
#                     raise
#                 else:
#                     logger.error("in module %s:function %s:line %s" % (
#                         sys.modules[function.__module__].__file__,
#                         function.__name__, e.__traceback__.tb_lineno))
#                     logger.error("%s %s" % (e.__class__.__name__, e))
#                     raise click.Abort
#         customized_function.__wrapped__ = True
#         customized_function.__doc__ = function.__doc__
#         return customized_function
#     return wrapper


import click
from ..utils.logging import logger
from ..utils.exceptions import handle_exceptions


@click.command()
@handle_exceptions(BaseException)
def main():
    '''
    Launches custom debug interface.
    Here you can use testcase generator,
    launch debugger for the particular language
    and visualize the output.

    NOTE:
    This functionality is not implemented in this version.
    This option is only included for compatibility purposes.
    If you want to contribute to its development visit:
    https://github.com/termicoder/termicoder
    '''

# Path: termicoder/utils/logging.py

# 
# Path: termicoder/utils/exceptions.py
# def handle_exceptions(*exceptions):
#     """
#     Used as a decorator.
#     Takes exceptions and a function,
#     returns function warpped with try except and debug functionality
#     """
#     # TODO correct the line number
#     def wrapper(function):
#         def customized_function(*args, **kwargs):
#             logger.debug(
#                 "calling function %s" % sys.modules[function.__module__])
#             try:
#                 function(*args, **kwargs)
#             except (exceptions) as e:
#                 if(logger.level == 10 or isinstance(e, click.Abort)):
#                     raise
#                 else:
#                     logger.error("in module %s:function %s:line %s" % (
#                         sys.modules[function.__module__].__file__,
#                         function.__name__, e.__traceback__.tb_lineno))
#                     logger.error("%s %s" % (e.__class__.__name__, e))
#                     raise click.Abort
#         customized_function.__wrapped__ = True
#         customized_function.__doc__ = function.__doc__
#         return customized_function
#     return wrapper


# Path: termicoder/cli/debug.py
import click
from ..utils.logging import logger
from ..utils.exceptions import handle_exceptions



@click.command()
@handle_exceptions(BaseException)
def main():
    '''
    Launches custom debug interface.
    Here you can use testcase generator,
    launch debugger for the particular language
    and visualize the output.

    NOTE:
    This functionality is not implemented in this version.
    This option is only included for compatibility purposes.
    If you want to contribute to its development visit:
    https://github.com/termicoder/termicoder
    '''

    logger.info(