diff --git a/Interface/GUI/Data/GUI_main.py b/Interface/GUI/Data/GUI_main.py
index a094934..ea78bac 100644
--- a/Interface/GUI/Data/GUI_main.py
+++ b/Interface/GUI/Data/GUI_main.py
@@ -18,7 +18,7 @@
except (ImportError, NameError):
print("Failed to load PySimpleGUI lib | Exiting")
with open("Data\\logs\\SYS_FAILED_START_LOG.log", "a") as log_file:
- log_file.write("\n Failed to load PySimpleGUI lib \n")
+ log_file.write(f"\n Failed to load PySimpleGUI lib Tr({traceback.format_exc()})\n")
root = tk.Tk()
root.withdraw()
messagebox.showinfo("Internal Error | Exiting", "Failed to import PySimpleGUI, exiting...")
@@ -40,7 +40,9 @@
# import re # noqa: F401
import time
import cv2
+ import gzip
import json
+ import base64
import atexit
import queue
import hashlib
@@ -86,7 +88,7 @@
sys.exit()
# global vars>>>
# CONST SYS
-GUI_Ver = "0.9.5"
+GUI_Ver = "0.9.6"
Model_dir = "Data/PAI_model" # without file extention
Database_dir = "Data/dataset.npy"
IMG_AF = ("JPEG", "PNG", "BMP", "TIFF", "JPG", "DCM", "DICOM")
@@ -148,7 +150,7 @@ def is_updated(self):
sg.Button("Browse", key="-BUTTON_BROWSE_IMG_dir-"),
],
[sg.Text("Log:", font=(None, 10, "bold"))],
- [sg.Multiline(key="-OUTPUT_ST-", size=(54, 6), autoscroll=True, disabled=True)],
+ [sg.Multiline(key="-OUTPUT_ST-", size=(54, 6), autoscroll=True, disabled=True, write_only=True)],
[sg.Text("Result:", font=(None, 10, "bold"))],
[sg.Text(key="-OUTPUT_ST_R-", size=(50, 2), background_color="white")],
[
@@ -184,7 +186,7 @@ def is_updated(self):
GUI_layout_Tab_Sys_Info = [
[sg.Text("System Info:", font=(None, 10, "bold"))],
[
- sg.Multiline("N/A", key="-OUTPUT_ST_SYS_INFO-", size=(54, 8), expand_y=True, disabled=True),
+ sg.Multiline("N/A", key="-OUTPUT_ST_SYS_INFO-", size=(54, 8), expand_y=True, disabled=True, write_only=True),
],
]
@@ -336,14 +338,24 @@ def get_latest_release_files(url) -> list:
try:
response = requests.get(url)
except (ConnectionError, RequestException):
- print("Failed to make a GET request to the GitHub API (Possible Cause: Max requests exceeded)")
+ print("Failed to make a GET request to the GitHub API (Possible Cause: Max requests exceeded / Broken internet connection)")
+ GUI_Queue["-Main_log-"].put(
+ "Failed to make a GET request to the GitHub API (Possible Cause: Max requests exceeded / Broken internet connection)"
+ )
+ logger.warning(
+ f"get_latest_release_files>>ERROR: Failed to make a GET request to the GitHub API (Possible Cause: Max requests exceeded / Broken internet connection) Tr({traceback.format_exc()})"
+ )
return assets
# Check if the request was successful
if response.status_code == 200:
# Parse the JSON response
data = response.json()
-
+ # Debug out
+ compressed_data = gzip.compress(str(data).encode())
+ compressed_base64 = base64.b64encode(compressed_data).decode()
+ logger.debug(f"get_latest_release_files:data(json/gzip/base64) ~Gzip_Base64[{compressed_base64}]Gzip_Base64~")
+ # You can decompress it like --> gzip.decompress(base64.b64decode(compressed_base64)).decode()
# Extract the assets from the latest release
assets_temp = data["assets"]
assets = [asset["name"] for asset in assets_temp]
@@ -365,14 +377,28 @@ def download_file_from_github(url: str, file_name: str, save_as: str, chunk_size
save_as (str): The local path to save the downloaded file to.
chunk_size (int): The chunk size to use when streaming the download.
"""
- response = requests.get(url)
+ # Make a GET request to the GitHub API
+ try:
+ response = requests.get(url)
+ except (ConnectionError, RequestException):
+ print("Failed to make a GET request to the GitHub API (Possible Cause: Max requests exceeded / Broken internet connection)")
+ GUI_Queue["-Main_log-"].put(
+ "Failed to make a GET request to the GitHub API (Possible Cause: Max requests exceeded / Broken internet connection)"
+ )
+ logger.warning(
+ f"download_file_from_github>>ERROR: Failed to make a GET request to the GitHub API (Possible Cause: Max requests exceeded / Broken internet connection) Tr({traceback.format_exc()})"
+ )
+ raise Exception
data = response.json()
- logger.debug(f"download_file_from_github:data(json) {data}")
+ # Debug out
+ compressed_data = gzip.compress(str(data).encode())
+ compressed_base64 = base64.b64encode(compressed_data).decode()
+ logger.debug(f"download_file_from_github:data(json/gzip/base64) ~Gzip_Base64[{compressed_base64}]Gzip_Base64~")
+ # You can decompress it like --> gzip.decompress(base64.b64decode(compressed_base64)).decode()
# Get the name of the latest release
release_name = data["name"]
print(f"Latest release: {release_name}")
GUI_Queue["-Main_log-"].put(f"Latest Github repo release: {release_name}")
-
# Get the assets of the latest release
assets = data["assets"]
@@ -444,6 +470,7 @@ def CI_pwai(show_gradcam: bool = True) -> str:
print_Color("loading the Ai model...", ["normal"])
model = load_model(Model_dir, custom_objects={"FixedDropout": FixedDropout})
except (ImportError, IOError):
+ logger.warning(f"CI_pwai>>ERROR: Failed to load the model. Tr({traceback.format_exc()})")
return "ERROR: Failed to load the model."
else:
print_Color("predicting with the Ai model...", ["normal"])
@@ -514,6 +541,7 @@ def CI_rlmw() -> None:
model = load_model(Model_dir, custom_objects={"FixedDropout": FixedDropout})
except (ImportError, IOError):
GUI_Queue["-Main_log-"].put("ERROR: Failed to load the model.")
+ logger.warning(f"CI_rlmw>>ERROR: Failed to load the model. Tr({traceback.format_exc()})")
return None
GUI_Queue["-Main_log-"].put("loading the Ai model done.")
@@ -608,6 +636,7 @@ def CI_uaim(model_type_id) -> None:
print("Model downloaded.")
except Exception:
GUI_Queue["-Main_log-"].put("ERROR: Failed to download the model.")
+ logger.warning(f"CI_uaim>>ERROR: Failed to download the model. Tr({traceback.format_exc()})")
else:
GUI_Queue["-Main_log-"].put("Model downloaded.")
@@ -628,6 +657,7 @@ def CI_umij() -> None:
)
except Exception:
GUI_Queue["-Main_log-"].put("ERROR: Failed to download the model info.")
+ logger.warning(f"CI_umij>>ERROR: Failed to download the model info. Tr({traceback.format_exc()})")
else:
GUI_Queue["-Main_log-"].put("Model info downloaded.")