Commit 2cdc2f94 authored by dmMaze's avatar dmMaze
Browse files

modify logger

parent 335ddebe
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -13,7 +13,6 @@ def main():
    parser.add_argument("--proj-dir", default='', type=str, help='Open project directory on startup')
    args = parser.parse_args()


    os.chdir(PROGRAM_PATH)
    app = QApplication(sys.argv)
    translator = QTranslator()
+22 −24
Original line number Diff line number Diff line
import time
from typing import List, Dict, Union
from logging import Logger
from typing import Union
import numpy as np
from collections import OrderedDict

from .stylewidgets import ProgressMessageBox
from PyQt5.QtCore import Qt, QThread, pyqtSignal, QObject, QLocale
from PyQt5.QtWidgets import QMessageBox, QPushButton

from .configpanel import TranslatorConfigPanel, InpaintConfigPanel, ConfigPanel
from .misc import ProjImgTrans, DLModuleConfig
from PyQt5.QtCore import QThread, pyqtSignal, QObject, QLocale
from PyQt5.QtWidgets import QMessageBox

from utils.logger import logger as LOGGER
from utils.registry import Registry
from dl.translators import MissingTranslatorParams, InvalidSourceOrTargetLanguage
from dl import INPAINTERS, TRANSLATORS, TEXTDETECTORS, OCR, \
@@ -19,6 +14,10 @@ from dl import INPAINTERS, TRANSLATORS, TEXTDETECTORS, OCR, \
import dl
dl.translators.SYSTEM_LANG = QLocale.system().name()

from .stylewidgets import ProgressMessageBox
from .configpanel import ConfigPanel
from .misc import ProjImgTrans, DLModuleConfig

class ModuleThread(QThread):

    exception_occurred = pyqtSignal(str, str)
@@ -392,10 +391,9 @@ class DLManager(QObject):
                 dl_config: DLModuleConfig, 
                 imgtrans_proj: ProjImgTrans,
                 config_panel: ConfigPanel, 
                 logger: Logger, *args, **kwargs) -> None:
                 *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self.dl_config = dl_config
        self.logger = logger
        self.imgtrans_proj = imgtrans_proj

        self.textdetect_thread = TextDetectThread(self.dl_config)
@@ -498,7 +496,7 @@ class DLManager(QObject):
    def translatePage(self, run_target: bool, page_key: str):
        if not run_target:
            if self.translate_thread.isRunning():
                self.logger.warning('Terminating a running translation thread.')
                LOGGER.warning('Terminating a running translation thread.')
                self.translate_thread.terminate()
            return
        self.translate_thread.translatePage(self.imgtrans_proj.pages, page_key)
@@ -508,13 +506,13 @@ class DLManager(QObject):

    def inpaint(self, img: np.ndarray, mask: np.ndarray, img_key: str = None, inpaint_rect = None, **kwargs):
        if self.inpaint_thread.isRunning():
            self.logger.warning('Waiting for inpainting to finish')
            LOGGER.warning('Waiting for inpainting to finish')
            return
        self.inpaint_thread.inpaint(img, mask, img_key, inpaint_rect)

    def runImgtransPipeline(self):
        if self.imgtrans_proj.is_empty:
            self.logger.info('proj file is empty, nothing to do')
            LOGGER.info('proj file is empty, nothing to do')
            self.progress_msgbox.hide()
            return
        self.last_finished_index = -1
@@ -589,7 +587,7 @@ class DLManager(QObject):
        if translator is None:
            translator = self.dl_config.translator
        if self.translate_thread.isRunning():
            self.logger.warning('Terminating a running translation thread.')
            LOGGER.warning('Terminating a running translation thread.')
            self.translate_thread.terminate()
        self.translate_thread.setTranslator(translator)
        self.update_translator_status.emit('...', self.dl_config.translate_source, self.dl_config.translate_target)
@@ -598,7 +596,7 @@ class DLManager(QObject):
        if inpainter is None:
            inpainter =self.dl_config.inpainter
        if self.inpaint_thread.isRunning():
            self.logger.warning('Terminating a running inpaint thread.')
            LOGGER.warning('Terminating a running inpaint thread.')
            self.inpaint_thread.terminate()
        self.inpaint_thread.setInpainter(inpainter)

