[view.qt] adding log statistics when filtering packages

This commit is contained in:
Vinicius Moreira
2023-11-26 11:24:27 -03:00
parent 925aaf35c5
commit 2d43fc5414
2 changed files with 7 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ import traceback
from concurrent.futures import ThreadPoolExecutor from concurrent.futures import ThreadPoolExecutor
from datetime import datetime, timedelta from datetime import datetime, timedelta
from io import StringIO from io import StringIO
from logging import Logger
from pathlib import Path from pathlib import Path
from queue import Queue from queue import Queue
from typing import List, Type, Set, Tuple, Optional from typing import List, Type, Set, Tuple, Optional
@@ -961,8 +962,9 @@ class ApplyFilters(AsyncAction):
signal_table = pyqtSignal(object) signal_table = pyqtSignal(object)
def __init__(self, i18n: I18n, filters: dict = None, pkgs: List[PackageView] = None): def __init__(self, i18n: I18n, logger: Logger, filters: dict = None, pkgs: List[PackageView] = None):
super(ApplyFilters, self).__init__(i18n=i18n) super(ApplyFilters, self).__init__(i18n=i18n)
self.logger = logger
self.pkgs = pkgs self.pkgs = pkgs
self.filters = filters self.filters = filters
self.wait_table_update = False self.wait_table_update = False
@@ -972,6 +974,7 @@ class ApplyFilters(AsyncAction):
def run(self): def run(self):
if self.pkgs: if self.pkgs:
ti = time.time()
pkgs_info = commons.new_pkgs_info() pkgs_info = commons.new_pkgs_info()
name_filtering = bool(self.filters['name']) name_filtering = bool(self.filters['name'])
@@ -987,6 +990,8 @@ class ApplyFilters(AsyncAction):
self.wait_table_update = True self.wait_table_update = True
self.signal_table.emit(pkgs_info) self.signal_table.emit(pkgs_info)
tf = time.time()
self.logger.info(f"Took {tf - ti:.4f} seconds to filter packages")
while self.wait_table_update: while self.wait_table_update:
super(ApplyFilters, self).msleep(5) super(ApplyFilters, self).msleep(5)

View File

@@ -344,7 +344,7 @@ class ManageWindow(QWidget):
self.thread_custom_action = self._bind_async_action(CustomAction(manager=self.manager, i18n=self.i18n), finished_call=self._finish_execute_custom_action) self.thread_custom_action = self._bind_async_action(CustomAction(manager=self.manager, i18n=self.i18n), finished_call=self._finish_execute_custom_action)
self.thread_screenshots = self._bind_async_action(ShowScreenshots(i18n, self.manager), finished_call=self._finish_show_screenshots) self.thread_screenshots = self._bind_async_action(ShowScreenshots(i18n, self.manager), finished_call=self._finish_show_screenshots)
self.thread_apply_filters = ApplyFilters(i18n) self.thread_apply_filters = ApplyFilters(i18n=i18n, logger=logger)
self.thread_apply_filters.signal_finished.connect(self._finish_apply_filters) self.thread_apply_filters.signal_finished.connect(self._finish_apply_filters)
self.thread_apply_filters.signal_table.connect(self._update_table_and_upgrades) self.thread_apply_filters.signal_table.connect(self._update_table_and_upgrades)
self.signal_table_update.connect(self.thread_apply_filters.stop_waiting) self.signal_table_update.connect(self.thread_apply_filters.stop_waiting)