diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-08-15 14:41:28 +0200 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-08-15 14:41:28 +0200 |
| commit | fec6ea1eba9cee325bbd9d82aa71b8ebf5ef90b0 (patch) | |
| tree | dec0894380a2de8721a1e7733d75053bcc5181fc /wrappers/python/src/event.py | |
| parent | c5e85ba79d4d091af9873f1fb0e7415c3b17b9f8 (diff) | |
Refactor: Use constants for state callbacks instead of strings
Diffstat (limited to 'wrappers/python/src/event.py')
| -rw-r--r-- | wrappers/python/src/event.py | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/wrappers/python/src/event.py b/wrappers/python/src/event.py index 778ce5e..0803dee 100644 --- a/wrappers/python/src/event.py +++ b/wrappers/python/src/event.py @@ -1,19 +1,14 @@ from . import VPNStateChange from enum import Enum from typing import Callable - - -class StateType(Enum): - Enter = 1 - Leave = 2 - Wait = 3 +from .state import StateType EDUVPN_CALLBACK_PROPERTY = "_eduvpn_property_callback" # A state transition decorator for classes # To use this, make sure to register the class with `register_class_callbacks` -def class_state_transition(state: str, state_type: StateType) -> Callable: +def class_state_transition(state: int, state_type: StateType) -> Callable: def wrapper(func): setattr(func, EDUVPN_CALLBACK_PROPERTY, (state, state_type)) return func @@ -45,7 +40,7 @@ class EventHandler(object): else: self.remove_event(state, state_type, method) - def remove_event(self, state: str, state_type: StateType, func: Callable): + def remove_event(self, state: int, state_type: StateType, func: Callable): for key, values in self.handlers.copy().items(): if key == (state, state_type): values.remove(func) @@ -54,13 +49,13 @@ class EventHandler(object): else: self.handlers[key] = values - def add_event(self, state: str, state_type: StateType, func: Callable): + def add_event(self, state: int, state_type: StateType, func: Callable): if (state, state_type) not in self.handlers: self.handlers[(state, state_type)] = [] self.handlers[(state, state_type)].append(func) # A decorator for standalone functions - def on(self, state: str, state_type: StateType) -> Callable: + def on(self, state: int, state_type: StateType) -> Callable: def wrapped_f(func): self.add_event(state, state_type, func) return func @@ -68,14 +63,14 @@ class EventHandler(object): return wrapped_f def run_state( - self, state: str, other_state: str, state_type: StateType, data: str + self, state: int, other_state: int, state_type: StateType, data: str ) -> None: if (state, state_type) not in self.handlers: return for func in self.handlers[(state, state_type)]: func(other_state, data) - def run(self, old_state: str, new_state: str, data: str) -> None: + def run(self, old_state: int, new_state: int, data: str) -> None: if old_state == new_state: return |
