Galaxie EveLoop 0.1.5 documentation


Navigation:   | Index   | Search   | Top   | Up   |
Table of Content: |

© Copyright 2021-2024, Galaxie EveLoop Team all right reserved.

Top » Module code » glxeveloop.hooks

Source code for glxeveloop.hooks

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# It script it publish under GNU GENERAL PUBLIC LICENSE
# http://www.gnu.org/licenses/gpl-3.0.en.html
# Author: the Galaxie EveLoop Team, all rights reserved

import logging
from glxeveloop.properties.debug import DebugProperty


[docs] class Hooks(DebugProperty): def __init__(self): DebugProperty.__init__(self) self.__statement = None self.__parsing = None self.__pre = None self.__cmd = None self.__post = None self.__finalization = None self.__dispatch = None self.__keyboard_interruption = None self.statement = None self.parsing = None self.pre = None self.cmd = None self.post = None self.finalization = None self.dispatch = None self.keyboard_interruption = None @property def statement(self): """ Register a hook to be called before parsing information, support to iterate the application :return: A callable function :rtype: callable """ return self.__statement @statement.setter def statement(self, value): """ Set the ``statement`` property value :param value: A callable function :type value: callable :raise TypeError: When ``statement`` property is not a ``callable`` or None """ if value and not hasattr(value, "__call__"): raise TypeError("'statement' property value must be a callable") if value != self.statement: if self.debug: logging.debug("%s", f"{self.__class__.__name__}: [STATEMENT] {value}") self.__statement = value @property def parsing(self): """ Register a hook to be called after have received ``statement`` from the application. :return: A callable function :rtype: callable """ return self.__parsing @parsing.setter def parsing(self, value): """ Set the ``parsing`` property value :param value: A callable function :type value: callable :raise TypeError: When ``parsing`` property is not a ``callable`` or None """ if value and not hasattr(value, "__call__"): raise TypeError("'parsing' property value must be a callable") if value != self.parsing: if self.debug: logging.debug("%s", f"{self.__class__.__name__}: [PARSING] {value}") self.__parsing = value @property def pre(self): """ Register a hook to be called before the command function. :return: A callable function :rtype: callable """ return self.__pre @pre.setter def pre(self, value): """ Set the ``cmd`` property value :param value: A callable function :type value: callable :raise TypeError: When ``pre`` property is not a ``callable`` or None """ if value and not hasattr(value, "__call__"): raise TypeError("'pre' property value must be a callable") if value != self.pre: if self.debug: logging.debug("%s", f"{self.__class__.__name__}: [PRE] {value}") self.__pre = value @property def cmd(self): """ Register a hook to be called as the command function. :return: A callable function :rtype: callable """ return self.__cmd @cmd.setter def cmd(self, value): """ Set the ``cmd`` property value :param value: A callable function :type value: callable :raise TypeError: When ``cmd`` property is not a ``callable`` or None """ if value and not hasattr(value, "__call__"): raise TypeError("'cmd' property value must be a callable") if value != self.cmd: if self.debug: logging.debug("%s", f"{self.__class__.__name__}: [CMD] {value}") self.__cmd = value @property def post(self): """ Register a hook to be called after the command function. :return: A callable function :rtype: callable """ return self.__post @post.setter def post(self, value): """ Set the ``post`` property value :param value: A callable function :type value: callable :raise TypeError: When ``post`` property is not a ``callable`` or None """ if value and not hasattr(value, "__call__"): raise TypeError("'post' property value must be a callable") if value != self.post: if self.debug: logging.debug("%s", f"{self.__class__.__name__}: [POST] {value}") self.__post = value @property def finalization(self): """ Register a hook to be called just before mainloop exit, whether it completes successfully or not. :return: A callable function :rtype: callable """ return self.__finalization @finalization.setter def finalization(self, value): """ Set the ``finalization`` property value :param value: A callable function :type value: callable :raise TypeError: When ``finalization`` property is not a ``callable`` or None """ if value and not hasattr(value, "__call__"): raise TypeError("'finalization' property value must be a callable") if value != self.finalization: if self.debug: logging.debug( "%s", f"{self.__class__.__name__}: [FINALIZATION] {value}" ) self.__finalization = value @property def dispatch(self): """ Should be remove soon :return: A callable function :rtype: callable """ return self.__dispatch @dispatch.setter def dispatch(self, value): """ Set the ``dispatch`` property value :param value: A callable function :type value: callable :raise TypeError: When ``dispatch`` property is not a ``callable`` or None """ if value and not hasattr(value, "__call__"): raise TypeError("'dispatch' property value must be a callable") if value != self.dispatch: if self.debug: logging.debug("%s", f"{self.__class__.__name__}: [DISPATCH] {value}") self.__dispatch = value @property def keyboard_interruption(self): """ Register a hooks it Shortcut KeyboardInterrupt during the mainloop execution :return: A callable function :rtype: callable """ return self.__keyboard_interruption @keyboard_interruption.setter def keyboard_interruption(self, value): """ Set the ``keyboard_interruption`` property value :param value: A callable function :type value: callable :raise TypeError: When ``keyboard_interruption`` property is not a ``callable`` or None """ if value and not hasattr(value, "__call__"): raise TypeError("'keyboard_interruption' property value must be a callable") if value != self.keyboard_interruption: if self.debug: logging.debug( "%s", f"{self.__class__.__name__}: [KEYBOARD_INTERRUPTION] {value}" ) self.__keyboard_interruption = value

Top » Module code » glxeveloop.hooks

© Copyright 2021-2024, Galaxie EveLoop Team all right reserved.
This page is licensed under the GNU General Public License v3 or later (GPLv3+).
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
See History and License for more information.

Last updated on None.
Created using Sphinx 7.3.7.