Developpez.com - Rubrique Python

Le Club des Développeurs et IT Pro

Gooey transforme presque n'importe quel programme console Python en une application GUI complète

Et vous permet de vous concentrer sur la construction de programmes robustes et configurables

Le 2023-12-11 13:33:02, par Anthony, Chroniqueur Actualités
Transformez (presque) n'importe quel programme de console Python 3 en une application GUI en une seule ligne. Gooey convertit vos applications console en applications graphiques conviviales pour l'utilisateur final. Il vous permet de vous concentrer sur la construction de programmes robustes et configurables d'une manière familière, sans avoir à vous soucier de la manière dont ils seront présentés à l'utilisateur moyen et avec lesquels il interagira.

Pourquoi Gooey ?

Parce qu'autant nous aimons l'invite de commande, autant le reste du monde la considère comme une laide relique du début des années 80. De plus, la plupart du temps, les programmes ont besoin de faire plus qu'une seule chose, et cela implique de donner des options, ce qui signifiait auparavant soit construire une interface graphique, soit essayer d'expliquer comment fournir des arguments à une application console. Gooey a été conçu pour (espérons-le) résoudre ces problèmes. Il rend les programmes faciles à utiliser, et jolis à regarder.


A qui s'adresse-t-il ?

Si vous construisez des utilitaires pour vous-même, pour d'autres programmeurs, ou quelque chose qui produit un résultat que vous voulez capturer et envoyer vers une autre application console (par exemple *nix philosophy utils), Gooey n'est probablement pas l'outil qu'il vous faut. Cependant, si vous construisez des scripts de type "run and done", des scripts de type "around-the-office", des choses qui envoient des bits d'un point A à un point B, ou simplement quelque chose qui s'adresse à un non-programmeur, Gooey est l'outil parfait pour ce travail. Il vous permet de construire une application aussi complexe que vous le souhaitez, tout en bénéficiant gratuitement de l'interface graphique.


Instructions d'installation

La façon la plus simple d'installer Gooey est via pip.

Code :
pip install Gooey

Vous pouvez également installer Gooey en clonant le projet dans votre répertoire local :

Code :
git clone https://github.com/chriskiehl/Gooey.git

Exécuter setup.py.

Code :
python setup.py install

Comment fonctionne Gooey ?

Gooey est attaché à votre code via un simple décorateur sur n'importe quelle méthode contenant vos déclarations argparse (habituellement main).

Code :
1
2
3
4
@Gooey
def my_run_func():
  parser = ArgumentParser(...)
  # rest of code

Au moment de l'exécution, il analyse votre script Python pour y trouver toutes les références à ArgumentParser (l'ancien optparse n'est actuellement pas pris en charge). Ces références sont ensuite extraites, un component type leur est attribué en fonction de l'"action" qu'elles fournissent, et elles sont finalement utilisées pour assembler l'interface graphique.

Différents styles et fonctionnalités peuvent être configurés en passant des arguments au décorateur.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# options
@Gooey(advanced=Boolean,          # toggle whether to show advanced config or not 
       language=language_string,  # Translations configurable via json
       auto_start=True,           # skip config screens all together
       target=executable_cmd,     # Explicitly set the subprocess executable arguments
       program_name='name',       # Defaults to script name
       program_description,       # Defaults to ArgParse Description
       default_size=(610, 530),   # starting size of the GUI
       required_cols=1,           # number of columns in the "Required" section
       optional_cols=2,           # number of columns in the "Optional" section
       dump_build_config=False,   # Dump the JSON Gooey uses to configure itself
       load_build_config=None,    # Loads a JSON Gooey-generated configuration
       monospace_display=False)   # Uses a mono-spaced font in the output screen
)
def main():
  parser = ArgumentParser(...)
  # rest of code

Gooey fera de son mieux pour choisir les valeurs par défaut des widgets à afficher dans l'interface graphique. Cependant, si un réglage plus fin est souhaité, vous pouvez utiliser le substitut GooeyParser à la place d'ArgumentParser. Cela vous permet de contrôler quel widget s'affiche dans l'interface graphique.

Code :
1
2
3
4
5
6
7
8
from gooey import Gooey, GooeyParser

@Gooey
def main():
  parser = GooeyParser(description="My Cool GUI Program!") 
  parser.add_argument('Filename', widget="FileChooser")
  parser.add_argument('Date', widget="DateChooser")
  ...

Exemples

Gooey a été téléchargé et installé ? Superbe ! Vous voulez le voir en action ? Rendez-vous sur le dépôt d'exemples pour télécharger quelques scripts d'exemple prêts à l'emploi. Ils vous donneront un aperçu rapide des différentes mises en page, widgets et fonctionnalités de Gooey.

Source : Gooey (GitHub)

Et vous ?

Que pensez-vous de Gooey et de ses fonctionnalités ?

Voir aussi

Python 3.12 : la dernière version apporte des modifications du langage et de la bibliothèque standard, elle comporte aussi une amélioration des messages d'erreur

Les organisateurs de la conférence africaine DjangoCon critiquent le manque de soutien de la Python Software Foundation dans une lettre ouverte

Le plan de travail pour la future version 3.13 de Python a été dévoilé, et vise la réduction d'au moins 50 % du temps passé dans l'interpréteur ainsi qu'une meilleure gestion de la mémoire
  Discussion forum
1 commentaire
  • Gambix
    Futur Membre du Club
    Je ne sais pas quoi dire devant tant de vide.

    C'est simplement une meta structure mêlée a son propre code.

    Je pensais bêtement que ca allais auto générer l'interface. Et non pas quil fallait ajouter au code.

    Je suis déçu... au final c'est du php ou autre structure mêlée.