:PROPERTIES:
:ID:       fa7e728b-dd2a-4d30-8f4b-e87813dc5f33
:mtime:    20220514155841
:ctime:    20220514133841
:END:
#+title: Modifier le style du texte affiché sur une console

* Introduction
Le but est de modifier l'apparence de chaines de caractéres à afficher sur la console (/stdout/ ou /stderr/).

* Howto
** Utilisation des [[https://stringfixer.com/fr/ANSI_escape_sequence][séquences d'échappement ANSI]]
#+BEGIN_SRC python :results output
BOLD_ESC = '\x1B[1m'
UNDERLINED_ESC = '\x1B[4m'
BOLD_AND_UNDERLINED_ESC = '\x1B[1;4m'
CLOSING_ESC = '\x1B[0m'

def bold_and_uderline(text: str) -> str:
    return f'{BOLD_AND_UNDERLINED_ESC}{text}{CLOSING_ESC}'

text = "dummy text"
print(f'{text} -> {bold_and_uderline(text)}')
#+END_SRC

#+RESULTS:
: dummy text -> dummy text

** Utilisation du package [[https://github.com/hugovk/termcolor][termcolor]]
#+BEGIN_SRC python :results output
# Install: pip install termcolor
from termcolor import colored

def bold_and_uderline(text: str) -> str:
    return colored(text, attrs=['bold', 'underline'])

text = "dummy text"
print(f'{text} -> {bold_and_uderline(text)}')
#+END_SRC

#+RESULTS:
: dummy text -> dummy text

* Références
 * [[https://github.com/hugovk/termcolor][termcolor - Github]]
