Code source de donnees.client_informations

"""
Module relatif aux informations d'un client dans un fichier de log Apache.
"""

from dataclasses import dataclass
from typing import Optional


[docs] @dataclass class ClientInformations: """ Représente les informations d'un client à partir d'une entrée d'un log Apache. Cette classe regroupe les données extraites d'une entrée de log, qui concernent le client ayant effectué la requête au serveur Apache. Attributes: adresse_ip (str): L'adresse IP du client. identifiant_rfc (Optional[str]): L'identifiant RFC du client. Peut être None si non fournie. nom_utilisateur (Optional[str]): Le nom de l'utilisateur authentifié. Peut être None si non fournie. agent_utilisateur (Optional[str]): L'agent utilisateur (User-Agent). Peut être None si non fournie. """ adresse_ip: str identifiant_rfc: Optional[str] nom_utilisateur: Optional[str] agent_utilisateur: Optional[str] def __post_init__(self): """ Vérifie le bon type des données de cette classe lors de l'initialisation de l'instance. Raises: TypeError: Une donnée n'est pas du bon type. """ # Validation de l'adresse IP if not isinstance(self.adresse_ip, str): raise TypeError("L'adresse IP est obligatoire et doit être une chaîne de caractères.") # Validation de l'identifiant RFC if self.identifiant_rfc is not None and not isinstance(self.identifiant_rfc, str): raise TypeError("L'identifiant RFC doit être une chaîne de caractères ou None.") # Validation du nom d'utilisateur if self.nom_utilisateur is not None and not isinstance(self.nom_utilisateur, str): raise TypeError("Le nom d'utilisateur doit être une chaîne de caractères ou None.") # Validation de l'agent utilisateur if self.agent_utilisateur is not None and not isinstance(self.agent_utilisateur, str): raise TypeError("L'agent utilisateur doit être une chaîne de caractères ou None.")