Unverified Commit f7f015e8 authored by AUTOMATIC1111's avatar AUTOMATIC1111 Committed by GitHub
Browse files

Merge pull request #14084 from wfjsw/move-from-sysinfo-to-errors

Move exception_records related methods to errors.py
parents f85b7476 5cedc8f9
Loading
Loading
Loading
Loading
+16 −2
Original line number Diff line number Diff line
@@ -6,6 +6,21 @@ import traceback
exception_records = []


def format_traceback(tb):
    return [[f"{x.filename}, line {x.lineno}, {x.name}", x.line] for x in traceback.extract_tb(tb)]


def format_exception(e, tb):
    return {"exception": str(e), "traceback": format_traceback(tb)}


def get_exceptions():
    try:
        return list(reversed(exception_records))
    except Exception as e:
        return str(e)


def record_exception():
    _, e, tb = sys.exc_info()
    if e is None:
@@ -14,8 +29,7 @@ def record_exception():
    if exception_records and exception_records[-1] == e:
        return

    from modules import sysinfo
    exception_records.append(sysinfo.format_exception(e, tb))
    exception_records.append(format_exception(e, tb))

    if len(exception_records) > 5:
        exception_records.pop(0)
+1 −17
Original line number Diff line number Diff line
import json
import os
import sys
import traceback

import platform
import hashlib
@@ -84,7 +83,7 @@ def get_dict():
        "Checksum": checksum_token,
        "Commandline": get_argv(),
        "Torch env info": get_torch_sysinfo(),
        "Exceptions": get_exceptions(),
        "Exceptions": errors.get_exceptions(),
        "CPU": {
            "model": platform.processor(),
            "count logical": psutil.cpu_count(logical=True),
@@ -104,21 +103,6 @@ def get_dict():
    return res


def format_traceback(tb):
    return [[f"{x.filename}, line {x.lineno}, {x.name}", x.line] for x in traceback.extract_tb(tb)]


def format_exception(e, tb):
    return {"exception": str(e), "traceback": format_traceback(tb)}


def get_exceptions():
    try:
        return list(reversed(errors.exception_records))
    except Exception as e:
        return str(e)


def get_environment():
    return {k: os.environ[k] for k in sorted(os.environ) if k in environment_whitelist}