Scrollbar working correctly, updated logging

This commit is contained in:
Landon Wark
2023-01-25 10:13:11 -06:00
parent f53d420d56
commit 3c308f6559
2 changed files with 54 additions and 29 deletions

View File

@@ -168,20 +168,27 @@ def setup_logger(verbosity:int=3):
logger.setLevel(logging.DEBUG) logger.setLevel(logging.DEBUG)
# create file handler which logs even debug messages # create file handler which logs even debug messages
try: try:
fh = GroupWriteRotatingFileHandler(LOGDIR.joinpath('submissions.log'), mode='a', maxBytes=100000, backupCount=3, encoding=None, delay=False) Path(LOGDIR).mkdir(parents=True)
except FileNotFoundError as e: # fh = GroupWriteRotatingFileHandler(LOGDIR.joinpath('submissions.log'), mode='a', maxBytes=100000, backupCount=3, encoding=None, delay=False)
Path(LOGDIR).mkdir(parents=True, exist_ok=True) # except FileNotFoundError as e:
fh = GroupWriteRotatingFileHandler(LOGDIR.joinpath('submissions.log'), mode='a', maxBytes=100000, backupCount=3, encoding=None, delay=False) except FileExistsError:
pass
fh = GroupWriteRotatingFileHandler(LOGDIR.joinpath('submissions.log'), mode='a', maxBytes=100000, backupCount=3, encoding=None, delay=False)
fh.setLevel(logging.DEBUG) fh.setLevel(logging.DEBUG)
fh.name = "File" fh.name = "File"
# create console handler with a higher log level # create console handler with a higher log level
ch = logging.StreamHandler(stream=sys.stdout) ch = logging.StreamHandler(stream=sys.stdout)
# create custom logger with STERR -> log
# ch = StreamToLogger(logger=logger, log_level=verbosity)
match verbosity: match verbosity:
case 3: case 3:
# verb = logging.DEBUG
ch.setLevel(logging.DEBUG) ch.setLevel(logging.DEBUG)
case 2: case 2:
# verb = logging.INFO
ch.setLevel(logging.INFO) ch.setLevel(logging.INFO)
case 1: case 1:
# verb = logging.WARNING
ch.setLevel(logging.WARNING) ch.setLevel(logging.WARNING)
ch.name = "Stream" ch.name = "Stream"
# create formatter and add it to the handlers # create formatter and add it to the handlers
@@ -190,14 +197,28 @@ def setup_logger(verbosity:int=3):
ch.setFormatter(formatter) ch.setFormatter(formatter)
# ch.setLevel(logging.ERROR) # ch.setLevel(logging.ERROR)
# add the handlers to the logger # add the handlers to the logger
logger.addHandler(fh) logger.addHandler(fh)
logger.addHandler(ch) logger.addHandler(ch)
def handle_exception(exc_type, exc_value, exc_traceback):
if issubclass(exc_type, KeyboardInterrupt):
sys.__excepthook__(exc_type, exc_value, exc_traceback)
return
logger.critical("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback))
sys.exit(f"Uncaught error: {exc_type}, {exc_traceback}, check logs.")
sys.excepthook = handle_exception
# stderr_logger = logging.getLogger('STDERR') # stderr_logger = logging.getLogger('STDERR')
# sys.stderr = logger
return logger return logger
# sl = StreamToLogger(stderr_logger, logging.ERROR) # sl = StreamToLogger(stderr_logger, logging.ERROR)
# sys.stderr = sl # sys.stderr = sl
# def set_logger_verbosity(verbosity): # def set_logger_verbosity(verbosity):
# """Does what it says. # """Does what it says.
# """ # """

View File

@@ -4,11 +4,10 @@ from PyQt6.QtWidgets import (
QTabWidget, QWidget, QVBoxLayout, QTabWidget, QWidget, QVBoxLayout,
QPushButton, QMenuBar, QFileDialog, QPushButton, QMenuBar, QFileDialog,
QLineEdit, QMessageBox, QComboBox, QDateEdit, QHBoxLayout, QLineEdit, QMessageBox, QComboBox, QDateEdit, QHBoxLayout,
QSpinBox, QScrollArea QSpinBox, QScrollArea, QScrollBar, QSizePolicy
) )
from PyQt6.QtGui import QAction, QIcon from PyQt6.QtGui import QAction, QIcon
from PyQt6.QtCore import QDateTime, QDate, QSignalBlocker from PyQt6.QtCore import pyqtSlot, QDateTime, QDate, QSignalBlocker, Qt
from PyQt6.QtCore import pyqtSlot
from PyQt6.QtWebEngineWidgets import QWebEngineView from PyQt6.QtWebEngineWidgets import QWebEngineView
import pandas as pd import pandas as pd
@@ -198,25 +197,27 @@ class App(QMainWindow):
submit_btn = QPushButton("Submit") submit_btn = QPushButton("Submit")
self.table_widget.formlayout.addWidget(submit_btn) self.table_widget.formlayout.addWidget(submit_btn)
submit_btn.clicked.connect(self.submit_new_sample) submit_btn.clicked.connect(self.submit_new_sample)
# self.table_widget.interior.setSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.MinimumExpanding)
print(self.table_widget.formwidget.size())
# def renderPage(self):
def renderPage(self): # """
""" # Test function for plotly chart rendering
Test function for plotly chart rendering # """
""" # df = pd.read_excel("C:\\Users\\lwark\\Desktop\\test_df.xlsx", engine="openpyxl")
df = pd.read_excel("C:\\Users\\lwark\\Desktop\\test_df.xlsx", engine="openpyxl") # fig = px.bar(df, x="submitted_date", y="kraken_percent", color="genus", title="Long-Form Input")
fig = px.bar(df, x="submitted_date", y="kraken_percent", color="genus", title="Long-Form Input") # fig.update_layout(
fig.update_layout( # xaxis_title="Submitted Date (* - Date parsed from fastq file creation date)",
xaxis_title="Submitted Date (* - Date parsed from fastq file creation date)", # yaxis_title="Kraken Percent",
yaxis_title="Kraken Percent", # showlegend=True,
showlegend=True, # barmode='stack'
barmode='stack' # )
) # html = '<html><body>'
html = '<html><body>' # html += plotly.offline.plot(fig, output_type='div', include_plotlyjs='cdn', auto_open=True, image = 'png', image_filename='plot_image')
html += plotly.offline.plot(fig, output_type='div', include_plotlyjs='cdn', auto_open=True, image = 'png', image_filename='plot_image') # html += '</body></html>'
html += '</body></html>' # self.table_widget.webengineview.setHtml(html)
self.table_widget.webengineview.setHtml(html) # self.table_widget.webengineview.update()
self.table_widget.webengineview.update()
@@ -429,10 +430,13 @@ class AddSubForm(QWidget):
self.formwidget.setLayout(self.formlayout) self.formwidget.setLayout(self.formlayout)
self.formwidget.setFixedWidth(300) self.formwidget.setFixedWidth(300)
self.interior = QScrollArea() self.interior = QScrollArea(self.tab1)
# self.interior.verticalScrollBar()
# self.interior.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOn)
self.interior.setWidgetResizable(True) self.interior.setWidgetResizable(True)
self.interior.setFixedWidth(325) self.interior.setFixedWidth(325)
self.interior.setParent(self.tab1) # self.interior.setParent(self.tab1)
self.interior.setWidget(self.formwidget) self.interior.setWidget(self.formwidget)
self.sheetwidget = QWidget(self) self.sheetwidget = QWidget(self)
@@ -445,8 +449,8 @@ class AddSubForm(QWidget):
self.tab1.setLayout(self.tab1.layout) self.tab1.setLayout(self.tab1.layout)
# self.tab1.layout.addLayout(self.formlayout) # self.tab1.layout.addLayout(self.formlayout)
self.tab1.layout.addWidget(self.interior)
# self.tab1.layout.addWidget(self.formwidget) # self.tab1.layout.addWidget(self.formwidget)
self.tab1.layout.addWidget(self.formwidget)
self.tab1.layout.addWidget(self.sheetwidget) self.tab1.layout.addWidget(self.sheetwidget)
# self.tab1.layout.addLayout(self.sheetlayout) # self.tab1.layout.addLayout(self.sheetlayout)
self.datepicker = ControlsDatePicker() self.datepicker = ControlsDatePicker()