Code source de donnees.requete_informations

"""
Module relatif aux informations de la requete dans un fichier de log Apache.
"""

from dataclasses import dataclass
from typing import Optional
from datetime import datetime

[docs] @dataclass class RequeteInformations: """ Représente les informations de la requête HTTP à partir d'une entrée d'un log Apache. Cette classe regroupe les données extraites d'une entrée de log, qui concernent les informations techniques sur la requête émise au serveur Apache. Attributes: horodatage (datetime): L'horodatage de la requête. methode_http (Optional[str]): La méthode HTTP utilisée. Peut être None si non fournie. url (Optional[str]): L'URL cible de la requête. Peut être None si non fournie. protocole_http (Optional[str]): Le protocole HTTP utilisé. Peut être None si non fournie. ancienne_url (Optional[str]): L'URL de provenance (referrer). Peut être None si non fournie. """ horodatage: datetime methode_http: Optional[str] url: Optional[str] protocole_http: Optional[str] ancienne_url: 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. """ # Vérification de l'horodatage if not isinstance(self.horodatage, datetime): raise TypeError("L'horodatage doit être de type datetime.") # Vérification de la méthode HTTP if self.methode_http is not None and not isinstance(self.methode_http, str): raise TypeError("La méthode HTTP doit être une chaine de caractère ou None.") # Vérification de la ressource demandée if self.url is not None and not isinstance(self.url, str): raise TypeError("L'URL doit être une chaine de caractère ou None.") # Vérification du protocole HTTP if self.protocole_http is not None and not isinstance(self.protocole_http, str): raise TypeError("Le protocole HTTP doit être une chaine de caractère ou None.") # Vérification de l'ancienne URL if self.ancienne_url is not None and not isinstance(self.ancienne_url, str): raise TypeError("L'ancienne URL doit être une chaine de caractère ou None.")