
Resending patch for consideration.
On Sat, Apr 17, 2021 at 12:11 AM Kosta A. ve7kcy@gmail.com wrote:
# HG changeset patch # User Kosta A. ve7kcy@gmail.com # Date 1618643404 25200 # Sat Apr 17 00:10:04 2021 -0700 # Node ID cd3e2444040876b4a19b41c6cfecedb79ff4a8fe # Parent 42c5ae551170c33b04f997e3a07a9e1857bdb504 [csv] Optimize generic csv files load times. 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 @@ -47,7 +47,7 @@
@directory.register -class CSVRadio(chirp_common.FileBackedRadio, chirp_common.IcomDstarSupport): +class CSVRadio(chirp_common.FileBackedRadio): """A driver for Generic CSV files""" VENDOR = "Generic" MODEL = "CSV" @@ -67,20 +67,15 @@ "Mode": (str, "mode"), "TStep": (float, "tuning_step"), "Skip": (str, "skip"),
"URCALL": (str, "dv_urcall"),
"RPT1CALL": (str, "dv_rpt1call"),
"RPT2CALL": (str, "dv_rpt2call"), "Comment": (str, "comment"), }
def _blank(self):
- def _blank(self, defaults=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 (defaults):
self.memories[0].empty = False
self.memories[0].freq = 146010000
def __init__(self, pipe): chirp_common.FileBackedRadio.__init__(self, None)
@@ -92,14 +87,14 @@ 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() rf.has_bank = False rf.requires_call_lists = False rf.has_implicit_calls = False
rf.memory_bounds = (0, len(self.memories))
rf.memory_bounds = (0, len(self.memories)-1) rf.has_infinite_number = True rf.has_nostep_tuning = True rf.has_comment = True
diff --git a/chirp/drivers/ic2200.py b/chirp/drivers/ic2200.py --- a/chirp/drivers/ic2200.py +++ b/chirp/drivers/ic2200.py @@ -217,7 +217,6 @@ return mem
def get_memories(self, lo=0, hi=199):
return [m for m in self._memories if m.number >= lo and m.number
<= hi]
def set_memory(self, mem):
diff --git a/chirp/ui/bandplans.py b/chirp/ui/bandplans.py --- a/chirp/ui/bandplans.py +++ b/chirp/ui/bandplans.py @@ -47,7 +47,7 @@ # Check for duplicates. duplicates = [x for x in plan.BANDS if x == band] if len(duplicates) > 1:
LOG.warn("Bandplan %s has duplicates %s" %
LOG.info("Bandplan %s has duplicates %s" % (name, duplicates)) # Add repeater inputs. rpt_input = band.inverse()
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):