From e83be5cde1b4ad904adcbd4b70f77446df1c0118 Mon Sep 17 00:00:00 2001 From: "St.Huang" Date: Sun, 1 Jul 2018 18:12:31 +0800 Subject: [PATCH] fix progress info bugs --- 2.0.x.zip | Bin 118618 -> 118226 bytes src/fastwq/progress.py | 32 +++--------------- src/fastwq/query.py | 65 +++++++++++++++++++++++++++---------- src/fastwq/service/base.py | 21 +----------- 4 files changed, 54 insertions(+), 64 deletions(-) diff --git a/2.0.x.zip b/2.0.x.zip index e7a8ba6baf51c7d7e439761c7436523ebf398500..0343cc99355cdc5619c100a67199d093cd5d6052 100644 GIT binary patch delta 12422 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 delta 12786 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 diff --git a/src/fastwq/progress.py b/src/fastwq/progress.py index 9f28d2e..ce18cbe 100644 --- a/src/fastwq/progress.py +++ b/src/fastwq/progress.py @@ -25,40 +25,25 @@ class ProgressManager(object): self.blockUpdates = False self._win = None self._levels = 0 - self.aborted = False - self.rows_number = 0 - self._msg_info = defaultdict(dict) self._msg_count = defaultdict(int) # Creating progress dialogs ########################################################################## - @pyqtSlot(dict) def update_labels(self, data): if self.abort(): return - + if data.type == 'count': self._msg_count.update(data) else: - self._msg_info[data.index] = data - - lst = [] - for index in range(self.rows_number): - info = self._msg_info.get(index, None) - if not info: - continue - if info.type == 'text': - lst.append(info.text) - else: - lst.append(u"{2} [{0}] {1}".format( - info.service_name, info.field_name, info.flag)) + return number_info = '' words_number, fields_number, fails_number = ( - self._msg_count['words_number'], + self._msg_count['words_number'], self._msg_count['fields_number'], self._msg_count['fails_number'] - ) + ) if words_number or fields_number: number_info += _('QUERIED') + '
' + 45 * '-' number_info += u'
{0}: {1}{2}'.format( @@ -68,24 +53,17 @@ class ProgressManager(object): number_info += u'
{0}: {1}{2}'.format( _('FAILURE'), fails_number, _('WORDS')) - self.update('
'.join(lst) + number_info, value=words_number) + self.update(label=number_info, value=words_number) self._win.adjustSize() def update_title(self, title): self._win.setWindowTitle(title) - def update_rows(self, number): - self.rows_number = number - self._msg_info.clear() - def reset_count(self): self._msg_count.clear() def start(self, max=0, min=0, label=None, parent=None, immediate=False, rows=0): - self._msg_info.clear() self._msg_count.clear() - self.rows_number = rows - self.aborted = False self._levels += 1 if self._levels > 1: return diff --git a/src/fastwq/query.py b/src/fastwq/query.py index 80fd1c6..32df18d 100644 --- a/src/fastwq/query.py +++ b/src/fastwq/query.py @@ -35,13 +35,16 @@ from .progress import ProgressManager from .service import service_manager, QueryResult, copy_static_file from .utils import Empty, MapDict, Queue, wrap_css + + def inspect_note(note): - ''' + """ inspect the note, and get necessary input parameters return word_ord: field index of the word in current note return word: the word return maps: dicts map of current note - ''' + """ + maps = config.get_maps(note.model()['id']) for i, m in enumerate(maps): if m.get('word_checked', False): @@ -58,8 +61,11 @@ def inspect_note(note): word = purify_word(note.fields[word_ord]) return word_ord, word, maps -# 工作线程 + class QueryThread(QThread): + """ + Query Worker Thread + """ progress_update = pyqtSignal(dict) note_flush = pyqtSignal(object) @@ -87,7 +93,7 @@ class QueryThread(QThread): if self.manager: if self.manager.update(note, results, success_num): self.note_flush.emit(note) - # 更新进度 + # Update progress window infomation self.progress_update.emit( MapDict( type='count', @@ -99,9 +105,11 @@ class QueryThread(QThread): except InvalidWordException: showInfo(_("NO_QUERY_WORD")) - class QueryWorkerManager(object): + """ + Query Worker Thread Manager + """ def __init__(self): self.workers = [] @@ -122,7 +130,6 @@ class QueryWorkerManager(object): self.get_worker() self.total = self.queue.qsize() - progress.update_rows(len(self.workers)) for worker in self.workers: worker.start() @@ -169,8 +176,11 @@ def handle_flush(note): note.flush() -# 浏览界面查找 def query_from_browser(browser): + """ + Query word from Browser + """ + if not browser: return @@ -184,8 +194,12 @@ def query_from_browser(browser): query_all(notes) browser.model.reset() -# 编辑界面查找 + def query_from_editor_all_fields(editor): + """ + Query word fileds from Editor + """ + if not editor or not editor.note: return @@ -193,9 +207,12 @@ def query_from_editor_all_fields(editor): editor.setNote(editor.note, focus=True) editor.saveNow() + +def query_all(notes): + """ + Query maps word fileds + """ -# 查找所有 -def query_all(notes): if len(notes) == 0: return @@ -215,7 +232,12 @@ def query_all(notes): work_manager.clean() service_pool.clean(); + def update_note_fields(note, results): + """ + Update query result to note fields, return updated fields count. + """ + if not results or not note or len(results) == 0: return count = 0 @@ -227,6 +249,10 @@ def update_note_fields(note, results): def update_note_field(note, fld_index, fld_result): + """ + Update single field, if result is valid then return 1, else return 0 + """ + result, js, jsfile = fld_result.result, fld_result.js, fld_result.jsfile # js process: add to template of the note model add_to_tmpl(note, js=js, jsfile=jsfile) @@ -287,7 +313,11 @@ def add_to_tmpl(note, **kwargs): class InvalidWordException(Exception): """Invalid word exception""" -def query_all_flds(note, progress_update=None): +def query_all_flds(note): + """ + Query all fields of single note + """ + word_ord, word, maps = inspect_note(note) if not word: raise InvalidWordException @@ -315,7 +345,6 @@ def query_all_flds(note, progress_update=None): for task in tasks: try: service = services.get(task['k'], None) - service.set_notifier(progress_update, task['i']) qr = service.active(task['f'], task['w']) if qr: result.update({task['i']: qr}) @@ -329,9 +358,11 @@ def query_all_flds(note, progress_update=None): return result, success_num -# 服务实例对象池 + class ServicePool(object): - + """ + Service instance pool + """ def __init__(self): self.pools = {} @@ -358,6 +389,6 @@ class ServicePool(object): self.pools = {} -progress = ProgressManager(mw) -work_manager = QueryWorkerManager() -service_pool = ServicePool() +progress = ProgressManager(mw) # progress window +work_manager = QueryWorkerManager() # Query Worker Thread Manager +service_pool = ServicePool() # Service Instance Pool Manager diff --git a/src/fastwq/service/base.py b/src/fastwq/service/base.py index e924bfc..0715e71 100644 --- a/src/fastwq/service/base.py +++ b/src/fastwq/service/base.py @@ -159,33 +159,14 @@ class Service(object): # if the service instance is LocalService, # then have to build then index. if isinstance(self, LocalService): - self.notify(MapDict(type='text', index=self.work_id, - text=u'Building %s...' % self._filename)) if isinstance(self, MdxService) or isinstance(self, StardictService): self.builder.check_build() for each in self.exporters: if action_label == each[0]: - self.notify(MapDict(type='info', index=self.work_id, - service_name=self.title, - field_name=action_label, - flag=u'->')) - result = each[1]() - self.notify(MapDict(type='info', index=self.work_id, - service_name=self.title, - field_name=action_label, - flag=u'√')) - return result + return each[1]() return QueryResult.default() - def set_notifier(self, progress_update, index): - self.notify_signal = progress_update - self.work_id = index - - def notify(self, data): - if self.notify_signal: - self.notify_signal.emit(data) - @staticmethod def get_anki_label(filename, type_): formats = {'audio': u'[sound:{0}]',