[chirp_devel] [PATCH] Optimizing generic csv files load times by removing duplicate load for an empty list. Fixes #8991
Kosta A.
Wed Jun 23 00:21:57 PDT 2021
# HG changeset patch
# User Kosta A. <ve7kcy at gmail.com>
# Date 1624429267 25200
# Tue Jun 22 23:21:07 2021 -0700
# Branch generic-csv
# Node ID 6b816f380d29518e9d45fe6a6a8fa32d3e96b805
# Parent f586574bc8786fd6bef1e5d54d08d381c81edd47
Optimizing generic csv files load times by removing duplicate load for an empty list. Fixes #8991
diff --git a/chirp/chirp_common.py b/chirp/chirp_common.py
--- a/chirp/chirp_common.py
+++ b/chirp/chirp_common.py
@@ -268,11 +268,11 @@
# or an empty list if none
extra = []
- def __init__(self):
+ def __init__(self, number=0, empty=False, name=""):
self.freq = 0
- self.number = 0
+ self.number = number
self.extd_number = ""
- self.name = ""
+ self.name = name
self.vfo = 0
self.rtone = 88.5
self.ctone = 88.5
@@ -290,7 +290,7 @@
self.comment = ""
- self.empty = False
+ self.empty = empty
self.immutable = []
diff --git a/chirp/drivers/generic_csv.py b/chirp/drivers/generic_csv.py
--- a/chirp/drivers/generic_csv.py
+++ b/chirp/drivers/generic_csv.py
@@ -73,14 +73,12 @@
"Comment": (str, "comment"),
}
- def _blank(self):
+ def _blank(self, setDefault=False):
self.errors = []
- self.memories = []
- for i in range(0, 1000):
- mem = chirp_common.Memory()
- mem.number = i
- mem.empty = True
- self.memories.append(mem)
+ self.memories = [chirp_common.Memory(i, True) for i in range(0, 1000)]
+ if (setDefault):
+ self.memories[0].empty = False
+ self.memories[0].freq = 146010000
def __init__(self, pipe):
chirp_common.FileBackedRadio.__init__(self, None)
@@ -92,7 +90,7 @@
if self._filename and os.path.exists(self._filename):
self.load()
else:
- self._blank()
+ self._blank(True)
def get_features(self):
rf = chirp_common.RadioFeatures()
diff --git a/chirp/ui/editorset.py b/chirp/ui/editorset.py
--- a/chirp/ui/editorset.py
+++ b/chirp/ui/editorset.py
@@ -386,19 +386,6 @@
"export: {error}").format(error=e),
self)
- def prime(self):
- # NOTE: this is only called to prime new CSV files, so assume
- # only one memory editor for now
- mem = chirp_common.Memory()
- mem.freq = 146010000
-
- def cb(*args):
- gobject.idle_add(self.editors["memedit0"].prefill)
-
- job = common.RadioJob(cb, "set_memory", mem)
- job.set_desc(_("Priming memory"))
- self.rthread.submit(job)
-
def tab_selected(self, notebook, foo, pagenum):
widget = notebook.get_nth_page(pagenum)
for k, v in self.editors.items():
diff --git a/chirp/ui/mainapp.py b/chirp/ui/mainapp.py
--- a/chirp/ui/mainapp.py
+++ b/chirp/ui/mainapp.py
@@ -271,7 +271,6 @@
def do_new(self):
eset = editorset.EditorSet(_("Untitled") + ".csv", self)
self._connect_editorset(eset)
- eset.prime()
eset.show()
tab = self.tabs.append_page(eset, eset.get_tab_label())
diff --git a/chirp/ui/memedit.py b/chirp/ui/memedit.py
--- a/chirp/ui/memedit.py
+++ b/chirp/ui/memedit.py
@@ -1062,10 +1062,7 @@
if not mem.empty or self.show_empty:
gobject.idle_add(self.set_memory, mem)
else:
- mem = chirp_common.Memory()
- mem.number = number
- mem.name = "ERROR"
- mem.empty = True
+ mem = chirp_common.Memory(number, True, "Error")
gobject.idle_add(self.set_memory, mem)
for i in range(lo, hi+1):
More information about the chirp_devel
mailing list