Giter VIP home page Giter VIP logo

sandbox-python's People

Contributors

guts avatar simonsampere avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

sandbox-python's Issues

Remplir un Widget via l'API

  • identifier la requête à utiliser
  • vérifier que la fonction est bien paramétrée pour
  • tester avec plusieurs valeurs possibles

Générer un fichier journal (log)

Afin de faciliter le support, un fichier journal est écrit au fur et à mesure des actions de l'utilisateur.

2 niveaux possibles :

  • INFO : seulement les messages de base (informatifs...)
  • DEBUG : tous les messages

Lister les requêtes

  • Identifier les paramètres de la méthode search()

  • Réfléchir à la distinction entre les catégories de requêtes :

    • la requête initiale d'allumage
    • les requêtes de remplissage des widgets
    • les requêtes d'actualisation des widgets
    • la requête finale d'obtention du résultat

Global reset button

Ajouter un bouton reset global à la place du bouton "Lancement de l'inventaire" spécifié #8 comme indiqué lors de la première itération #21

  • modifier user_interface.py dans connection

  • adapter moteur_de_recherche.py

Gérer la synchronisation des champs

Pour éviter les combinaisons vides

  • identifier la requête pour chaque widget
  • connecter la sortie des widgets à la requête d'actualisation
  • connecter la sortie de la requête de remplissage aux widgets

Individuals reset buttons

Ajouter, en plus du bouton reset global (#23 ) des boutons reset individuels propres à chaque filtre, comme spécifié lors de la seconde itération #24

  • modifier user_interface.py dans connection

  • adapter moteur_de_recherche.py

Implémenter les requêtes

  • écriture
  • automatisation (réflexion input/output)
  • factorisation des méthodes selon le type de requête

Dessiner l'Interface

  • Dessiner l'interface utilisateur

  • Dessiner le scénario d'utilisateur

  • Inclure les images ici

[SPEF] Moteur de recherche tkinter

Contexte

L'API Isogeo en lecture permet d'effectuer des recherches filtrées dans les inventaires de métadonnées des clients.
Son utilisation requiert des compétences en développement.

Objectifs

  1. Créer une interface graphique permettant d'utiliser l'API sans avoir de compétences de développement.

  2. Valoriser le package isogeo-pysdk en proposant une application concrète.

Description

L'interface se lance à partir d'un script Python (3.7) qui doit fonctionner au moins sous Windows 10. Elle permet de filtrer les métadonnées accessibles selon différents champs et de savoir combien correspondent à la sélection.

Authentification

Le script Python doit être stocké dans un dossier contenant un fichier json d'authentification Isogeo intitulé "client_secrets.json".

Champs de filtre

Les champs de filtre correspondent à certains filtres sémantiques permettant d’exécuter une recherche via l'API Isogeo (voir la doc de l'API). On peut filtrer les métadonnées en fonction de :

  • Mots-clefs associés
  • Groupe de travail
  • Type de ressource
  • Format source
  • Fournisseur

Interface de filtre

Les champs ne possèdent pas le même nombre d'entrées ce qui implique d'utiliser deux interfaces de sélection différentes :

  • Barre de recherche à autocomplétion pour la sélection des Mots-clefs.
  • Menu déroulant de sélection pour les autres champs.

Au lancement du script, l'interface apparaît et une requête est effectuée via l'API Isogeo pour obtenir les modalités des champs de filtre et ajouter les options dont dispose l'utilisateur aux widgets de sélection.

Récupération et affichage du résultat

Quand l'utilisateur a effectué sa sélection, il lui reste à cliquer sur un bouton qui lance la requête permettant de connaître le nombre de métadonnées correspondantes. Cette requête est générée à partir de la combinaison des options sélectionnées dans les différents champs de filtre. Le nombre de métadonnées filtrées est extrait du résultat de la requête et affiché dans l'interface.

Spécifications techniques

  • La version 3.7 de Python est utilisée.
  • La version 2.20.5 du package isogeo-pysdk est utilisée.
  • Le package tkinter est utilisé pour générer l'interface afin de minimiser les dépendances externes.

Objectifs optionnels

  1. Asynchronie : L'affichage du résultat doit s'actualiser en temps réel et apparaître rapidement. De plus, les modalités des champs de sélection doivent également s'actualiser en fonction des options choisies dans les autres champs.

  2. Authentification dynamique : Plutôt que de demander à l'utilisateur de stocker le script au même endroit que son fichier json d'authentification, il doit pouvoir accéder à ce fichier via l'interface, quelque soient son emplacement et son intitulé.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.