Erreurs de couleurs de tissu et avertissements avec ʻenv.colorize_errors = True`, mais si la couleur du terminal est rouge, elle sera embuée, donc je veux colorer l'arrière-plan. (Au fait, je suis sur fond noir donc je n'ai pas d'ennuis)
Donc, écrasez «fabric.colors». (Ce n'est peut-être pas la façon dont vous vous attendiez dans une future mise à jour, donc ce n'est peut-être pas une bonne idée)
colors.py
# -*- coding: utf-8 -*-
import fabric.colors
def _wrap_with(color, background):
def inner(text, bold=False):
c = color
if background:
c = "%s;%s" % (background, c)
if bold:
c = "1;%s" % c
return "\033[%sm%s\033[0;m" % (c, text)
return inner
red = _wrap_with('31', '40')
green = _wrap_with('32', '40')
yellow = _wrap_with('33', '40')
blue = _wrap_with('34', '40')
magenta = _wrap_with('35', '40')
cyan = _wrap_with('36', '40')
white = _wrap_with('37', '40')
fabric.colors.red = red
fabric.colors.green = green
fabric.colors.yellow = yellow
fabric.colors.blue = blue
fabric.colors.magenta = magenta
fabric.colors.cyan = cyan
fabric.colors.white = white
Dans la séquence d'échappement, «\ 033 [1; 40; 31» est en gras, fond noir, lettres rouges, et «fabric.utils.abort» appelle «fabric.colors.red», donc «fabric.colors.red» Doit être une fonction qui construit \ 033 [1; 40; 31% s \ 033 [0; m
".
Lis ça
fabfile.py
# -*- coding: utf-8 -*-
from fabric.api import *
from colors import *
env.colorize_errors = True
@task
def abort_task():
abort("La tâche a échoué!>_<")
Vous pouvez maintenant lire les caractères même sur fond rouge.
Vous pouvez créer votre propre fonction de sortie couleur en utilisant cette méthode.
Recommended Posts