Changer la couleur des erreurs et avertissements Fabric

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.

Screen Shot 2017-01-19 at 01.50.25.png

Vous pouvez créer votre propre fonction de sortie couleur en utilisant cette méthode.

Recommended Posts

Changer la couleur des erreurs et avertissements Fabric
Changer la saturation et la clarté des spécifications de couleur comme # ff000 dans python 2.5
Corrigez simplement les erreurs et avertissements de mise à jour sudo apt-get
[Touch Designer] Changer la couleur d'apparence du bouton COMP
Changer le thème de Jupyter
Changer le style de matplotlib
[Python] Changer la couleur du texte et la couleur d'arrière-plan d'un mot clé spécifique dans la sortie d'impression
L'histoire de Python et l'histoire de NaN
Changer l'arrière-plan d'Ubuntu (GNOME)
Changer le suffixe de django-filter / DateFromToRangeFilter
Comment changer la couleur du seul bouton pressé avec Tkinter
J'ai résumé comment changer les paramètres de démarrage de GRUB et GRUB2
Ceci et celui de la notation d'inclusion.
Graphique de l'historique du nombre de couches de deep learning et du changement de précision
Script pour changer la description de fasta
Modifions automatiquement la palette de couleurs d'iTerm2 en fonction de l'heure de la journée
L'histoire d'essayer deep3d et de perdre
Ouvrez un fichier Excel en Python et coloriez la carte du Japon
Changer l'ordre de PostgreSQL dans Heroku
Changer le serveur Batfish de destination de pybatfish
Extraire la couleur de l'objet dans l'image avec le clustering Mask R-CNN et K-Means
À propos du comportement de copy, deepcopy et numpy.copy
Résumé des différences entre PHP et Python
Compréhension complète des concepts de Bellmanford et Dyxtra
Organiser la signification des méthodes, des classes et des objets
Spécification de la plage des tableaux ruby et python
Modifiez le point décimal de la journalisation de, à.
Comparez la vitesse d'ajout et de carte Python
Description générale des notificateurs CPUFreq core et CPUFreq
Changer la résolution d'Ubuntu s'exécutant sur VirtualBox
Organisez l'utilisation super basique des Autotools et de pkg-config
J'ai lu et implémenté les variantes de UKR
Cours ROS 119 Corriger la couleur de l'image de la caméra
Prise en compte des forces et faiblesses de Python
Les parties sympas et regrettables de Cloud Datalab
[Apprentissage automatique] "Détection d'anomalies et détection de changement" Dessinons la figure du chapitre 1 en Python.
Prise en compte de la différence entre la courbe ROC et la courbe PR
Obtenez le titre de Yahoo News et analysez les sentiments
L'histoire de Python sans opérateurs d'incrémentation et de décrémentation.
La couleur d'arrière-plan de la sous-classe QWidget ne peut pas être définie
Python - Explication et résumé de l'utilisation des 24 meilleurs packages
[FSL] Mesure du segment et du volume du noyau cérébral basal (noyaux gris centraux)
Pensez à la nouvelle génération de Rack et WSGI
Référence et modification de la limite supérieure récursive Python
J'ai vérifié les versions de Blender et Python
J'ai vérifié le système d'exploitation et le shell par défaut de docker-machine
[Django] Changer l'adresse IP par défaut de la commande runserver
Visualisation de la connexion entre le malware et le serveur de rappel
[Python] Résumé de la façon de spécifier la couleur de la figure
[Django 2.2] Trier et obtenir la valeur de la destination de la relation
Notes personnelles sur l'intégration de vscode et anaconda
Extraire la valeur maximale avec les pandas et modifier cette valeur
Vérifiez le type et la version de la distribution Linux
Animer les bases de la planification dynamique et des problèmes de sac à dos
[Python] Changeons l'URL du site administrateur de Django
J'ai essayé de publier automatiquement sur ChatWork au moment du déploiement avec Fabric et ChatWork Api