Esempio n. 1
0
def _activate_pretty_errors():
    import pretty_errors
    from pretty_errors import default_config
    from pretty_errors import FILENAME_EXTENDED
    from pretty_errors import MAGENTA
    from pretty_errors import RED

    pretty_errors.configure(
        filename_display=FILENAME_EXTENDED,
        line_number_first=True,
        lines_before=5,
        lines_after=2,
        line_color=RED + '> ' + default_config.line_color,
        code_color='  ' + default_config.line_color,
        truncate_code=True,
        inner_exception_separator=True,
        inner_exception_message=MAGENTA +
        "\n  During handling of the above exception, another exception occurred:\n",
        display_locals=True)

    if not pretty_errors.terminal_is_interactive:
        pretty_errors.mono()
Esempio n. 2
0
import traceback

import requests
import html
import random
import traceback
import sys
import pretty_errors
import io
from telegram import Update, InlineKeyboardMarkup, InlineKeyboardButton
from telegram.ext import CallbackContext, CommandHandler
from AliciaRobot import dispatcher, DEV_USERS, OWNER_ID

pretty_errors.mono()


class ErrorsDict(dict):
    "A custom dict to store errors and their count"

    def __init__(self, *args, **kwargs):
        self.raw = []
        super().__init__(*args, **kwargs)

    def __contains__(self, error):
        self.raw.append(error)
        error.identifier = "".join(random.choices("ABCDEFGHIJKLMNOPQRSTUVWXYZ", k=5))
        for e in self:
            if type(e) is type(error) and e.args == error.args:
                self[e] += 1
                return True
        self[error] = 0
Esempio n. 3
0
 def fix_stderr_color(color: bool) -> None:
     if not color:
         pretty_errors.mono()
     pretty_errors.output_stderr = sys.stderr