Browse Source

Add debug file caching

bryan 3 years ago
parent
commit
fd91cce506
1 changed files with 26 additions and 8 deletions
  1. 26 8
      openwrt-build-gui.py

+ 26 - 8
openwrt-build-gui.py

@@ -3,10 +3,14 @@
 import tkinter as tk
 from tkinter import filedialog
 from tkinter import ttk
+import os.path
 import pandas
 import gzip
 import urllib.request
 
+# This will enable file caching and some dev output
+debug=True
+
 
 class Main(tk.Frame):
     """This module generates information for the tkinter gui"""
@@ -35,7 +39,7 @@ class Main(tk.Frame):
 
         # Device Info
         self.device_info = tk.StringVar()
-        
+
 
         # Layout
         self.target_menu.grid(row=0, column=0, sticky=(tk.W + tk.E))
@@ -44,15 +48,29 @@ class Main(tk.Frame):
         self.backup_file_button.grid(row=1, column=0, sticky=(tk.W))
         self.columnconfigure(1, weight=1)
 
+
     
     def get_toh_df(self):
-        toh_gz_handle = urllib.request.urlopen("https://openwrt.org/_media/toh_dump_tab_separated.gz")
-        toh_handle = gzip.open(toh_gz_handle)
-        toh_df = pandas.read_csv(toh_handle, sep="\t", encoding = "ISO-8859-1")
-        toh_df = toh_df[(toh_df.target.notnull()) & 
-                             (toh_df.subtarget.notnull()) &
-                             (toh_df.target != '¿') &
-                             (toh_df.subtarget != '¿')]
+
+        cache_file = "sources/toh.tsv"
+
+        if debug is True and os.path.isfile(cache_file):
+            with open(cache_file) as infile:
+                try:
+                    toh_df = pandas.read_csv(infile)
+                except:
+                    os.remove(cache_file)
+        else:
+            toh_gz_handle = urllib.request.urlopen("https://openwrt.org/_media/toh_dump_tab_separated.gz")
+            toh_handle = gzip.open(toh_gz_handle)
+            toh_df = pandas.read_csv(toh_handle, sep="\t", encoding = "ISO-8859-1")
+            toh_df = toh_df[(toh_df.target.notnull()) & 
+                                (toh_df.subtarget.notnull()) &
+                                (toh_df.target != '¿') &
+                                (toh_df.subtarget != '¿')]
+            if debug is True:
+                with open(cache_file, 'w') as outfile:
+                    toh_df.to_csv(outfile)
         return toh_df