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 : | Sélectionner tout |
pip install Gooey
Vous pouvez également installer Gooey en clonant le projet dans votre répertoire local :
Code : | Sélectionner tout |
git clone https://github.com/chriskiehl/Gooey.git
Exécuter setup.py.
Code : | Sélectionner tout |
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 : | Sélectionner tout |
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 : | Sélectionner tout |
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 : | Sélectionner tout |
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