diff --git a/source/gui/better_pyglet/Label.py b/source/gui/better_pyglet/Label.py index a94dace..68edf12 100644 --- a/source/gui/better_pyglet/Label.py +++ b/source/gui/better_pyglet/Label.py @@ -4,5 +4,9 @@ from source.gui.better_pyglet.abc import Element class Label(Element, pyglet.text.Label): + """ + Un label de base de pyglet, mais supportant les arguments par défaut + """ + def __init__(self, *args, **kwargs): super().__init__(*args, **(self.default_kwargs | kwargs)) diff --git a/source/gui/better_pyglet/Sprite.py b/source/gui/better_pyglet/Sprite.py index a9fe9fa..f9798c6 100644 --- a/source/gui/better_pyglet/Sprite.py +++ b/source/gui/better_pyglet/Sprite.py @@ -5,7 +5,8 @@ from source.gui.better_pyglet.abc import Element class Sprite(Element, pyglet.sprite.Sprite): """ - Same as the pyglet sprite, but allow to set a width and height easier + Similaire au Sprite de base de pyglet, mais permet de changer la hauteur et largeur plus simplement. + Supporte les arguments par défaut également """ def __init__(self, width: int = None, height: int = None, *args, **kwargs): diff --git a/source/gui/better_pyglet/abc/Element.py b/source/gui/better_pyglet/abc/Element.py index ec05f0f..59fc1d8 100644 --- a/source/gui/better_pyglet/abc/Element.py +++ b/source/gui/better_pyglet/abc/Element.py @@ -3,7 +3,12 @@ from typing import Any class Element(ABC): + """ + Un mixin pour les éléments de base de pyglet + """ + default_kwargs: dict[str, Any] def __init_subclass__(cls, **kwargs): - cls.default_kwargs = {} # all subclasses will have their own "default_kwargs" dict + # toutes les sous-classes auront leur propre dictionnaire "default_kwargs" + cls.default_kwargs = {} diff --git a/source/gui/event/EventPropagationMixin.py b/source/gui/event/EventPropagationMixin.py index 29744fe..6287a6a 100644 --- a/source/gui/event/EventPropagationMixin.py +++ b/source/gui/event/EventPropagationMixin.py @@ -7,13 +7,17 @@ from source.gui.event import StopEvent class EventPropagationMixin: """ - This class can be subclassed to allow the subclass to propagate all the call to the method that start by - "on_" to the object in the "childs" property. + Les classes héritant de cette classe peuvent propager tous les appels des méthodes qui commençent par "on_" aux + objets présents dans la propriété "childs" """ @property @abstractmethod - def childs(self): + def childs(self) -> list: + """ + Renvoie la liste des objets auquel propagé les événements + :return: la liste des objets auquel propagé les événements + """ pass @lru_cache @@ -24,19 +28,19 @@ class EventPropagationMixin: :return: une fonction appelant l'événement original ainsi que ceux des scènes. """ - # if the event is the drawing of the objects, reverse the order of the scenes - # so that the last drawn are the one on top + # Si l'événement est à propos de dessiner les objets, + # inverse l'ordre pour que les derniers objets dessinés soit au-dessus des autres. child_transform = ( (lambda child: reversed(child)) if item == "on_draw" else (lambda child: child) ) - # try to get the original function + # essaye de récupérer la fonction originale func = None try: func = super().__getattribute__(item) except AttributeError: pass - # try to get a function that would get executed after everything else + # essaye de récupérer une fonction qui devrait s'exécuter après les autres func_after = None try: func_after = super().__getattribute__(item + "_after") except AttributeError: pass @@ -46,7 +50,7 @@ class EventPropagationMixin: for child in child_transform(self.childs): try: getattr(child, item, lambda *_, **__: "pass")(*args, **kwargs) - # si l'erreur StopEventScene est détecté, les autres scènes ne recevront pas l'event + # si l'erreur StopEventScene est détecté, les autres scènes ne recevront pas l'événement except StopEvent: break if func_after is not None: func_after(*args, **kwargs) @@ -55,9 +59,9 @@ class EventPropagationMixin: def __getattribute__(self, item: str) -> Any: """ - Fonction appelée dès que l'on essaye d'accéder à l'un des attributs de l'objet. + Fonction appelée dès que l'on essaye d'accéder à l'un des attributs de l'objet :param item: nom de l'attribut recherché - :return: l'attribut de l'objet correspondant. + :return: l'attribut de l'objet correspondant """ # si l'attribut est un événement (commence par "on_"), alors renvoie le dans un wrapper diff --git a/source/gui/event/StopEvent.py b/source/gui/event/StopEvent.py index 435a24a..03769f9 100644 --- a/source/gui/event/StopEvent.py +++ b/source/gui/event/StopEvent.py @@ -1,5 +1,5 @@ class StopEvent(Exception): """ - This error can be raised to prevent an event to propagate to further element. + Cette erreur peut être levée pour arrêter la propagation de l'événement aux autres éléments """ pass diff --git a/source/gui/regex.py b/source/gui/regex.py index 23e29cf..aba4fce 100644 --- a/source/gui/regex.py +++ b/source/gui/regex.py @@ -2,6 +2,13 @@ from math import inf def number(min_length: int = 0, max_length: int = inf) -> str: + """ + Renvoie le regex correspondant à une suite de nombre. + :param min_length: la longueur minimum du nombre + :param max_length: la longueur maximum du nombre + :return: le regex correspondant + """ + return r"\d{%s,%s}" % (min_length, max_length if max_length < inf else "")