Journal term2web : un terminal sur le Web (Python)

Posté par (page perso) . Licence CC by-sa.
11
14
jan.
2020

Par défaut, print(…) et input(…) s’affichent dans le terminal à partir duquel est lancé le programme Python, et le développeur ne maîtrise pas l’apparence du texte affiché. Des bibliothèques comme termcolor permettent de modifier quelques caractéristiques du texte affiché, mais cela reste limité, et les caractéristiques que l’on peut modifier dépendent du terminal utilisé.

term2web est une bibliothèque Python qui redéfinit print(…) et input(…) pour qu’ils s’affichent dans une page Web. À terme, le but est d’avoir une bibliothèque qui soit aussi simple à utiliser que termcolor (peut‑être même directement compatible), mais avec toutes les possibilités de mise en forme offertes par CSS.

Pour l’instant, cette bibliothèque est à l’état de preuve de concept, donc avec peu de fonctionnalités, mais on peut facilement changer l’apparence du texte affiché en modifiant les sources.

Pour l’utiliser, il suffit de l’installer (pip install term2web) et d’importer la bibliothèque (from term2web import *) dans votre code source avant tout appel à print(…) ou input(…).

Il y une démonstration en ligne, dont le lien est donné ci-dessous, pour tester sans rien avoir à installer, mais vous pouvez aussi faire :

  • git clone https://github.com/epeios-q37/term2web-python ;
  • cd term2web-python ;
  • python3 main.py.

Pour comparer, vous pouvez mettre en commentaire la ligne from term2web import * du fichier main.py ; ainsi, print(…) et input(…) retrouvent leur comportement par défaut (affichage dans le terminal).

Liens :

  • # sympa

    Posté par . Évalué à 3 (+2/-1).

    sympa, ca marche plutôt bien.

  • # Nouvelle version

    Posté par (page perso) . Évalué à 1 (+0/-0). Dernière modification le 17/01/20 à 16:30.

    Mise à jour qui permet de formater les textes affichés avec print(…) et input(…) grâce aux fonctions suivantes.

    set_property(name,value) applique la propriété CSS de nom name et de valeur valeur.

    Exemple:

    set_property("font-style": "italic")

    set_properties(properties) applique les propriétés CSS stockées dans properties, qui est un dictionnaire dont les clefs sont les noms des propriétés, et les valeurs les valeurs de ces propriétés.

    Exemple:

    set_properties({
        "text-decoration-line": "line-through",
        "text-decoration-style": "wavy",
        "text-decoration-color": "red"
    })

    reset_properties() efface toutes les propriétés appliquées avec les fonctions ci-dessus.

    Dans le dépôt GitHub, Basic.py est une exemple d'utilisation de print(…) et input(…), mais sans formatage CSS. WithCSS.py montre comment on applique des propriétés CSS et le résultat.

    Suite à des certaines remarques, je précise que, contrairement aux autres programmes basés sur le toolkit Atlas, il n'est pas possible de lancer deux instances simultanées d'un même programme utilisant term2web. C'est volontaire, pour ne pas rendre la mise en œuvre de cette bibliothèque plus complexe. Elle est principalement destinée à être utilisée par des débutants, pour les familiariser avec l'environnement dans lequel évolue le genre d'exercice que l'on trouve à l'adresse https://q37.info/s/g9fvwzgp.

    Toolkit Atlas : probablement le moyen le plus simple et le plus rapide pour ajouter une interface graphique à vos programmes Java, Node.js, Python… (voir page perso) !

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.