-
Notifications
You must be signed in to change notification settings - Fork 0
Release 0.1.0: Première version stable #40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Owner
AnthonyGuillauma
commented
Apr 5, 2025
- Ajout des fonctionnalités de base pour l'analyse de logs Apache.
- Gestion des erreurs de parsing.
- Exportation en JSON.
- Documentation initiale et mise en place des tests unitaires.
- Mise à jour du titre du projet - Ajout d'une courte description du projet
- Ignore l'environnement virtuel - Ignore les fichiers propres à Python - Ignore les fichiers propres aux IDE
- Initialisation du fichier principal de l'applicatin
- Ajout de la docstring du module main.py
- Ecriture du logo (format ASCII) de l'application dans la CLI depuis le fichier main.py au lancement de l'application
- Utilisation de la bibliothèque argparse - Création du fichier parseur_arguments_cli.py pour gérer les arguments en CLI - Implémentation de la classe ParseurArgumentsCLI pour analyser les arguments en CLI - Ajout de l'exception ArgumentCLIException pour capturer et gérer les erreurs de parsing des arguments en CLI - Mise à jour de main.py pour intégrer l'analyse des arguments en CLI
- Mise à jour du fichier main.py pour intégrer l'analyse des arguments CLI qui a été oubliée lors de la précédente PR
- Utilisation de la bibliothèque re - Vérification que le chemin du fichier log Apache ne contient que les caractères autorisés - Vérification que le chemin du fichier de sortie ne contient que les caractères autorisés
- Ajout du caractère ':' dans les caractères autorisés dans les chemins fournis par la CLI afin d'autoriser les chemins commençant par C: ou D:
- Création du dossier tests où seront rangés les tests unitaires - Ajout des tests unitaires pour ParseurArgumentsCLI afin de vérifier que l'objet parse, vérifie et retourne les arguments correctement
- Mise en place du fichier pytest.ini afin de faciliter les imports des modules du dossier /app depuis les tests du dossier /test
- Ignore les fichiers propres à Pytest - Ignore les fichiers propres à Coverage
- Prise en compte de l'exception SystemExit dans la méthode parse_args afin de renvoyé une exception ArgumentCLIException pour afficher un message personnalisé
- Suppression d'un except Exception dans parse_args de ParseurArgumentsCLI qui était inutile car l'exception ne peut pas être levé puisque la méthode ne lève que des exceptions de type SystemExit
- Ajout d'une fonction afin de tester qu'un exception est bien renvoyée dans le cas où un argument est passé par la CLI mais qu'il n'est pas reconnu par le parseur.
- Ajout de la classe ParseurLogApache - Vérification que le fichier log existe lors de l'initialisation de l'objet ParseurLogApache - Affichage d'un message lorsque le fichier log n'existe pas
- Ajout de la classe FichierLogApache qui est une classe qui représente un fichier de log Apache
- Ajout de EntreeLogApache qui est une classe qui représente une entrée dans un fichier de log Apache
- Ajout de ClientInformations qui est une classe qui représente les informations du client dans une entrée d'un fichier de log Apache
- Ajout de RequeteInformations qui est une classe qui représente les informations propres à la requête dans une entrée d'un fichier de log Apache
- Ajout de ReponseInformations qui est une classe qui représente les informations de la réponse dans une entrée d'un fichier de log Apache
- Ajout de la méthode parse_fichier de ParseurLogApache qui permet de parser un fichier de log Apache - Ajout de la méthode parse_entree de ParseurLogApache qui permet de parser une entrée d'un fichier de log Apache - Ajout de get_information_entree de ParseurLogApache qui permet de récupérer la valeur d'une information dans une entrée - Ajout de FormatLogApacheInvalideException qui représente une erreur lors de l'analyse syntaxique d'un fichier log - Modification du fichier main.py pour appeller la fonction parse_entree et pour afficher un message en cas d'erreur dans l'analyse
- Amélioration du regex en séparent les groupes ancienne_url et agent_utilisateur afin de permettre à une entrée d'avoir une ancienne url mais pas un agent utilisateur (ou inversement), tandis que ce n'était pas possible dans les versios précédentes
- Modification de l'erreur .coverage/ en .coverage puisque .coverage est un fichier et non un dossier
- Ajout des tests unitaires pour la classe ParseurLogApache afin de vérifier que la classe parvient à faire une analyse syntaxique correcte d'un fichier de log Apache
- Modification du regex qui représente une entrée d'un fichier de log Apache afin qu'il vérifie également que la date dans une entrée est dans un format valide
- Utilisation de la bibliothèque typing et dataclasses - Simplification de la classe en dataclass - Ajout de vérification des types des attributs - Modifiation du test unitaire test_parsage_entree_valide suite à une erreur due aux précédents commits qui ont modifié le nom de l'attribut code_statut_http - Ajout de commentaires et de sauts de ligne aux méthodes de ParseurLogApache afin de rendre le fichier plus lisible - Suppression de la méthode __fichier_existe dans ParseurLogApache qui était utilisée qu'une seule fois en déplacant son contenu directement dans le __init__ - Ajout d'un except pour les Exceptions qui affiche un message en indiquant qu'une erreur interne s'est produite
- Utilisation de la bibliothèque Sphinx - Ajout du dossier 'docs' contenant toute la documentation du projet - Ajout des fichiers .rst pour ajouter une page d'accueil ainsi que les modules dans la documentation - Modification des docstrings des classes dans le dossier donnees ( modification mot-clé Attributes en Args) afin d'éviter des erreurs de génération avec Sphinx
- Ajout du dossier .github et workflows - Ajout du fichier documentation.yaml qui contient l'action pour générer la documentation - Ajout de l'action sur chaque push vers la branche develop
- Ajout des tests unitaires automatiques incluant un test de couverture - Ajout des tests sur les push de la branche develop - Les tests seront effectuées sur plusieurs versions de Python - Création d'un artéfact pour chaque version Python - Les artefacts contiennent les rapports de tests et de couverture
- Ajout d'une vérification pour interdire les booléens dans les attributs de la classe ReponseInformations
- Ajout des tests unitaires pour les classes ClientInformations, RequeteInformations et ReponseInformations
- Ajout de la classe AnalyseurLogApache qui retourne des statistiques sur un fichier de log Apache - Modification de main.py pour récupérer l'analyse complète du fichier
- Création d'un fichier conftest.py qui contient toutes les fixtures et les données générales - Ajout des tests unitaires pour la classe AnalyseurLogApache
- Ajout des fichiers .rst pour ajouter la classe AnalyseurLogApache dans la documentation - Amélioration des docstrings de la classe AnalyseurLogApache pour correspondre au format Google et Sphinx
- Ajout de tests unitaires afin d'augmenter la couverture des tests unitaires sur le code - Amélioration de la docstring des fonctions de test unitaire - Ajout de la nouvelle dépendance 'pytest-mock' qui est nécessaire pour les tests unitaires du module main.py - Ajout d'une fonction main dans main.py pour faciliter les tests unitaires - Suppression d'une vérification de type dans parseur_log_apache.py qui ne pouvait jamais être atteinte grâce au regex
…s dans le workflow (#29) - Ajout de la dépendance colorama dans le workflow tests.yaml qui était nécessaire dans les tests unitaires du module main.py
- Création du dossier export - Création de la classe Exporteur dans le module exporteur.py - Ajout de l'exception ExportationException - Utilisation de l'exportation dans le module main.py - Ajout des tests unitaires pour la classe Exporteur - Ajout de la documentation pour la classe Exporteur
- Ajout de la classe AfficheurCLI qui contient les méthodes pour intéragir avec la CLI - Ajout des tests unitaires d'AfficheurCLI - Ajout de la documentation d'AfficheurCLI - Ajout du dossier assets qui contient les éléments visuels de l'application - Ajout de animations.json dans assets qui contient les ASCIIs des animations
- Ajout du fichier généré par l'application dans le .gitignore afin de faciliter le développement - Modification de certains commentaires erronés
- Mise en conformité du code avec PEP8 - Déplacement de la classe EntreeLogApache vers le fichier entree_log_apache.py - Mise à jour de la documentation suite à ces modifications - Mise à jour des tests unitaires suite à ces modifications
- Ajout d'un workflows pour tester que la note du code dans le dossier app est supérieure ou égale à 9
- Ajout de la description du projet - Ajout d'une table des matières - Ajout de la partie des fonctionnalités - Ajout de la partie de l'utilisation de base - Ajout de la partie de la documentation - Ajout de la partie des tests unitaires - Ajout de la licence
- Ajout du fichier requirements.txt qui contient les dépendances du projet - Ajout de la dépendance colorama dans requirements.txt - Ajout de la dépendance sphinx et de ses dépendances dans requirements.txt - Ajout de la dépendance pytest et de ses dépendances dans requirements.txt
- Ajout d'une précaution concernant l'affichage de caractères unicodes par l'application dans le terminal
- Ajout de la partie utilisation - Ajout de la partie du format de log Apache - Ajout de la partie prévention de l'affichage d'unicode
- Mise en place du workflow de la documentation sur une pull request vers la branche main - Mise en place du workflow des tests unitaires sur une pull request vers la branche main ou develop - Mise en place du workflow de la qualite du code sur une pull request vers la branche main ou develop - Ajout de commentaires sur les workflows
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.