From bbb26fe74009bededee78b0afe5656e15586b39d Mon Sep 17 00:00:00 2001 From: Daniel Seichter Date: Sun, 5 Jan 2025 22:11:01 +0100 Subject: [PATCH 1/6] #48 first try to show current progress --- .gitignore | 1 + src/VATValidation.fbp | 348 +++++++++++++++++++++++++++++++++++++++++- src/batch.py | 39 ++++- src/gui.py | 34 ++++- src/vatvalidation.py | 56 ++++++- 5 files changed, 466 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 8f75d17..0d03be8 100644 --- a/.gitignore +++ b/.gitignore @@ -162,5 +162,6 @@ cython_debug/ # ignore auto generated files by VATValidation config.json src/config.json +src/batchstatus.json .vscode/ \ No newline at end of file diff --git a/src/VATValidation.fbp b/src/VATValidation.fbp index 560a26e..eceb871 100644 --- a/src/VATValidation.fbp +++ b/src/VATValidation.fbp @@ -1793,7 +1793,7 @@ 5 wxEXPAND 0 - + 2 wxBOTH 1 @@ -2151,7 +2151,7 @@ 5 wxEXPAND - 1 + 0 bSizer12 @@ -2218,6 +2218,350 @@ + + 5 + wxEXPAND + 1 + + 2 + wxBOTH + + + 0 + + fgSizer51 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + 0 + + 0 + 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 0 + 1 + + 1 + + 0 + 0 + wxID_ANY + Records found + 0 + + 0 + + + 0 + + 1 + staticText_RecordsFound + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + 0 + + 0 + 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 0 + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + 0 + + 0 + + 1 + textRecordsFound + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + 0 + + 0 + 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 0 + 1 + + 1 + + 0 + 0 + wxID_ANY + Progress + 0 + + 0 + + + 0 + + 1 + staticText_Progress + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + 0 + + 0 + 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 0 + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + progressProcessing + 1 + + + protected + 1 + + 100 + Resizable + 1 + + wxGA_HORIZONTAL + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + 0 + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + 0 + + 0 + 0 + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 0 + 1 + + 1 + + 0 + 0 + wxID_ANY + 0/0 + 0 + + 0 + + + 0 + + 1 + staticText_ProcessingXofY + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + diff --git a/src/batch.py b/src/batch.py index a9a2709..f4c3d66 100644 --- a/src/batch.py +++ b/src/batch.py @@ -24,12 +24,14 @@ import logging_config # Setup the logging # noqa: F401 import logging +import wx + logger = logging.getLogger(__name__) columns = ["key1", "key2", "ownvat", "foreignvat", "company", "street", "zip", "town"] -def validatebatch(inputfile, outputfile="", type="vies", lang="en"): +def validatebatch(inputfile, outputfile="", type="vies", lang="en", statusupdate=False): """ Validate the batch file and write the results to the output file. """ @@ -43,20 +45,20 @@ def validatebatch(inputfile, outputfile="", type="vies", lang="en"): match ext: case "csv": - resultcode = processcsv(inputfile, outputfile, type, lang) + resultcode = processcsv(inputfile, outputfile, type, lang, statusupdate) return resultcode case "xlsx": - resultcode = processxlsx(inputfile, outputfile, type, lang) + resultcode = processxlsx(inputfile, outputfile, type, lang, statusupdate) return resultcode case "json": - resultcode = processjson(inputfile, outputfile, type, lang) + resultcode = processjson(inputfile, outputfile, type, lang, statusupdate) return resultcode case _: logger.error("Unsupported file format") return 127 -def processcsv(inputfile, outputfile, type, lang): +def processcsv(inputfile, outputfile, type, lang, statusupdate): try: # read csv with columns data = pd.read_csv( @@ -66,11 +68,15 @@ def processcsv(inputfile, outputfile, type, lang): ) # create a list to store the results results = [] + # write statistics + write_status_update(statusupdate, len(data), 0) # iterate over the rows for index, row in data.iterrows(): # skip first line, because it contains the column names if index == 0: continue + # write statistics + write_status_update(statusupdate, len(data), index) # validate the row message = single.validatesingle( key1=row["key1"], @@ -113,14 +119,18 @@ def processcsv(inputfile, outputfile, type, lang): return 99 -def processxlsx(inputfile, outputfile, type, lang): +def processxlsx(inputfile, outputfile, type, lang, statusupdate): try: # read the input file data = pd.read_excel(inputfile, usecols=columns) # create a list to store the results results = [] + # write statistics + write_status_update(statusupdate, len(data), 0) # iterate over the rows for index, row in data.iterrows(): + # write statistics + write_status_update(statusupdate, len(data), index) # validate the row message = single.validatesingle( key1=row["key1"], @@ -156,13 +166,17 @@ def processxlsx(inputfile, outputfile, type, lang): return 99 -def processjson(inputfile, outputfile, type, lang): +def processjson(inputfile, outputfile, type, lang, statusupdate): try: data = pd.read_json(inputfile) # create a list to store the results results = [] + # write statistics + write_status_update(statusupdate, len(data), 0) # iterate over the rows for index, row in data.iterrows(): + # write statistics + write_status_update(statusupdate, len(data), index) # validate the row message = single.validatesingle( key1=row["key1"], @@ -196,3 +210,14 @@ def processjson(inputfile, outputfile, type, lang): except Exception as e: logging.error(f"An unexpected error occurred: {e}") return 99 + + +def write_status_update(statusupdate, total, current): + if statusupdate: + with open('batchstatus.json', 'w') as f: + data = { + "total": total, + "current": current + } + json.dump(data, f) + wx.Yield() diff --git a/src/gui.py b/src/gui.py index 3902c8f..0e366f8 100644 --- a/src/gui.py +++ b/src/gui.py @@ -223,7 +223,39 @@ def __init__( self, parent ): bSizer12.Add( self.m_staticline10, 0, wx.EXPAND |wx.ALL, 5 ) - bSizer9.Add( bSizer12, 1, wx.EXPAND, 5 ) + bSizer9.Add( bSizer12, 0, wx.EXPAND, 5 ) + + fgSizer51 = wx.FlexGridSizer( 0, 2, 0, 0 ) + fgSizer51.SetFlexibleDirection( wx.BOTH ) + fgSizer51.SetNonFlexibleGrowMode( wx.FLEX_GROWMODE_SPECIFIED ) + + self.staticText_RecordsFound = wx.StaticText( self.panelBatch, wx.ID_ANY, _(u"Records found"), wx.DefaultPosition, wx.DefaultSize, 0 ) + self.staticText_RecordsFound.Wrap( -1 ) + + fgSizer51.Add( self.staticText_RecordsFound, 0, wx.ALL, 5 ) + + self.textRecordsFound = wx.TextCtrl( self.panelBatch, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 ) + fgSizer51.Add( self.textRecordsFound, 0, wx.ALL, 5 ) + + self.staticText_Progress = wx.StaticText( self.panelBatch, wx.ID_ANY, _(u"Progress"), wx.DefaultPosition, wx.DefaultSize, 0 ) + self.staticText_Progress.Wrap( -1 ) + + fgSizer51.Add( self.staticText_Progress, 0, wx.ALL, 5 ) + + self.progressProcessing = wx.Gauge( self.panelBatch, wx.ID_ANY, 100, wx.DefaultPosition, wx.DefaultSize, wx.GA_HORIZONTAL ) + self.progressProcessing.SetValue( 0 ) + fgSizer51.Add( self.progressProcessing, 0, wx.ALL, 5 ) + + + fgSizer51.Add( ( 0, 0), 1, wx.EXPAND, 5 ) + + self.staticText_ProcessingXofY = wx.StaticText( self.panelBatch, wx.ID_ANY, _(u"0/0"), wx.DefaultPosition, wx.DefaultSize, 0 ) + self.staticText_ProcessingXofY.Wrap( -1 ) + + fgSizer51.Add( self.staticText_ProcessingXofY, 0, wx.ALL, 5 ) + + + bSizer9.Add( fgSizer51, 1, wx.EXPAND, 5 ) self.panelBatch.SetSizer( bSizer9 ) diff --git a/src/vatvalidation.py b/src/vatvalidation.py index c96fe2f..f6a4590 100644 --- a/src/vatvalidation.py +++ b/src/vatvalidation.py @@ -29,6 +29,11 @@ # import common libraries import webbrowser +import json +import os +from watchdog.observers import Observer +from watchdog.events import FileSystemEventHandler +import threading import logging_config # Setup the logging # noqa: F401 import logging @@ -100,7 +105,37 @@ def __init__(self, parent): self.m_notebook3.SetPageImage(0, 0) self.m_notebook3.SetPageImage(1, 1) self.m_notebook3.SetPageImage(2, 2) - + + # create a filesystem watcher and + #self.filewatcher = wx.FileSystemWatcher() + self.Bind(wx.EVT_CLOSE, self.OnClose) + wx.CallAfter(self.addWatchdog) + + def OnClose(self, _event): + self.observer.stop() + self.observer.join() + #os.remove("batchstatus.json") + self.Destroy() + + @staticmethod + def OnWatchdog(self, event): + if event.event_type in ['modified', 'created'] and 'batchstatus.json' in event.src_path: + try: + with open("batchstatus.json", "r") as f: + data = json.load(f) + # get the current status + self.textRecordsFound.SetValue(str(data["total"])) + self.staticText_ProcessingXofY.SetLabel(f"{data['current']}/{data['total']}") + self.progressProcessing.Range = data["total"] + self.progressProcessing.Value = data["current"] + except: + pass + if event.event_type in ['deleted'] and 'batchstatus.json' in event.src_path: + self.textRecordsFound.SetValue(str(0)) + self.staticText_ProcessingXofY.SetLabel("0/0") + self.progressProcessing.Range = 0 + self.progressProcessing.Value = 0 + # load the config file def loadConfig(self, event): settings.create_config() @@ -206,7 +241,8 @@ def validateBatch(self, event): inputfile=self.filepickerInput.GetPath(), outputfile=self.filepickerOutput.GetPath(), type=settings.load_value_from_json_file("interface"), - lang=settings.load_value_from_json_file("language") + lang=settings.load_value_from_json_file("language"), + statusupdate=True ) if resultcode == 127: @@ -239,6 +275,22 @@ def vatvalidationAbout(self, event): dlg = about_ui.DialogAbout(self) dlg.ShowModal() dlg.Destroy() + + def addWatchdog(self): + path = os.path.abspath(".") + self.observer = Observer() + event_handler = Handler(self) + self.observer.schedule(event_handler, path, recursive=True) + self.observer.start() + + +class Handler(FileSystemEventHandler): + def __init__(self, parent): + self.parent = parent + + def on_any_event(self, event): + # provide the parent frame (main frame) and the event to the OnWatchdog function + wx.CallAfter(self.parent.OnWatchdog, self.parent, event) # mandatory in wx, create an app, False stands for not deteriction stdin/stdout From 8c56f72800188d04193413e003e15782d6f8cdda Mon Sep 17 00:00:00 2001 From: Daniel Seichter Date: Mon, 6 Jan 2025 21:44:04 +0100 Subject: [PATCH 2/6] #48 progress of batch processing will now be shown --- src/batch.py | 4 +- src/vatvalidation.py | 134 +++++++++++++++++++------------------------ 2 files changed, 59 insertions(+), 79 deletions(-) diff --git a/src/batch.py b/src/batch.py index f4c3d66..559a1b7 100644 --- a/src/batch.py +++ b/src/batch.py @@ -24,7 +24,6 @@ import logging_config # Setup the logging # noqa: F401 import logging -import wx logger = logging.getLogger(__name__) @@ -217,7 +216,6 @@ def write_status_update(statusupdate, total, current): with open('batchstatus.json', 'w') as f: data = { "total": total, - "current": current + "current": current + 1 } json.dump(data, f) - wx.Yield() diff --git a/src/vatvalidation.py b/src/vatvalidation.py index f6a4590..870fb57 100644 --- a/src/vatvalidation.py +++ b/src/vatvalidation.py @@ -40,6 +40,8 @@ logger = logging.getLogger(__name__) +BATCH_STATUS_FILE = 'batchstatus.json' + # inherit from the MainFrame created in wxFowmBuilder and create VATValidationFrame class VATValidationFrame(gui.MainFrame): @@ -53,21 +55,10 @@ def __init__(self, parent): # specify all the icons gui.MainFrame.SetIcon(self, icons.tick_box.GetIcon()) - self.menuitemFileClose.SetBitmap( - icons.cancel.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap() - ) - self.menuitemHelpSupport.SetBitmap( - icons.get_help.GetBitmap() - .ConvertToImage() - .Rescale(16, 16) - .ConvertToBitmap() - ) - self.menuitemHelpUpdate.SetBitmap( - icons.restart.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap() - ) - self.menuitemHelpAbout.SetBitmap( - icons.info.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap() - ) + self.menuitemFileClose.SetBitmap(icons.cancel.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap()) + self.menuitemHelpSupport.SetBitmap(icons.get_help.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap()) + self.menuitemHelpUpdate.SetBitmap(icons.restart.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap()) + self.menuitemHelpAbout.SetBitmap(icons.info.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap()) self.buttonValidateSingle.SetBitmap(icons.fry.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap()) self.buttonValidateSingle.SetSize(self.buttonValidateSingle.GetBestSize()) @@ -81,61 +72,49 @@ def __init__(self, parent): # create image list self.imageList = wx.ImageList(16, 16) # add the icons - self.imageList.Add( - icons.document.GetBitmap() - .ConvertToImage() - .Rescale(16, 16) - .ConvertToBitmap() - ) - self.imageList.Add( - icons.microsoft_excel.GetBitmap() - .ConvertToImage() - .Rescale(16, 16) - .ConvertToBitmap() - ) - self.imageList.Add( - icons.settings.GetBitmap() - .ConvertToImage() - .Rescale(16, 16) - .ConvertToBitmap() - ) + self.imageList.Add(icons.document.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap()) + self.imageList.Add(icons.microsoft_excel.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap()) + self.imageList.Add(icons.settings.GetBitmap().ConvertToImage().Rescale(16, 16).ConvertToBitmap()) # set the image list self.m_notebook3.AssignImageList(self.imageList) # set the icons self.m_notebook3.SetPageImage(0, 0) self.m_notebook3.SetPageImage(1, 1) self.m_notebook3.SetPageImage(2, 2) - - # create a filesystem watcher and - #self.filewatcher = wx.FileSystemWatcher() + + # create a filesystem watcher and + # self.filewatcher = wx.FileSystemWatcher() self.Bind(wx.EVT_CLOSE, self.OnClose) wx.CallAfter(self.addWatchdog) - + def OnClose(self, _event): self.observer.stop() self.observer.join() - #os.remove("batchstatus.json") + if os.path.exists(BATCH_STATUS_FILE): + os.remove(BATCH_STATUS_FILE) self.Destroy() - + @staticmethod def OnWatchdog(self, event): - if event.event_type in ['modified', 'created'] and 'batchstatus.json' in event.src_path: + if event.event_type in ["modified", "created"] and BATCH_STATUS_FILE in event.src_path: try: - with open("batchstatus.json", "r") as f: + with open(BATCH_STATUS_FILE, "r") as f: data = json.load(f) # get the current status self.textRecordsFound.SetValue(str(data["total"])) self.staticText_ProcessingXofY.SetLabel(f"{data['current']}/{data['total']}") self.progressProcessing.Range = data["total"] self.progressProcessing.Value = data["current"] - except: + except FileNotFoundError: + pass + except json.decoder.JSONDecodeError: pass - if event.event_type in ['deleted'] and 'batchstatus.json' in event.src_path: + if event.event_type in ["deleted"] and BATCH_STATUS_FILE in event.src_path: self.textRecordsFound.SetValue(str(0)) self.staticText_ProcessingXofY.SetLabel("0/0") self.progressProcessing.Range = 0 self.progressProcessing.Value = 0 - + # load the config file def loadConfig(self, event): settings.create_config() @@ -201,7 +180,7 @@ def validateSingle(self, event): zip=self.textZip.GetValue(), town=self.textTown.GetValue(), type=settings.load_value_from_json_file("interface"), - lang=settings.load_value_from_json_file("language") + lang=settings.load_value_from_json_file("language"), ) self.textResultIsValid.SetValue("Yes" if message["valid"] else "No") self.textResultCode.SetValue(message["errorcode"]) @@ -209,52 +188,57 @@ def validateSingle(self, event): # In case of empty errorcode_description, load the company, address town, zip and street into textResultDetails if message.get("errorcode_description", "") == "": - self.textResultDetails.SetValue( - f"Company: {message['company']}\nAddress: {message['address']}\nTown: {message['town']}\nZip: {message['zip']}\nStreet: {message['street']}" - ) + self.textResultDetails.SetValue(f"Company: {message['company']}\nAddress: {message['address']}\nTown: {message['town']}\nZip: {message['zip']}\nStreet: {message['street']}") def validateBatch(self, event): if ( wx.MessageBox( "Are you sure you want to start the batch validation?", "Batch Validation", - wx.YES_NO | wx.ICON_QUESTION, + wx.YES_NO | wx.ICON_QUESTION, # on Windows, no icon will be shown (feature, not a bug) ) == wx.NO ): return if self.filepickerOutput.GetPath() == "": - wx.MessageBox( - "Please select an output file.", "No output file", wx.OK | wx.ICON_ERROR - ) + wx.MessageBox("Please select an output file.", "No output file", wx.OK | wx.ICON_ERROR) return # check if given file exists if not self.filepickerInput.GetPath(): - wx.MessageBox( - "Please select an input file.", "No input file", wx.OK | wx.ICON_ERROR - ) + wx.MessageBox("Please select an input file.", "No input file", wx.OK | wx.ICON_ERROR) return - resultcode = batch.validatebatch( - inputfile=self.filepickerInput.GetPath(), - outputfile=self.filepickerOutput.GetPath(), - type=settings.load_value_from_json_file("interface"), - lang=settings.load_value_from_json_file("language"), - statusupdate=True - ) - - if resultcode == 127: - wx.MessageBox( - "Unsupported file format.", "Unsupported file format", wx.OK | wx.ICON_ERROR - ) - return + # check if given format is supported + if self.filepickerInput.GetPath(): + ext = self.filepickerInput.GetPath().split(".")[-1].lower() + if ext not in ['xlsx', 'csv', 'json']: + wx.MessageBox("Unsupported input file format.", "Unsupported file format", wx.OK | wx.ICON_ERROR) + return + + if self.filepickerOutput.GetPath(): + ext = self.filepickerOutput.GetPath().split(".")[-1].lower() + if ext not in ['xlsx', 'csv', 'json']: + wx.MessageBox("Unsupported output file format.", "Unsupported file format", wx.OK | wx.ICON_ERROR) + return + + # set/reset everything to 0 + self.textRecordsFound.SetValue(str(0)) + self.staticText_ProcessingXofY.SetLabel("0/0") + self.progressProcessing.Range = 0 + self.progressProcessing.Value = 0 + + # start the batch validation + download_thread = threading.Thread(target=batch.validatebatch, kwargs={"inputfile": self.filepickerInput.GetPath(), "outputfile": self.filepickerOutput.GetPath(), "type": settings.load_value_from_json_file("interface"), "lang": settings.load_value_from_json_file("language"), "statusupdate": True}) + download_thread.start() + + while download_thread.is_alive(): + wx.Yield() + wx.MilliSleep(100) # if done, show a message box - wx.MessageBox( - "Batch validation done.", "Batch Validation", wx.OK | wx.ICON_INFORMATION - ) + wx.MessageBox("Batch validation done.", "Batch Validation", wx.OK | wx.ICON_INFORMATION) def checkForUpdates(self, event): if helper.check_for_new_release(): @@ -266,22 +250,20 @@ def checkForUpdates(self, event): if result == wx.YES: webbrowser.open_new_tab(helper.RELEASES) else: - wx.MessageBox( - "No new release available.", "No update", wx.OK | wx.ICON_INFORMATION - ) + wx.MessageBox("No new release available.", "No update", wx.OK | wx.ICON_INFORMATION) def vatvalidationAbout(self, event): # open the about dialog dlg = about_ui.DialogAbout(self) dlg.ShowModal() dlg.Destroy() - + def addWatchdog(self): path = os.path.abspath(".") self.observer = Observer() event_handler = Handler(self) self.observer.schedule(event_handler, path, recursive=True) - self.observer.start() + self.observer.start() class Handler(FileSystemEventHandler): From f82cb809465e1316209d4dab27d06fb3142ca221 Mon Sep 17 00:00:00 2001 From: Daniel Seichter Date: Mon, 6 Jan 2025 21:45:38 +0100 Subject: [PATCH 3/6] #48 add watchdog to requirements --- src/requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/requirements.txt b/src/requirements.txt index 3db5052..16f2529 100644 --- a/src/requirements.txt +++ b/src/requirements.txt @@ -5,4 +5,5 @@ pandas==2.2.3 numpy==2.2.1 openpyxl==3.1.5 pyinstaller==6.11.1 -defusedxml==0.7.1 \ No newline at end of file +defusedxml==0.7.1 +watchdog==6.0.0 \ No newline at end of file From a69248bae9eefc799823ac078334b0487dc23c97 Mon Sep 17 00:00:00 2001 From: Daniel Seichter Date: Mon, 6 Jan 2025 21:46:17 +0100 Subject: [PATCH 4/6] Fix pep8 --- src/vatvalidation.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vatvalidation.py b/src/vatvalidation.py index 870fb57..bf77d3e 100644 --- a/src/vatvalidation.py +++ b/src/vatvalidation.py @@ -195,7 +195,7 @@ def validateBatch(self, event): wx.MessageBox( "Are you sure you want to start the batch validation?", "Batch Validation", - wx.YES_NO | wx.ICON_QUESTION, # on Windows, no icon will be shown (feature, not a bug) + wx.YES_NO | wx.ICON_QUESTION, # on Windows, no icon will be shown (feature, not a bug) ) == wx.NO ): From 69e3bf557dcfaed29ac9ab67000c4aa00f4cd31d Mon Sep 17 00:00:00 2001 From: Daniel Seichter Date: Tue, 7 Jan 2025 21:30:20 +0100 Subject: [PATCH 5/6] #48 Optimize progress of validation within batch --- src/VATValidation.fbp | 13 +++++-------- src/gui.py | 6 ++++-- src/helper.py | 2 +- src/vatvalidation.py | 6 +++--- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/VATValidation.fbp b/src/VATValidation.fbp index eceb871..e1f56c3 100644 --- a/src/VATValidation.fbp +++ b/src/VATValidation.fbp @@ -2300,7 +2300,7 @@ 5 wxALL 0 - + 1 1 1 @@ -2329,15 +2329,16 @@ 0 0 wxID_ANY + 0 + 0 0 - 0 0 1 - textRecordsFound + staticText_RecordsFound 1 @@ -2351,14 +2352,10 @@ ; ; forward_declare 0 - - wxFILTER_NONE - wxDefaultValidator - - + -1 diff --git a/src/gui.py b/src/gui.py index 0e366f8..50e784f 100644 --- a/src/gui.py +++ b/src/gui.py @@ -234,8 +234,10 @@ def __init__( self, parent ): fgSizer51.Add( self.staticText_RecordsFound, 0, wx.ALL, 5 ) - self.textRecordsFound = wx.TextCtrl( self.panelBatch, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0 ) - fgSizer51.Add( self.textRecordsFound, 0, wx.ALL, 5 ) + self.staticText_RecordsFound = wx.StaticText( self.panelBatch, wx.ID_ANY, _(u"0"), wx.DefaultPosition, wx.DefaultSize, 0 ) + self.staticText_RecordsFound.Wrap( -1 ) + + fgSizer51.Add( self.staticText_RecordsFound, 0, wx.ALL, 5 ) self.staticText_Progress = wx.StaticText( self.panelBatch, wx.ID_ANY, _(u"Progress"), wx.DefaultPosition, wx.DefaultSize, 0 ) self.staticText_Progress.Wrap( -1 ) diff --git a/src/helper.py b/src/helper.py index 82f5f01..09f120b 100644 --- a/src/helper.py +++ b/src/helper.py @@ -19,7 +19,7 @@ logging.basicConfig(level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s') -VERSION = "v2024-11-06" +VERSION = "v2025-01-07" UPDATEURL = 'https://api.github.com/repos/dseichter/VATValidation/releases/latest' RELEASES = 'https://github.com/dseichter/VATValidation/releases' NAME = 'VATValidation' diff --git a/src/vatvalidation.py b/src/vatvalidation.py index bf77d3e..399ed84 100644 --- a/src/vatvalidation.py +++ b/src/vatvalidation.py @@ -101,7 +101,7 @@ def OnWatchdog(self, event): with open(BATCH_STATUS_FILE, "r") as f: data = json.load(f) # get the current status - self.textRecordsFound.SetValue(str(data["total"])) + self.staticText_RecordsFound.SetLabel(str(data["total"])) self.staticText_ProcessingXofY.SetLabel(f"{data['current']}/{data['total']}") self.progressProcessing.Range = data["total"] self.progressProcessing.Value = data["current"] @@ -110,7 +110,7 @@ def OnWatchdog(self, event): except json.decoder.JSONDecodeError: pass if event.event_type in ["deleted"] and BATCH_STATUS_FILE in event.src_path: - self.textRecordsFound.SetValue(str(0)) + self.staticText_RecordsFound.SetLabel("0") self.staticText_ProcessingXofY.SetLabel("0/0") self.progressProcessing.Range = 0 self.progressProcessing.Value = 0 @@ -224,7 +224,7 @@ def validateBatch(self, event): return # set/reset everything to 0 - self.textRecordsFound.SetValue(str(0)) + self.staticText_RecordsFound.SetLabel("0") self.staticText_ProcessingXofY.SetLabel("0/0") self.progressProcessing.Range = 0 self.progressProcessing.Value = 0 From 5cfbd23fe389ad26a3fb41025c676755e2ab23b0 Mon Sep 17 00:00:00 2001 From: Daniel Seichter Date: Tue, 7 Jan 2025 21:30:35 +0100 Subject: [PATCH 6/6] Add new pictures of upcoming release --- images/batch.png | Bin 17177 -> 17850 bytes images/config.png | Bin 20235 -> 19110 bytes images/single.png | Bin 23260 -> 22246 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/images/batch.png b/images/batch.png index 95511d276e2d6cd0f4ba4666d75d686850a7ad43..f1474316e38155523a0ee12b08eefa4a3e27c150 100644 GIT binary patch literal 17850 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 diff --git a/images/config.png b/images/config.png index 22c19b946b3e6d277bd6532f1f94af56dfac6063..bb0db1cc2e2f146ed2c2bb65cb68a241f2278911 100644 GIT binary patch literal 19110 zcmeIacQ{<{-!3X5BoUDiBx>~Nq6T3^iB5uGv>}WV2GP4zl8D}W9isQq36dzI6N6zy z)G>zWWejJ@_kH*Ed(Ym#z0dyZ?CV_TkGW=MJ*zzHSl0w4Cvw<^Ani5I*ATt*DLuUU-=Mf1>RTSlk^(El{6*qOT z2MNjbmh;brgcf%V5)w^04V6cRzLxk|>cD498Jh&iAw$7clR8saKymfk%hu&%24ktW zv7WM0SA=qG=Dh~-EO!`n(#M%dVX~Nuc&EWz{w+G;8b8EH3qJ3E9;DiPrlb|S?^$3I zBTBnsf+qWBo43z)syy<>hLnq-&|a5SSL0n>Q{$uF6C69#T=8t*f5LR=IIib(`($ET z4tJ65P*H`{ZYWb|XL%rQecjnLRmP*hf|P{hRj=E|j0_fs+bI|;)I(0y*yCfrG$__v zb&&dP2FwYR7*`~|r)2OSTS|hsBmoCliKRbysgxOV>L=s9p1eL)qh=X=1ohh)kj9TH zW;g%-B(S)^cGfWCx02z$_tQ9l@&XA-G&qtCBs_OC=(7kpU4ksalPqJ^xj4ib1Wo>+ zWW{{Yu=-x(_Ty(2Gr&`L)t?W>PnfwTK+cX)+i7zrkNpDzprIJ?LZ}f-%0*xYCWW)3 zp@3&UWjvO9uIc#s4>3cHfal=j;7wS!2jL`C|$-e98Dp)}|n$0@z3N zrcs$GxA;0PJ{=2+n;-+W7(q_Ala^w>uId^(3&}C3CCR2Q^1yu&CR)*4MI#`mv7EY)fS8dE{kWyYzA!xc)JXphVgZ za}Si6WI>*zZBovYcfGv4F#eA?@oJ7CO&~bV0rGM6v@XkYRcbnG!zTAq#rI(kDq+g2 z2#Wd&?-z)RA^=j6UBN;M2cH`LH zqPcF%sAZ2VLi$M;=;Uoi_$Wy>wc||S&H(15{fy9#qYr-INrvsukY@| zL(0wS2ZcX|3K5|wD1+Z?~(K zklX?SNGCRGY=ZevhK_6yE^}b?2@zFwG~)2;xK}Uu`AV)tgOD^YcI>Oq8Sx;1FGwQz z^0i2E{A{!F>7w50w?Q2pe-`5Kmk`SUd>uyeHltnLj}1t74B~0~@z07y;$}$ufxiS} zHmU-$*}7lR4$?e8LQY31r}H$t(;qRiO0HiZiN?Ok(M48(VS6D56GdOnG)sl(Wc%m^4~SzRV%$M!`H8eY6|?`%&_o*Akv|3Og9q;# zKghZl21OVl#_rMxmaN^2X+LczqT8n?R$p?jX{qH~`p#bhBb-xEQROR19tq_PGrCCv zA+5i*bKqKZGmj$-pHJ8fI~C-mb%@GIG+a7DA5N5+t>8s`Pn3^{Wc6c2;)YLqjYpBj z-UG>pVzLw@ZtvOFHrfa-n`SIL{QX7uXO&R_`=3vi8&{xbgCV=iKEc=!UnB~10H2hV zg)1S;DX3X@EeT6Tpt}yDW0ctv@l--XJh?c>4+e~vC2p+s#O&V@oDEtMfNV|N`AE(^ zi-F8-8bpjIMXEdA7@=7nj^U%qV^lwZ)jllh7%F_Ni4_x)=iz_0wrVI^x^{13_|-y^ z@YsD%CYGCfQ3fHb!ABlq*uAth&N33wm|7JqH6vHrkDbRs<_~y=;lZ5qDW^3U30$r- zc+VKR-MqoDI3LiC6(Urap}G?Z2K=@C%SkBDTiO>h^)5z(Obc_gyTG|4@a$jyvfB$3 zN_5OGnIgy^1U3C&2rL`LYB@R(*Nod=tmJkV<;9(DVqZAz{9(H@CjlslmbJYRo2^Y71HcOqo?B}lS(^~c|Dp*k-P#XB_q{?v+BJo}1i7#} zfVIc zagS;txMzY$77|*d>7D+`U4TSe@3@M!qW!cfgK6V%YhmGdgl&QQ_HyE!zteiAOlzS_ zu2M$h)gn|MZA2$`nm#;FLUxo^uzu|dFk|P2rB7oHahH@|C*mfin25xH{n#z7h|^W8 zKfP$%Agq7=thd=r7oFzN)2QxEJ=91{v8N;G*w*cjDfUC+{>njF+*#$fwjjcDWbNnm zB(FFat>DKO54860zOm$`nrbTFPwF!$`}o;2T@&P_uBLKH6oHgI+r@p#SJdT=GIiHb=o5~o(4zxNa31i4MjQ+~tRCUwdx0yxPcUFF&L z*HUCj5{=INo}%4|Vv^r`d%&ILzgMInA^G)ylm*yr;W7~HkVJA018(|3z2BN0uJNnEy&ESpAkLp}B8Pg@o962u>qiVz30Pp&BF=r771b#K_T=vxHORgB^R0`s>{HPTVQ|4B_0(Z)w?4;M$>5I&)kUWjmh|5T zY#Exig%+vD3OXPNt)B`C+X%7kVwr&eH=izD5U}cf3%#t;Iiz7P`YK^PUU_JL^1TgR z``PL^$C9_>8bN~iP+tfG3(0wLqVzMo*C$&XmEm@cGDA@zc(OG+wOkAx9 zFm}vRr>})QTLt4X7M|GYDEAQ_a_N9-aqmLz>4fz`f4=WY1xAk6f%Ng}Cuo>Yi0R-j zqD!x96B9+z#*Q6$f1PDyNruT5jJ#gM4U8+gT4BE`N;UX+ENgnINIT1&m^w4uWxsL( zc&-byS%=?LW|e{4ct!coqik@z1)P=w@(c)B3+`^RHU$y(r@+7k8y3a0jy{t&jrL$# zsnI-tx9p=`d55is8$DJQ`%}a*6yjYh$M+w4EceF%9(szNMlSA>XDys@a*6#7g!K{b~W>as+5}1ckCUE675Mw9mA?(b7$Sz|LUd z8Iy65M4PvZG$V4@JaFr~Wo1gFL{Fwdkm>S38nAcL+}Y`YBSn)-XW&Clj9u@4(tJ>LtORDN}N{ZS?R;w!AyMT==^Eh3>t4UUIo zF-pn%tY2y-FL-M+)PA=j;~`XO=GE?gW(?>2obOo3?w-ck*H_FT`25{>QB!pnNWQ9w zz1|Qah)IS7?1e3{C7y0oVzq`&UY~42SnHg0f@B%@I$cA!37IEVfkcAbQoBMm*!?Ux z!$Nj%Aid~}{zEeEuKP&ysiG1pP?6r^;8EjYu8$wPtJPf&54)kr^7QITiCcDB-iVB= zOxj4l7bVQ=0yB5tPrV;?!(>Eu*lsY9h%P~~6qK8@&8RdD_~P+Op)jK2ck9eP6E{OGT1zML|2=E6OAp(hUX?Sxx zt-8fxy=PJiC)C@^Sj(edgo@ai@9fyXB4fLuRBk^?k%W+dIvJ#oME3hSiJ zjfz=K+m~BeRv(D6E0ESdSm57ef46GL4VpmM%q2z*5gGysE&Se~#NwR|&MJs)D@P$A z0B_z>h&gkf*SKQ{fXb=4Lm`h&Iz?Xdx; zRcidK*w`~d45X)fduK8BXlL>8WBuY;S-_LvV-dZ{GBujSP%q`q^s5oCu}D%Z$LhGtkt;QwO(Zi^VO2!o_&qA#)LVMqB#eN2f>QAS8p> z;iKN+HziAnCAoPo{fvbYaU#T52gleqQb*sQ?=e}j@C}~E%{ynZGrSh{Xg9gskCdgo zo?(z^AOAcy*be5vd^w_@NC=|F`olehCo2|V z7Ik-qBS5y#7FzvhIYE#DS(Q+wRl;fgestJMtHh3fcP({fr13E}Iu+i5P@EDUwzpPR zwwj9G`@Ni3As|3G;GJMMSZjEl)fnMpwMAfc)@pIhh|SWAvLGi>e7-=xYA2G+$*>|A z9j;7itGjv?E&Iu4sMkQ+LZoWO?#&E?OHGBi`DUZ|b_Qtbo^+diPN2{CGtSNQ@L=!R zq$rmJNT&Y;!JzOyIGM9?lw1DJk@jnhG(!fLR_>gxRoBet)0$Xl0a)DLmrb`64h~X$ zepk$@UWdcA>hr^BJEcgW?lpU|eU|cs!BMMUVjbAkzSZhwG3=KqJH)+Me9(YCkDq=( zgWmOPB>_JU8qM~TNfL{%W6fL8&h@kFs`(Dh^1`!_1tSmhEy4zq(WVYQ&>w&F@R>(@ z?bZ?t$t$iO%&VE015UrDMxkIam}4W}pn9VyV5!`?OS@x)mvD@J3!jRjKpphe1QY5n zqN#40h!{=FQ?~~Z-mS}y@}HShYk14=C?D-@LiVQ5cDI!p#R%@3dKo_!yFu}@xQ&R2 zC#Ma4AQy4JI+IqO`m`I{@iPH=a|MyT^&o`?7xO8p4cQ2JzEf;BhzHfODIc34sT|pU zk{W0`57&2_ePfbr*0$Ih8`4EsbQs#<`J=k{<2yZ+cpe*hZh}Tzined&t33dazSk@|WEkb_@T}aK7pFA}d#oM-C8h7s=Q(OAxx$~)S z1-8gh4;%$52)y69K%(trbKTR}qJ3C9r@^t8jbRdA)TG0xE6-UE3SRg_Leou_w4y*K zq^8iOo7q&4As3@{c4;woXNyYY_vu~WS>(#a$qUyLxCgpbH{_z8EToCsAg-ya*d@Dp zoH{=k8-_zyLpyT%(2VOZ(=I~l2@13(drc{*;FJk7Q$uCmI`dHkgP`t=V z%@syWkPYX1Sz7Z6v}bOff3VE9NtEZTXVzgjeek?xjo<|f5n)k$VqvCSyJG$BEL;3p zY>m0gSqB6;8&a!Z-n__PK@7=waJOPNEQ-|F=zL-K^h43uTOfe1*%i~6*cIdE+SL-ddq zHhYd@)ln~&O3<)z{9`GmoaO%WXqW@c^ZKj(biGuh`_QaI?NB7+lpW!kv@_M`^7pnc zEv>$l!sdE7UFY*g=aa%)11_{qEb{ygBq14_zP4%k<-Tt(S#DA$Ww(x6u>Y_y%iH&m zXp4hcuI7*j6IFR5rA&c`N`+r9PnxWLnPCAHCD_j$Mg(qznL#&7Wh@EO^scd>bf32e zg}OG?mFh0-8lcjtmdF6N#XI+t?s1;1Nw+6l2oRZda!rqa%K}Qecy`>rltAn1YpuJP z5wL}7uX8HQc4%%*a{lw^wR7B{R!g)27y2zSaU&QhuV2eo$`jpmLQTghjH& zaPkH(wVn=la2)mGC|W>XjI^$`c%Cg`)ju6KD=Z*fzute{lJBNrtet%@=VKU3cUt*9yNhP}U0`OZE4fIn*@+`4wiPI~qLHn-c!g1Z)(r%F}FF)lqEyijsifoz+_>`X3 z#?NjwPBQE!RS-NH?eUCLhwq!yk6BR&nB-fy0TA%U)de1Ht9y9VNXPX_tCj}gp5M96 zO+Ltcms6MS+>lS`D# zyCX| zYBuL^;|Czi8A~E>x^_4jyJHR7=Gxy~J9;kz1jh_AtgFD+uLN_ppxvi(;n>L7lC)YN z7fH4}G5e;erA2X(#dQ(b!(}+62l&lx4E*lCd43GD+Fx{$`So=me|bqJd)}}WkK>Z{ z*+}2r-}j%R4DU}$NZ@Xb0lOcyG$Jkm$m{)GK4a2ZF4>^t+JmlS0EL7-;u#}3MH|n> zmxyF#LZ~Q6dYA*9HONO|WIEI3cI_o^+^GbRX4}Z!ixy^ZTYLNNg3i!N3(>Y|e%jqK zLb-E|_=s2N07WD$H|i!sXre3-z4nY!dNO{|l!NcPW$o@^Jxz=@!LsbHiyWXSp3D)O z^)N_Ye3{^-_=Qq&SGV1Mrl)4>uCwftYQ~R|c>~bV7`JyKT-+r)`37;hHz6*P^ZG{N zy&faK?3W8LcP-k+_f%RacsXL|d&>r6N*lh>nX|^Qe4nuvJM2@^9?U-oQwVKwqC?dO=?H_$q53djY^WXxBq8Rp4Q)C|J=XXo0HK~aja?Pz? z)B9e1YdWW^Q@=i#8fK2W)XtYWz~ePM-?@J27^$!HO!Hh_>2PSQ`xdH26>Pf4!g{4J z^7)iCsqyJxt1>C-2|GAs_+1W5$$AT&sR)j^$SqUNHPmJaWa@vi=@)ODGPP0}Mql9{74C`1+d+)m5MM!OH zfo{Gd=;L*gS0nkXtD%XCL6&^pDT1TYE0Yf3v~`@h5VxwVtCE$QiVzDh1v>C(TQi+7 z&vC(s1m~nwzmLsxE?2LXMN1yZL0z|1lHRb&jAk+s{VvsQBxEd=I46sB?p5#i*iBV+ z4hCpfZoEiZOK0bPIxBVXVSHNOu~LP}W&*q2m6{nYp&?O{BHB=6ZuH$7Kodq2eq6Tr z4}T23`=Cx^X_PT$I$|G#Saq1n^fH5wF+CbP(w(ZuJ6Hi-^WH5RU+dR+&yYwt$(|P?`yxCYDdL`xT2#ss?^y})h-VJV^ zBnB85RnFXL33K^liHK3%tQaHATqoDet0K%8;U(w$LXxe^B+C3Io2gxFNAw*_xlG$+ z5W!o;?v5zNVv!a|syjtez(HRbo!_L~{)f_OC$^q@7Z%VIAEy^fN)BP*g>Ess69p^QKcrE2Xqy5|&M9A%J8etPT~6Pl|6 zAB}fN-k~uxPY$=~Gz|9Qg8V8eZS#XVIeB=i^efWGqy%5x;HnYHYOVo4opb zf>GLjH|cX6CLh?mDEbLZ9X{dZV9P`XJjDZN7R^lIWuUg3=Y5^FHaFPzk&AjJg* zJdHbpaxh>rC94PS83TT=vFJwr9)$KLYWgwX`Wy<+V@yQVIE+iV5$W1%TFAWM!;VrXWu*fYaqeKffM~?3A3O zDN4E8$}R&FN%)&Y7qpJjJ9JU$JD`w}39!5%LnHd>{SJI?P>Li!5!SzWuyjRBdHz@R zWbQk{%cp=7qEnamvInmGX6JT}_&jb^6W~ze+WyI5NeyG1H=O_n8aLfl5EKvt9wMuU z2iVpP2H-w9NBp#r%lFvYa0sw!zW8j!x+xd$&15mr@H6qHWWP{?dM+(pvwJ5t*JKrP=*7=b7Z!85Mh&IR~hC-(o;scl87OX|j|BFV(b~g+<0g;_es% z8jZkK1MKSGxq~JnYvKTd=>zZOsw3FS>Bg*(g~5b-pQJR)#(VTFLS~6vmUHGaOf z1JkdHOwZmvh^x}R9pD=zF&sL9T;BGU8C?+iQ)?9eLBr#>YF#>aY|<^B{- zvwD{VHC8_^;c=`JYz*oj1h`ncUnT84BNwS3-er<@sr7hdDmKfZ<$t~Jc=ZN+oMEvi zWcol`L;{cB_a7m+EcQZsRpS;@?OXw3WXs}GzuB93REtq z>K4_a0PxGh09c?Ut&Nzv5egRfVs2ETaou>+*h$5=kbAk=mYuTC?N>aC0Z%N=Wh_|I z*S-HlC7Qf}u+cn}cKJMjNyIRI;p(*dlK_lrgFUaC0H~Yx6AB%l^zIgyQEdMb2Bqp{eFMs&9ARV zAsRHg(*HXP0IbLdp%tfqNl1SFU#t`mqyNt+3fk53nseCwS1w>LQL3y#o|J&ixnh2_ zCek)d31|pnfk$@PGj8de_?C2{ zpD=d*B|7fBzWFzf|L5lINoRNVmnQ3;{l#ke(I*oQ9}ziXh*D9L3My%J>(W;CCxa}e z(-B#EEh0AGPJbss?Tu4efld}gzPytoFpc323X+x70xwJ`-o{0z<_Y8>Q<3?3c4<@w zJo!RpG0=e#yf>27ad%oR$rsXlJO&N0-Lr1CsOg#LxCqc9ZkWS(bM(p6hEetoLA@8! z^r{g0vUo9Uyvu+-fEJy@K~KNDhyy3)st`0MvV_O18pk7t{~CyMswY`?5H##4Q)8Gv z#Uv>wSm%cb;`r-7?mLet7)*nViJ^azf$5+vr+?V#SVPiG+ zLw(^QZ4N7;W6&lb#c}I;K-QEu8dGngguwykX1@s(MWh}(?n?NI2Hlu z9=3PK^w5cqrVEhdk{@rzf`@oTwgU zku2gR`F$kmdrAIGDK?>MOw@jmd8)~)%vsS%e)NAVRxs&n^VkF>{3l&Q}=)DguiRD`)Z*7 zIh!$6>liolvYQ3d!nQ2jw94VC;DAQJ+=t{3CV>o8G(~K?qQH*jK~j`#E$ z^m<_#s64#^h=Cj(YD1r|$cVZwM7b~L69kARK_X0JUYodmiu^$Dt`m!a;ZyFMRQ z`pI)MUMu2XR(*pbaF}}Wb+SxZ`OVQ)--DzJO1PzLg~MNZaf;U!8E#pS-wuAh<%{?+%#rbzUs%+dDt z_Erf2XA`3$7F_;IJ=&b#E8w0*z5hv<|CcuAJh=JK1iMMY6VNTm0I74jtk+sgfi%Wf z`FwoQfWuFA0apH(iV8h|ZQ=#kC9Izg10=8t1w_!vnLv{RKxWwuq;iA7;1x+nwixwq z`vBcokanM}>0hXr@SjF9lbIHLFiQi(Evau4A4d21y&T2PGuC^`(h&?MyZ}p+SDy9N zq#o#4&kgJ)S&gQ z8FEt`Usr$DGg!#)(rl>2bb1UYhoB?p3gokPEb+}ZiS8N3;@BP5dU zjX&Sz!$)o^3QcV!%JY~Xc}}r{gC-L_(o_+VrVNrD&LurAu0%0M!GT1t0@Uh0bo6Nr zO#Q~#g6nzAWI7uqeJ#bgon^Gqgn-U`kPb{j^Sghu+_%(`-PJVBQ>`{W4& zKUk=`@Vhfp;>O@ZaQZ#E&}O)Jg^|>>=dI#t+s*_y@+3x_g--y+>KDG^)0?F8K^1WP^MJ zeM@b=ddr7%P9?RJ2=pnRC*o#Pv?1(MqVR&kORkx_RI+n+r=KHy-@~DLVT<2Gf7h<_ z>l>JIRyT3UzK}9>h!MnniGd+D-MS_^VoQX@J@S&k-BY%BU|!y(0>FrHM0a1&NElgv zt!};wMcF6%-ly#nDXoSt5+#uUF8sk^N>aozrCJ?<4w$Wt@~ZZ)Tr5WR2g7;%Lo%hm z!~3@M|3Od9znpjPv&F>r5|T4Y;rNSr@X-?D3d5&h>XKluq+qo2!=OH|iqcQ((a+Jb z+ODn@>44x!xOrXdJiaQZrsdV`IXT*CMZw{4$H;SKz}*D^QTrc*TsK$6^sCm@x2~LH zVSm^4f0GpGa1a&e87zGtam4ia>2yc2CEXD}dvj-1f3&poN=6YuHhfq zLM7;I2gLn%!{=DQ3Vgj~MLMgut_5_fA@qF1tA)SzO#8xrpmRSVajP?p9;0Y9E{F|i zFCVR_?jIaX3>R+dL0IK-AFhdz&f59`0o)Q0^Cteoj+4yfZQ2*=WhH8fw2mY4AHV&z zwa^U*Y|Sx&0K@G{xndqRZubeO5re%+Ey&MBa0ke&gaoJ=V7sD>(#|>bBn$5p*qw~f zMqp?>Gr(|~&CNW8w?ya4wf0G%{BA$kpG9Kkg=jDqo;2FT?LXFMwE&&X5tV{37v1^Mp}cJb2-_ zLc&Rx!MaGKXM3Y+r{InM7|r-UW+QBLpR_2-Oy()tSKa&CYa3~Uj^T`YBeFz7(6zbp zPP1qS5T`{}%%E5PK39v)HCD4+50-IL>qt)juM1z-T_68C={I~bXOom6f=8z#D@Ouh z(x@-?99b`a=^kt?R}=2p`BmnFytX6W@`pML=hgVVdH?2) z4@PL&E29meMR94OMkr5ndd?)-COKvKK1uQuV1jGkFf-*u)_P9c7j)H)f*Bhage#rv z*YC6I()I4Q+403aERvt$rHGvX*G0)!PnWLj%?Va}$eS zV~8)oIRNst8Q;2)!1jY{>i(kIoMOv@Ys}1AdPim6iZRFN?<}(+8f@g=%^6`1xlb^U zCz`00z{$!6%-hr531$?$(cIi zADm%ys2SHmsC#$w-tFtuI-YTSGaNdNY5Dvre=Zb=&`ujEaN*kK1njd)6IErNZP$oX z*b;M7#5mucJx^W?Sk-^VGaxIwqK78#K2Uvspk)xySjxzk?r>*VL?qOxC$(1X-EXag zs;fEDYfJSM$j_JbpFXuh(>SNC-Cy-T@_tw1n-E`bjGV5z2959z;u-z0!U!PNWtUT) zwWu%1cm2F;sj;|+X#R+LC9)#@t>M?ct{&{kU1CVRxd2m;Yj|%?`KS8MA?qE+h zlINn#NV$JqrTs#YG8b+}evpG~A(A5t>4a#mxa9WVFI8xH#@MOM!1W71H>dVqx~T*; zBru0a#@Q!f+XB{HWA5ymP-xY8lL=LB42!umz%|^pygY>ksg?szcK$fTb0)jy%y2OUo9C_^X?9jB zccyrr8RS3RKRO$hKHGAE)pB|_mF7K0OhM;E%MgpHj)GA`H_8t#3Vk0is zO=x0eB1V@TxfLIrX2Um51+uV(|mLR3(@F8jg^fZHKxo(sWRDO zsbQey2h<__j5qpw(?sjlQ;k6OTJYtA+;8TtHC*L^O#)Bd#Jel`jQ4AqnU<(9WD%-5 z)yIvetEXnwi#V!Nsjz&1CzaE-Ic77h_v^>w*N(z_T(E4zd;E*TKU~Q-#>7$65LCMI z#E*7SR3~JDf3DP$-!fCY`&nI)xwj;BBr8H{Grn2snMTiv@b@efYQT@KcaCaZ8rAw$ z;3oBYY2w;Io^wTaAsUpAPD73Sq#5?8kV08%J-q4X`{Tei35Q>|nzO?P8h$o-pT$@Sc(d zX9V~D+;{b6M!R~?7%&(Z5^mnvqW|)ng+`_U)3Rjpy@X5JMaAKkj27422{)TG%`Jd_ zu)54Y<#@dV^d``Cu{X}aEMfcpA~Lo^)~UAC5o6M+C%IiIinp|^chl zIOANN6BH)3a)X6$^l77mff8p~(%R6#NicI_v+c90*$SCK9Uqoh&Ze9zH38F`u>;Sp zY`h$M%ICWK1##!tUQ+MWjmy#uzt7D0T&#Xw58SeKW z^2Egv{Upz&VkOo#0Mek=v^{`W29a%6mPn;|h!G-%BQ~`zCcs!@_8A(HWX9+)43ABD z*N92wKoY^JA4KMvBNNtK-M=T7n9t9;I>egoEY;4WCfR};!rRGvw;DA$)L=#2*1x_J zd$b-(<=%y{l<_Es95>^ZR_#wsP7!LGb>hfG=Xj>Jv&j1O=9)H<<^fkf6$QSz4Z`dA zA^vFCP-e_U97Ava&A8b8Ij)ciD8V&_d+xB=1_QF>QD%It%Vv8yUVh+KKyt?kMc~~D zg~gi1PYCLA2*)TN(l(~voIqL5l+IQySRNv-vlm+u`Dd|kr&779w683&<0P6>Ya6eX zbr71&)VjYMv7YTm>t`~N+HU*yQE}iO_DdPRU7i3Kf%octu3rh7`1@oj3T)-bq>Q3W zw`mk_Oy#(16*Y8MFh=N@C(b~qk?-fruuP|taie;zW=w4bF`2KsKaKVi`FHEi(OD?u zdYp4g4(d;IV<_cb-IZ(sm3>^AZ@yYTcdeuKhkP8i(OGmw>_W%|$B&+>K%08hM!i*j z{nm57pEeHS-S%cQ&0419wIcG=;`n=8N}ZEaPI&zIi2~rie{wG;iMzqt41Fd`uJ4Y! zCY1l==J8B>Z>l7*vZowii4nT&9qyY4tH_J!Md)?-?qAZD?Dp>mt!%_6WR15c4V-ia zEVj>1v8(MtqL$e>!a&$L}V3Zi=0kA72m*zT96h>e{n z@AM9CJUwMid%&>E+63_a0NnFHmgY5A?JXl=xrN7N*LKLk6+6HpDm_fwQ?9;OZ&8f8 zUOr}OCWK!q={M`o9zK3MYJ-_=ZW=JnQRUgd12{%pIC?_!)a_lO=iVc7x!)5n2DuSM zn2-tKqqoXFdAFC2^HtO+@Kux1#q8`)Lv^?|%*_t^22W%+F<(q3|GY5}^+Zr7N`=i{ zOm+rGC&~j6z*)BMMX0>m;_!eLSAIonw*9I0u5|A`9DLX9-4W4*zq$Wtl4_t1(}WWS z!}G-a+00Lcr$$8=ZB+d;6TD|D7@m9Ha$Rg+{?snf*L4%KSvVDT1i#amWT;Y6hYIu2 z_R%P6oB$uoc68myiIwCCXyco6Hsw$2Zx?Nqe*f#D{P7Ld*d5t9ynGIGFKq7aoJ6}; zQvs%_daPv|!8n2HNfLcbKu&WH1izX<+j^%;%ZGe(QQ1FjGI5-^y1ODIN`y_(;fDx~ zETcB4Gak*L!i8hal}vSQ&eFwrl3wgDO}I_j1Ht`s7axy)l#3%$sd3Z>!qgprPEs z>UU>x;uzAE=_a4T#qPc`1)*kgHI^Oj19eZsF{UfKZ_9Y6#5{y{=gBvj2P6Y^D{_d) z+=j;+NmSK6atEBT0X2?0^jNi62fxwUv@C1eZ+oTIpn65eG410ipPNMDs#Ffn03olo zXv;r(P5cU^xXHm7WTApYYsT)eD)Jo~s!-t?mcoszA0$*s3`!o1Ewf{c>{1 z2L&!d@GT<6dyM$OUYLSN)~UhHT=-E~&u9oCHn2ozGwi3?e48+}3?B|4H`hC~lpfs;hn#S@Z_G5RhXB#N?sEHlia5tI+tt+K7Hr;}zm)rO zDR{zyt&tnCo)_aPAHd^2F*kUUA?{?CXmMs1BWJ&;hQMxn6tsgc?bqQ!QXt!uqYT#d zIc+F`BgnpcA^o@&H-<*1{h7w*PvOUl3^2P}Q6Udw;jcGF)Y$ggq^~g~9fSafm(D{T%U3GI#&DxVYGpF5}_s^jul1oUBPBzrE*gWoB7DrWycf z8|*vYT&i}NZF;JF`N!Y>e0}-w767w|e*d3fK>r3DI>&jw6c(yw`u@Ix#pCOQ#>N1| z<@*V%|C|LdB#*m|L!iW*t+65PtMmrnCL9`3^CMQOzF_T)P8492CH9@1Of3SkJFvKCW85$+wkG=-S;Q_@XjBS9!j7jBO z;JMJ&@nr&0@w5*J*ze6B8whzXYFX%gD+yQQ5Q;U+-~_+L_Foo`>WO@gW_I2LQsdaG zv}pZ&YhfViAv=ck%5%tj-v5uXmxeZU|6xO0XU5LXCNH8{Q{b2K@Xsv z6WU*Kc>o+UeY1Y_F?RU+IT*a4Aa^{$Ly(0*ILkm#I^=cQ!EK)n9r^U4VUFGeVXQ88 z^c_6-JUwTQ-(yGH-rAhB-UlY37?}JoXDmCttcR9tr0e}Lt?RlAFgwp=jgxw;Ce&+B zZ_%5wJ8k>)VLWLpaF$cxHW}gUh_ODcm+iLbFti(IvVp z!uy+UlGk{TRI|1+xHGl{&-rvp!m!%Zc1UUpVV~k$T;0nB&|qrkLNCFV$R`9z z{MN=I;7e^$DaZ(jXFfV>@J82BV?-ECLxy)pfGQycmh-ZiGPC+V&Zvhp3~Re}2&@<} z1*p>5ig}zZ&dzW0TVm|> znxY#a@Rk{g)C+`W5U+PL1 z255(cl{Xk=6r$|0>^42c##`kVrf?25HWT%o3ztO5j`RH4!SQI}pH38@(EK`t=`_-K zN+BE$NU&siBMP6Z-Mr@Y4q%;l2FWOzR_%L_pd+I{#2gi}+2r1goaZ>T_GUKpPQ2#F+xT4s9ld%|=oBLU7l>-Ll zcF4cyg_<-Zd^XHC`4X_Y6|XHR0qZ0c=-kV-hQ-G4X8I}t72`1EZoak4(e_eo94*08 z9KcDx4Mz#F|1}VyL+ARI|2@X}A81=U+sq0A7@M!E;Cjq4_WZVzw~a$G^K0t8@HNoaXHd>RW_S0(ye|8!DfngG=I(RXivh{E_TQ27Cc z@=JiF<{k&8&J`caxuxSifeK&Fr^eZwKUD-2rvTOG zRp;1kA=Kf#6if(jjYtu-An0L4VO!F&SpEJm;{jx__o zCUwCY(%CBVM(BGW6bP;eoSJJ@0Z28VMFVP-jg#RBbFt)*@iwA2(s&jVLW0+bvOKOe572rGe!l9!1_undD3$G`yr=56 zRY-lQqv_(MDk~EK|KUVy!U58v8KK@)^@pXBwuit@A85pLIqR&v8jaSmXUfJ zDzkj2fvdC>K|WLp<~d_;XFda-si2_$swa#}%;b(d4;=u)owR+?3C)`1-M>C9c5Dz-rBpV*?-Vo?@&aRD5Ls&G+A6s{X%po)rz)Fj zpA}@3C}akRzYOi|3uoNAsJsE=Z1w#79SqAuS(~kvjqXtLxxdAL@%ePCwVp-Px2+zO z11lm~(D72!`Kum2PuhPB%|8oTUG|)_{6_;KJ7%w|+1!MV+ojaRKjF zK_n}p=H^8HzIFj{EQ$qJ62WgPB)c-?e01%A${5WD%!rb6-$BRfFR#;EWmd@1-6=WrMgpp(o9Z`3rfR`@eBZi^&_DCS}g#rpw?<+r) zL?i&HAtUtq=Zs*9kBLTJqXElf2b# literal 20235 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 ZGtLM-#MxA@0NNhL;OXk;vd$@?2>_C_*WCaB diff --git a/images/single.png b/images/single.png index c735ed3c4d0ba80fe9973f017fd72c36ad420c2c..b8b48aca217f409e290e83f47eb25d56c3a725d6 100644 GIT binary patch literal 22246 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 literal 23260 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 CGyYrv