# Path: tomate/pomodoro/event.py
# class Events(enum.Enum):
#     TIMER_START = 0
#     TIMER_UPDATE = 1
#     TIMER_STOP = 2
#     TIMER_END = 3
# 
#     SESSION_READY = 4
#     SESSION_START = 5
#     SESSION_INTERRUPT = 6
#     SESSION_CHANGE = 7
#     SESSION_END = 8
#     SESSION_RESET = 9
# 
#     WINDOW_SHOW = 10
#     WINDOW_HIDE = 11
# 
#     CONFIG_CHANGE = 12
# 
# def on(*events: Events):
#     def wrapper(method):
#         method._events = events
# 
#         @functools.wraps(method)
#         def wrapped(*args, **kwargs):
#             return method(*(arg for arg in args if not isinstance(arg, Events)), **kwargs)
# 
#         return wrapped
# 
#     return wrapper


import tomate.pomodoro.plugin as plugin
from tomate.pomodoro import Events, on


class PluginB(plugin.Plugin):
    has_settings = False

    @on(Events.WINDOW_SHOW)
    def listener(self, **__) -> str:

# Path: tomate/pomodoro/event.py
# class Events(enum.Enum):
#     TIMER_START = 0
#     TIMER_UPDATE = 1
#     TIMER_STOP = 2
#     TIMER_END = 3
# 
#     SESSION_READY = 4
#     SESSION_START = 5
#     SESSION_INTERRUPT = 6
#     SESSION_CHANGE = 7
#     SESSION_END = 8
#     SESSION_RESET = 9
# 
#     WINDOW_SHOW = 10
#     WINDOW_HIDE = 11
# 
#     CONFIG_CHANGE = 12
# 
# def on(*events: Events):
#     def wrapper(method):
#         method._events = events
# 
#         @functools.wraps(method)
#         def wrapped(*args, **kwargs):
#             return method(*(arg for arg in args if not isinstance(arg, Events)), **kwargs)
# 
#         return wrapped
# 
#     return wrapper


# Path: tests/data/tomate/plugins/plugin_b.py
import tomate.pomodoro.plugin as plugin
from tomate.pomodoro import Events, on



class PluginB(plugin.Plugin):
    has_settings = False

    @on(Events.WINDOW_SHOW)
    def listener(self, **__) -> str:

        return "plugin_b"