@@ -606,7 +604,7 @@ class DLManager(QObject):
        if textdetector is None:
            textdetector = self.dl_config.textdetector
        if self.textdetect_thread.isRunning():
            self.logger.warning('Terminating a running text detection thread.')
            LOGGER.warning('Terminating a running text detection thread.')
            self.textdetect_thread.terminate()
        self.textdetect_thread.setTextDetector(textdetector)

@@ -614,27 +612,27 @@ class DLManager(QObject):
        if ocr is None:
            ocr = self.dl_config.ocr
        if self.ocr_thread.isRunning():
            self.logger.warning('Terminating a running OCR thread.')
            LOGGER.warning('Terminating a running OCR thread.')
            self.ocr_thread.terminate()
        self.ocr_thread.setOCR(ocr)

    def on_finish_setdetector(self):
        if self.textdetector is not None:
            self.dl_config.textdetector = self.textdetector.name
            self.logger.info('Text detector set to {}'.format(self.textdetector.name))
            LOGGER.info('Text detector set to {}'.format(self.textdetector.name))

    def on_finish_setocr(self):
        if self.ocr is not None:
            self.dl_config.ocr = self.ocr.name
            self.ocr_panel.setOCR(self.ocr.name)
            self.logger.info('OCR set to {}'.format(self.ocr.name))
            LOGGER.info('OCR set to {}'.format(self.ocr.name))

    def on_finish_setinpainter(self):
        if self.inpainter is not None:
            self.dl_config.inpainter = self.inpainter.name
            self.inpaint_panel.setInpainter(self.inpainter.name)
            self.update_inpainter_status.emit(self.dl_config.inpainter)
            self.logger.info('Inpainter set to {}'.format(self.inpainter.name))
            LOGGER.info('Inpainter set to {}'.format(self.inpainter.name))

    def on_finish_settranslator(self):
        translator = self.translator
@@ -642,7 +640,7 @@ class DLManager(QObject):
            self.dl_config.translator = translator.name
            self.update_translator_status.emit(self.dl_config.translator, self.dl_config.translate_source, self.dl_config.translate_target)
            self.translator_panel.finishSetTranslator(translator)
            self.logger.info('Translator set to {}'.format(self.translator.name))
            LOGGER.info('Translator set to {}'.format(self.translator.name))
        else:
            self.update_translator_status.emit(self.tr('Invalid'), '', '')
        
@@ -718,7 +716,7 @@ class DLManager(QObject):
            module.updateParam(param_key, param_content)
        
    def handleRunningException(self, msg: str, detail: str = None):
        self.logger.error(msg + '\n' + detail)
        LOGGER.error(msg + '\n' + detail)
        err = QMessageBox()
        err.setText(msg)
        if detail is not None:
+10 −7
Original line number Diff line number Diff line
from typing import List, Union, Tuple
from typing import List

from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QTreeView, QPlainTextEdit, QWidget, QFileDialog, QLabel, QSizePolicy, QComboBox, QListView, QToolBar, QMenu, QSpacerItem, QPushButton, QAction, QCheckBox, QToolButton, QSplitter, QStylePainter, QStyleOption, QStyle, QScrollArea, QLineEdit, QGroupBox, QGraphicsSimpleTextItem
from PyQt5.QtCore import Qt, QModelIndex, pyqtSignal, QPointF, QPoint, QSize, QSizeF, QObject, QEvent
from PyQt5.QtGui import QStandardItemModel, QFontMetricsF
from .stylewidgets import ConfigComboBox
from .constants import CONFIG_FONTSIZE_TABLE, CONFIG_FONTSIZE_CONTENT, CONFIG_FONTSIZE_HEADER, CONFIG_COMBOBOX_LONG, CONFIG_COMBOBOX_MIDEAN, CONFIG_COMBOBOX_SHORT
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QWidget, QFileDialog, QLabel, QSizePolicy, QComboBox, QListView, QToolBar, QMenu, QSpacerItem, QPushButton, QAction, QCheckBox, QToolButton, QSplitter, QStylePainter, QStyleOption, QStyle, QScrollArea, QLineEdit, QGroupBox, QGraphicsSimpleTextItem
from PyQt5.QtCore import Qt, pyqtSignal
from PyQt5.QtGui import QFontMetricsF

from dl import VALID_INPAINTERS, VALID_TEXTDETECTORS, VALID_TRANSLATORS, VALID_OCR, \
    TranslatorBase, DEFAULT_DEVICE
