Skip to content

Documentation

PasRP-Theo edited this page Jan 11, 2025 · 24 revisions

Fonctionnalitées Smart

Proposé par moi

Voici un exemple de gestionnaire d'inventaire interactif et basé sur des fichiers CSV, avec un comportement adapté à vos besoins. Il inclut des fonctionnalités de consolidation, recherche, et génération de rapports, tout en respectant les spécifications mentionnées (gestion des erreurs, utilisation de @property, CLI). Le script inclut aussi une logique d'importation des fichiers et une interface utilisateur simple. Si vous avez besoin d'ajouter ou d'adapter des fonctionnalités spécifiques, je suis à votre disposition !

Gestionnaire d'Inventaire - Documentation

Introduction

Ce script Python permet de gérer un inventaire à partir de fichiers CSV. Il inclut des fonctionnalités telles que le chargement de fichiers, la recherche de produits, le filtrage, et la génération de rapports. Toutes les actions sont accessibles via une interface en ligne de commande (CLI).


Commandes Disponibles

1. load_csv_files

  • Description : Charge tous les fichiers CSV d’un répertoire et les combine en une seule base de données.
  • Arguments :
    • <chemin_du_dossier> : Chemin vers le répertoire contenant les fichiers CSV.
  • Fonctionnement :
    • Valide les fichiers CSV pour s’assurer qu’ils contiennent les colonnes requises.
    • Combine les fichiers valides en un DataFrame unique.
  • Exemple :
    charger /chemin/vers/repertoire
  • Retour : Nombre de fichiers valides chargés ou erreurs rencontrées.

2. show_menu

  • Description : Affiche un menu qui permet de naviguer entre les fonctionnalités disponibles.
  • Arguments : Aucun.
  • Fonctionnement :
    • Liste les commandes disponibles et leur description.
  • Exemple :
    aide

3. search_product

  • Description : Rechercher un produit dans l’inventaire par son nom.
  • Arguments :
    • <nom_du_produit> : Terme à rechercher dans la colonne nom du produit.
  • Fonctionnement :
    • Insensible à la casse.
    • Retourne toutes les lignes correspondant au terme de recherche.
  • Exemple :
    rechercher "chaise"
  • Retour : Résultats correspondants ou message d’erreur si aucun produit n'est trouvé.

4. filter_by_category

  • Description : Filtre les données par une catégorie spécifique.
  • Arguments :
    • <catégorie> : Catégorie à filtrer.
  • Fonctionnement :
    • Retourne toutes les lignes correspondant à la catégorie donnée.
  • Exemple :
    filter_by_category "meubles"

5. filter_by_price

  • Description : Filtre les données par une plage de prix.
  • Arguments :
    • <min_prix> : Limite inférieure du prix.
    • <max_prix> : Limite supérieure du prix.
  • Fonctionnement :
    • Retourne toutes les lignes correspondant à la plage de prix spécifiée.
  • Exemple :
    filter_by_price 50 
    

Demande a l'ia

"Fais moi des fonctionnalitées Smart sur base de ce script"

1. Commande load_csv_files

  • Spécifique : Charge tous les fichiers CSV d’un répertoire et les combine en une seule base de données.
  • Mesurable : Vérifie que les fichiers sont valides et les combine en un DataFrame sans erreurs.
  • Atteignable : il fait fournir le chemin vers le répertoire des fichiers CSV.
  • Pertinent : aide a centraliser les données pour une gestion facile.

2. Commande show_menu

  • Spécifique : Affiche un menu qui permet de naviguer entre les fonctionnalités.
  • Mesurable : Tout est documentées et accessibles par l'utilisateur.
  • Atteignable : Interface facile pour les utilisateurs.
  • Pertinent : Simplifie l'utilisation du script.

3. Commande search_product

  • Spécifique : Rechercher un produit dans la ligne nom du produit.
  • Mesurable : Retourne les infos correspondant aux critères donnés.
  • Atteignable : Insensible à la casse.
  • Pertinent : Permet une recherche rapide de produits.

4. Commande filter_by_category

  • Spécifique : Filtre les données par une catégorie spécifique.
  • Mesurable : Retourne les entrées correspondant à la catégorie donnée.
  • Atteignable : Fonctionne sur n'importe quelle colonne contenant la catégorie.
  • Pertinent : Permet de rechercher facilement les produits par catégorie.

5. Commande filter_by_price

  • Spécifique : Filtre les données par plage de prix.
  • Mesurable : Retourne les entrées correspondant à la plage de prix définie.
  • Atteignable : La saisie des limites de prix est réalisée sous forme de valeurs numériques.
  • Pertinent : Permet d'examiner les produits en fonction de leur prix.

6. Commande generate_report

  • Spécifique : Génère un rapport regroupé par catégorie avec les quantités totales et les prix moyens.
  • Mesurable : Crée un rapport exporté en CSV.
  • Atteignable : L'utilisateur spécifie le chemin pour sauvegarder le fichier.
  • Pertinent : Permet l'analyse du stock par catégorie pour une prise de décision éclairée.

7. Commande show_first_rows

  • Spécifique : Affiche les premières lignes du DataFrame consolidé pour validation ou inspection.
  • Mesurable : L'utilisateur peut spécifier combien de lignes à afficher.
  • Atteignable : Fonctionne avec de grands volumes de données.
  • Pertinent : Offre un aperçu rapide pour vérifier la validité des données.

8. Commande exit_program

  • Spécifique : Quitte le programme proprement.
  • Mesurable : Le programme se termine sans erreur.
  • Atteignable : Simplement en saisissant un choix.
  • Pertinent : Permet de sortir de l’application sans perdre les données.

Rapport sur l'Utilisation des Outils IA

Outils Utilisés

ChatGPT

  • Utilisé pour générer des idées, structurer le code et résoudre des problèmes spécifiques liés à Python.
  • Texte : mise en structure des textes

Ce qui a bien fonctionné

  • Résolution rapide des problèmes: ChatGPT donne des informations précises a chaque fois qu'il fait quelques choses.
  • Les Smart : chatGPT donne des smarts complete et précise

Ce qui n'a pas bien fonctionné

Personnalisation de ChatGPT : Bien que puissant, il donne parfois des solutions assez générique ou qui ne convient pas a la demande.


Expérience Globale

La combinaison de ces outils a fortement réduit le temps passé sur le script et a amélioré la qualité du script. Par contre, j'ai du vérifier que tout le code fonctionnait manuellement

Linter

Lors de la validation du programme, j'ai utilisé PyLint sans changer sa configuration. Sa configuration ne respecte pas toutes les règles de la PEP8. J'ai également changer des options dans mon IDE (PyCharm) pour avoir plus de 'warnings' si le code ne respecte pas certaines règles et bonnes pratiques. image

Clone this wiki locally