from utils.logger import logger as LOGGER

from .stylewidgets import ConfigComboBox
from .constants import CONFIG_FONTSIZE_CONTENT, CONFIG_COMBOBOX_MIDEAN, CONFIG_COMBOBOX_SHORT


class ParamNameLabel(QLabel):
    def __init__(self, param_name: str, *args, **kwargs) -> None:
@@ -156,7 +159,7 @@ class ModuleConfigParseWidget(QWidget):
                self.params_layout.addWidget(param_widget)
                param_widget.hide()
        if len(invalid_module_keys) > 0:
            print('Invalid module keys:', invalid_module_keys)
            LOGGER.warning(F'Invalid module keys: {invalid_module_keys}')
            for ik in invalid_module_keys:
                module_dict.pop(ik)
        self.on_module_changed()
+9 −12
Original line number Diff line number Diff line
@@ -6,6 +6,8 @@ from PyQt5.QtWidgets import QMainWindow, QHBoxLayout, QVBoxLayout, QApplication,
from PyQt5.QtCore import Qt, pyqtSignal, QPoint, QSize, QThread
from PyQt5.QtGui import QGuiApplication, QIcon, QCloseEvent, QKeySequence, QImage, QPainter, QMouseEvent

from utils.logger import logger as LOGGER

from .misc import ProjImgTrans
from .canvas import Canvas
from .configpanel import ConfigPanel
@@ -35,12 +37,11 @@ class MainWindow(QMainWindow):
    def __init__(self, app: QApplication, open_dir='', *args, **kwargs) -> None:
        super().__init__(*args, **kwargs)
        self.setWindowFlags(Qt.WindowType.FramelessWindowHint)
        global DPI, LDPI
        DPI = QGuiApplication.primaryScreen().physicalDotsPerInch()

        constants.DPI = QGuiApplication.primaryScreen().physicalDotsPerInch()
        constants.LDPI = QGuiApplication.primaryScreen().logicalDotsPerInch()

        self.app = app
        self.setupLogger()
        self.setupUi()
        self.setupConfig()
        self.setupShortcuts()
@@ -148,8 +149,8 @@ class MainWindow(QMainWindow):
                config_dict = json.loads(f.read())
            self.config.load_from_dict(config_dict)
        except Exception as e:
            self.logger.exception(e)
            self.logger.warning("Failed to load config file, using default config")
            LOGGER.exception(e)
            LOGGER.warning("Failed to load config file, using default config")

        self.bottomBar.originalSlider.setValue(self.config.original_transparency * 100)
        self.drawingPanel.maskTransperancySlider.setValue(self.config.mask_transparency * 100)
@@ -166,7 +167,7 @@ class MainWindow(QMainWindow):
        self.bottomBar.ocrChecker.setCheckState(self.config.dl.enable_ocr)
        self.bottomBar.transChecker.setChecked(self.config.dl.enable_translate)

        self.dl_manager = dl_manager = DLManager(self.config.dl, self.imgtrans_proj, self.configPanel, self.logger)
        self.dl_manager = dl_manager = DLManager(self.config.dl, self.imgtrans_proj, self.configPanel)
        self.dl_manager.update_translator_status.connect(self.updateTranslatorStatus)
        self.dl_manager.update_inpainter_status.connect(self.updateInpainterStatus)
        self.dl_manager.finish_translate_page.connect(self.finishTranslatePage)
@@ -186,10 +187,6 @@ class MainWindow(QMainWindow):
        if self.config.open_recent_on_startup:
            self.configPanel.open_on_startup_checker.setChecked(True)

    def setupLogger(self):
        from utils.logger import logger
        self.logger = logger

    def setupImgTransUI(self):
        self.centralStackWidget.setCurrentIndex(0)
        if self.leftBar.showPageListLabel.checkState() == 2:
@@ -202,8 +199,8 @@ class MainWindow(QMainWindow):
        try:
            self.imgtrans_proj.load(directory)
        except Exception as e:
            self.logger.exception(e)
            self.logger.warning("Failed to load project from " + directory)
            LOGGER.exception(e)
            LOGGER.warning("Failed to load project from " + directory)
            self.dl_manager.handleRunningException(self.tr('Failed to load project ') + directory, '')
            return
        self.proj_directory = directory