[chirp_devel] [PATCH 16/22] Fix style issues in mainapp.py (#2355)

Zach Welch
Sat Feb 28 22:54:53 PST 2015


# HG changeset patch
# User Zach Welch <zach at mandolincreekfarm.com>
# Fake Node ID a477f261fed353484090d996ef4ec98c746f398d

Fix style issues in mainapp.py (#2355)


diff --git a/chirpui/mainapp.py b/chirpui/mainapp.py
index e22196a..baff031 100644
--- a/chirpui/mainapp.py
+++ b/chirpui/mainapp.py
@@ -22,9 +22,17 @@ from glob import glob
 import shutil
 import time
 import logging
-
 import gtk
 import gobject
+
+from chirpui import inputdialog, common
+from chirp import platform, generic_xml, generic_csv, directory, util
+from chirp import ic9x, kenwood_live, idrp, vx7, vx5, vx6
+from chirp import CHIRP_VERSION, chirp_common, detect, errors
+from chirp import icf, ic9x_icf
+from chirpui import editorset, clone, miscwidgets, config, reporting, fips
+from chirpui import bandplans
+
 gobject.threads_init()
 
 LOG = logging.getLogger(__name__)
@@ -33,34 +41,29 @@ if __name__ == "__main__":
     import sys
     sys.path.insert(0, "..")
 
-from chirpui import inputdialog, common
 try:
     import serial
-except ImportError,e:
+except ImportError, e:
     common.log_exception()
     common.show_error("\nThe Pyserial module is not installed!")
-from chirp import platform, generic_xml, generic_csv, directory, util
-from chirp import ic9x, kenwood_live, idrp, vx7, vx5, vx6
-from chirp import CHIRP_VERSION, chirp_common, detect, errors
-from chirp import icf, ic9x_icf
-from chirpui import editorset, clone, miscwidgets, config, reporting, fips
-from chirpui import bandplans
+
 
 CONF = config.get()
 
 KEEP_RECENT = 8
 
 RB_BANDS = {
-    "--All--"                 : 0,
-    "10 meters (29MHz)"       : 29,
-    "6 meters (54MHz)"        : 5,
-    "2 meters (144MHz)"       : 14,
-    "1.25 meters (220MHz)"    : 22,
-    "70 centimeters (440MHz)" : 4,
-    "33 centimeters (900MHz)" : 9,
-    "23 centimeters (1.2GHz)" : 12,
+    "--All--":                  0,
+    "10 meters (29MHz)":        29,
+    "6 meters (54MHz)":         5,
+    "2 meters (144MHz)":        14,
+    "1.25 meters (220MHz)":     22,
+    "70 centimeters (440MHz)":  4,
+    "33 centimeters (900MHz)":  9,
+    "23 centimeters (1.2GHz)":  12,
 }
 
+
 def key_bands(band):
     if band.startswith("-"):
         return -1
@@ -70,9 +73,11 @@ def key_bands(band):
 
     return 100000 - (float(amount) * scale)
 
+
 class ModifiedError(Exception):
     pass
 
+
 class ChirpMain(gtk.Window):
     def get_current_editorset(self):
         page = self.tabs.get_current_page()
@@ -112,7 +117,7 @@ class ChirpMain(gtk.Window):
 
         for i in ["cancelq"]:
             set_action_sensitive(i, eset is not None and not save_sens)
-        
+
         for i in ["export", "close", "columns", "irbook", "irfinder",
                   "move_up", "move_dn", "exchange", "iradioreference",
                   "cut", "copy", "paste", "delete", "viewdeveloper",
@@ -129,7 +134,7 @@ class ChirpMain(gtk.Window):
 
     def ev_editor_selected(self, editorset, editortype):
         mappings = {
-            "memedit" : ["view", "edit"],
+            "memedit": ["view", "edit"],
             }
 
         for _editortype, actions in mappings.items():
@@ -159,8 +164,9 @@ class ChirpMain(gtk.Window):
 
         label = gtk.Label("")
         label.set_markup("<b>-1</b> for either Mem # does a full-file hex " +
-                "dump with diffs highlighted.\n" +
-                "<b>-2</b> for first Mem # shows <b>only</b> the diffs.")
+                         "dump with diffs highlighted.\n" +
+                         "<b>-2</b> for first Mem # shows " +
+                         "<b>only</b> the diffs.")
         d.vbox.pack_start(label, True, True, 0)
         label.show()
 
@@ -206,9 +212,9 @@ class ChirpMain(gtk.Window):
 
         print "Selected %s@%i and %s@%i" % (sel_a, sel_chan_a,
                                             sel_b, sel_chan_b)
-        name_a = os.path.basename (sel_a)
+        name_a = os.path.basename(sel_a)
         name_a = name_a[:name_a.rindex(")")]
-        name_b = os.path.basename (sel_b)
+        name_b = os.path.basename(sel_b)
         name_b = name_b[:name_b.rindex(")")]
         diffwintitle = "%s@%i  diff  %s@%i" % (
             name_a, sel_chan_a, name_b, sel_chan_b)
@@ -223,14 +229,16 @@ class ChirpMain(gtk.Window):
 
         def _get_mem_b(mem_a):
             # Step 2: Get memory b
-            job = common.RadioJob(_show_diff, "get_raw_memory", int(sel_chan_b))
+            job = common.RadioJob(_show_diff, "get_raw_memory",
+                                  int(sel_chan_b))
             job.set_cb_args(mem_a)
             eset_b.rthread.submit(job)
-            
+
         if sel_chan_a >= 0 and sel_chan_b >= 0:
             # Diff numbered memory
             # Step 1: Get memory a
-            job = common.RadioJob(_get_mem_b, "get_raw_memory", int(sel_chan_a))
+            job = common.RadioJob(_get_mem_b, "get_raw_memory",
+                                  int(sel_chan_a))
             eset_a.rthread.submit(job)
         elif isinstance(eset_a.rthread.radio, chirp_common.CloneModeRadio) and\
                 isinstance(eset_b.rthread.radio, chirp_common.CloneModeRadio):
@@ -249,7 +257,7 @@ class ChirpMain(gtk.Window):
             else:
                 diffsonly = False
             common.show_diff_blob(diffwintitle,
-                    common.simple_diff(a, b, diffsonly))
+                                  common.simple_diff(a, b, diffsonly))
         else:
             common.show_error("Cannot diff whole live-mode radios!")
 
@@ -271,7 +279,11 @@ class ChirpMain(gtk.Window):
 
         lab = gtk.Label("""<b><big>Unable to detect model!</big></b>
 
-If you think that it is valid, you can select a radio model below to force an open attempt. If selecting the model manually works, please file a bug on the website and attach your image. If selecting the model does not work, it is likely that you are trying to open some other type of file.
+If you think that it is valid, you can select a radio model below to
+force an open attempt. If selecting the model manually works, please
+file a bug on the website and attach your image. If selecting the model
+does not work, it is likely that you are trying to open some other type
+of file.
 """)
 
         lab.set_justify(gtk.JUSTIFY_FILL)
@@ -288,7 +300,7 @@ If you think that it is valid, you can select a radio model below to force an op
         d.vbox.set_spacing(5)
         choice.show()
         d.set_default_size(400, 200)
-        #d.set_resizable(False)
+        # d.set_resizable(False)
         r = d.run()
         d.destroy()
         if r != gtk.RESPONSE_OK:
@@ -318,7 +330,7 @@ If you think that it is valid, you can select a radio model below to force an op
         self.record_recent_file(fname)
 
         if icf.is_icf_file(fname):
-            a = common.ask_yesno_question(\
+            a = common.ask_yesno_question(
                 _("ICF files cannot be edited, only displayed or imported "
                   "into another file. Open in read-only mode?"),
                 self)
@@ -378,8 +390,8 @@ If you think that it is valid, you can select a radio model below to force an op
                 "to the radio. Because of this, you cannot perform the "
                 "<u>Save</u> or <u>Upload</u> operations. If you wish to "
                 "edit the contents offline, please <u>Export</u> to a CSV "
-                "file, using the <b>File menu</b>.").format(vendor=radio.VENDOR,
-                                                            model=radio.MODEL)
+                "file, using the <b>File menu</b>.")
+        msg = msg.format(vendor=radio.VENDOR, model=radio.MODEL)
         d.format_secondary_markup(msg)
 
         again = gtk.CheckButton(_("Don't show this again"))
@@ -416,10 +428,10 @@ If you think that it is valid, you can select a radio model below to force an op
     def do_saveas(self):
         eset = self.get_current_editorset()
 
-        label = _("{vendor} {model} image file").format(\
+        label = _("{vendor} {model} image file").format(
             vendor=eset.radio.VENDOR,
             model=eset.radio.MODEL)
-                                                     
+
         types = [(label + " (*.%s)" % eset.radio.FILE_EXTENSION,
                  eset.radio.FILE_EXTENSION)]
 
@@ -447,7 +459,7 @@ If you think that it is valid, you can select a radio model below to force an op
 
         try:
             eset.save(fname)
-        except Exception,e:
+        except Exception, e:
             d = inputdialog.ExceptionDialog(e)
             d.run()
             d.destroy()
@@ -462,7 +474,7 @@ If you think that it is valid, you can select a radio model below to force an op
             d.run()
             d.destroy()
 
-    def cb_cloneout(self, radio, emsg= None):
+    def cb_cloneout(self, radio, emsg=None):
         radio.pipe.close()
         reporting.report_model_usage(radio, "upload", True)
         if emsg:
@@ -477,7 +489,7 @@ If you think that it is valid, you can select a radio model below to force an op
             if fn:
                 recent.append(fn)
         return recent
-                    
+
     def _set_recent_list(self, recent):
         for fn in recent:
             CONF.set("recent%i" % recent.index(fn), fn, "state")
@@ -493,13 +505,12 @@ If you think that it is valid, you can select a radio model below to force an op
                 self.menu_ag.remove_action(old_action)
 
             file_basename = os.path.basename(fname).replace("_", "__")
-            action = gtk.Action(action_name,
-                                "_%i. %s" % (i+1, file_basename),
-                                _("Open recent file {name}").format(name=fname),
-                                "")
-            action.connect("activate", lambda a,f: self.do_open(f), fname)
+            action = gtk.Action(
+                action_name, "_%i. %s" % (i+1, file_basename),
+                _("Open recent file {name}").format(name=fname), "")
+            action.connect("activate", lambda a, f: self.do_open(f), fname)
             mid = self.menu_uim.new_merge_id()
-            self.menu_uim.add_ui(mid, path, 
+            self.menu_uim.add_ui(mid, path,
                                  action_name, action_name,
                                  gtk.UI_MANAGER_MENUITEM, False)
             self.menu_ag.add_action(action)
@@ -575,13 +586,12 @@ If you think that it is valid, you can select a radio model below to force an op
                                 _("Open stock "
                                   "configuration {name}").format(name=name),
                                 "")
-            action.connect("activate", lambda a,c: self.do_open(c), config)
+            action.connect("activate", lambda a, c: self.do_open(c), config)
             mid = self.menu_uim.new_merge_id()
             mid = self.menu_uim.add_ui(mid, path,
                                        action_name, action_name,
                                        gtk.UI_MANAGER_MENUITEM, False)
             self.menu_ag.add_action(action)
-            
 
         configs = glob(os.path.join(stock_dir, "*.csv"))
         for config in configs:
@@ -619,7 +629,8 @@ If you think that it is valid, you can select a radio model below to force an op
         msg = _("{instructions}").format(instructions=message)
         d.format_secondary_markup(msg)
 
-        again = gtk.CheckButton(_("Don't show instructions for any radio again"))
+        again = gtk.CheckButton(
+            _("Don't show instructions for any radio again"))
         again.show()
         d.vbox.pack_start(again, 0, 0, 0)
         h_button_box = d.vbox.get_children()[2]
@@ -669,7 +680,8 @@ If you think that it is valid, you can select a radio model below to force an op
 
         fn = tempfile.mktemp()
         if isinstance(radio, chirp_common.CloneModeRadio):
-            ct = clone.CloneThread(radio, "in", cb=self.cb_clonein, parent=self)
+            ct = clone.CloneThread(radio, "in", cb=self.cb_clonein,
+                                   parent=self)
             ct.start()
         else:
             self.do_open_live(radio)
@@ -688,7 +700,7 @@ If you think that it is valid, you can select a radio model below to force an op
             return
         prompts = radio.get_prompts()
 
-        if prompts.display_pre_upload_prompt_before_opening_port == True:
+        if prompts.display_pre_upload_prompt_before_opening_port is True:
             print "Opening port after pre_upload prompt."
             self._show_instructions(radio, prompts.pre_upload)
 
@@ -709,7 +721,7 @@ If you think that it is valid, you can select a radio model below to force an op
             d.destroy()
             return
 
-        if prompts.display_pre_upload_prompt_before_opening_port == False:
+        if prompts.display_pre_upload_prompt_before_opening_port is False:
             print "Opening port before pre_upload prompt."
             self._show_instructions(radio, prompts.pre_upload)
 
@@ -728,11 +740,11 @@ If you think that it is valid, you can select a radio model below to force an op
             return False
 
         if eset.is_modified():
-            dlg = miscwidgets.YesNoDialog(title=_("Save Changes?"),
-                                          parent=self,
-                                          buttons=(gtk.STOCK_YES, gtk.RESPONSE_YES,
-                                                   gtk.STOCK_NO, gtk.RESPONSE_NO,
-                                                   gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
+            dlg = miscwidgets.YesNoDialog(
+                title=_("Save Changes?"), parent=self,
+                buttons=(gtk.STOCK_YES, gtk.RESPONSE_YES,
+                         gtk.STOCK_NO, gtk.RESPONSE_NO,
+                         gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL))
             dlg.set_text(_("File is modified, save changes before closing?"))
             res = dlg.run()
             dlg.destroy()
@@ -744,7 +756,7 @@ If you think that it is valid, you can select a radio model below to force an op
 
         eset.rthread.stop()
         eset.rthread.join()
-    
+
         eset.prepare_close()
 
         if eset.radio.pipe:
@@ -785,11 +797,11 @@ If you think that it is valid, you can select a radio model below to force an op
     def do_repeaterbook_prompt(self):
         if not CONF.get_bool("has_seen_credit", "repeaterbook"):
             d = gtk.MessageDialog(parent=self, buttons=gtk.BUTTONS_OK)
-            d.set_markup("<big><big><b>RepeaterBook</b></big>\r\n" + \
-                             "<i>North American Repeater Directory</i></big>")
-            d.format_secondary_markup("For more information about this " +\
-                                          "free service, please go to\r\n" +\
-                                          "http://www.repeaterbook.com")
+            d.set_markup("<big><big><b>RepeaterBook</b></big>\r\n" +
+                         "<i>North American Repeater Directory</i></big>")
+            d.format_secondary_markup("For more information about this " +
+                                      "free service, please go to\r\n" +
+                                      "http://www.repeaterbook.com")
             d.run()
             d.destroy()
             CONF.set_bool("has_seen_credit", True, "repeaterbook")
@@ -802,19 +814,20 @@ If you think that it is valid, you can select a radio model below to force an op
                 code = int(CONF.get("state", "repeaterbook"))
             except:
                 code = CONF.get("state", "repeaterbook")
-            for k,v in fips.FIPS_STATES.items():
+            for k, v in fips.FIPS_STATES.items():
                 if code == v:
                     default_state = k
                     break
 
             code = CONF.get("county", "repeaterbook")
-            for k,v in fips.FIPS_COUNTIES[fips.FIPS_STATES[default_state]].items():
+            items = fips.FIPS_COUNTIES[fips.FIPS_STATES[default_state]].items()
+            for k, v in items:
                 if code == v:
                     default_county = k
                     break
 
             code = int(CONF.get("band", "repeaterbook"))
-            for k,v in RB_BANDS.items():
+            for k, v in RB_BANDS.items():
                 if code == v:
                     default_band = k
                     break
@@ -823,18 +836,21 @@ If you think that it is valid, you can select a radio model below to force an op
 
         state = miscwidgets.make_choice(sorted(fips.FIPS_STATES.keys()),
                                         False, default_state)
-        county = miscwidgets.make_choice(sorted(fips.FIPS_COUNTIES[fips.FIPS_STATES[default_state]].keys()),
-                                        False, default_county)
+        county = miscwidgets.make_choice(
+            sorted(fips.FIPS_COUNTIES[fips.FIPS_STATES[default_state]].keys()),
+            False, default_county)
         band = miscwidgets.make_choice(sorted(RB_BANDS.keys(), key=key_bands),
                                        False, default_band)
+
         def _changed(box, county):
             state = fips.FIPS_STATES[box.get_active_text()]
             county.get_model().clear()
             for fips_county in sorted(fips.FIPS_COUNTIES[state].keys()):
                 county.append_text(fips_county)
             county.set_active(0)
+
         state.connect("changed", _changed, county)
-        
+
         d = inputdialog.FieldDialog(title=_("RepeaterBook Query"), parent=self)
         d.add_field("State", state)
         d.add_field("County", county)
@@ -866,22 +882,24 @@ If you think that it is valid, you can select a radio model below to force an op
             try:
                 code = CONF.get("state", "repeaterbook")
             except:
-                code = '41' # Oregon default
+                code = '41'  # Oregon default
 
         try:
             county = CONF.get("county", "repeaterbook")
         except:
-            county = '%' # --All-- default
+            county = '%'  # --All-- default
 
         try:
             band = int(CONF.get("band", "repeaterbook"))
         except:
-            band = 14 # 2m default
+            band = 14  # 2m default
 
-        query = "http://www.repeaterbook.com/repeaters/downloads/chirp.php?" + \
-            "func=default&state_id=%s&band=%s&freq=%%&band6=%%&loc=%%" + \
+        query = "http://www.repeaterbook.com/repeaters/downloads/chirp.php" + \
+            "?func=default&state_id=%s&band=%s&freq=%%&band6=%%&loc=%%" + \
             "&county_id=%s&status_id=%%&features=%%&coverage=%%&use=%%"
-        query = query % (code, band and band or "%%", county and county or "%%")
+        query = query % (code,
+                         band and band or "%%",
+                         county and county or "%%")
 
         # Do this in case the import process is going to take a while
         # to make sure we process events leading up to this
@@ -1009,16 +1027,12 @@ If you think that it is valid, you can select a radio model below to force an op
             self.do_open_live(radio, read_only=True)
 
     def do_rfinder_prompt(self):
-        fields = {"1Email"    :      (gtk.Entry(),
-                                      lambda x: "@" in x),
-                  "2Password" :      (gtk.Entry(),
-                                      lambda x: x),
-                  "3Latitude" :      (gtk.Entry(),
-                                      lambda x: float(x) < 90 and \
-                                          float(x) > -90),
-                  "4Longitude":      (gtk.Entry(),
-                                      lambda x: float(x) < 180 and \
-                                          float(x) > -180),
+        fields = {"1Email": (gtk.Entry(), lambda x: "@" in x),
+                  "2Password": (gtk.Entry(), lambda x: x),
+                  "3Latitude": (gtk.Entry(),
+                                lambda x: float(x) < 90 and float(x) > -90),
+                  "4Longitude": (gtk.Entry(),
+                                 lambda x: float(x) < 180 and float(x) > -180),
                   "5Range_in_Miles": (gtk.Entry(),
                                       lambda x: int(x) > 0 and int(x) < 5000),
                   }
@@ -1070,7 +1084,9 @@ If you think that it is valid, you can select a radio model below to force an op
 
         if do_import:
             eset = self.get_current_editorset()
-            count = eset.do_import("rfinder://%s/%s/%f/%f/%i" % (email, passwd, lat, lon, miles))
+            rfstr = "rfinder://%s/%s/%f/%f/%i" % \
+                    (email, passwd, lat, lon, miles)
+            count = eset.do_import(rfstr)
         else:
             from chirp import rfinder
             radio = rfinder.RFinderRadio(None)
@@ -1080,9 +1096,9 @@ If you think that it is valid, you can select a radio model below to force an op
         self.window.set_cursor(None)
 
     def do_radioreference_prompt(self):
-        fields = {"1Username"    : (gtk.Entry(), lambda x: x),
-                  "2Password"    : (gtk.Entry(), lambda x: x),
-                  "3Zipcode"     : (gtk.Entry(), lambda x: x),
+        fields = {"1Username":  (gtk.Entry(), lambda x: x),
+                  "2Password":  (gtk.Entry(), lambda x: x),
+                  "3Zipcode":   (gtk.Entry(), lambda x: x),
                   }
 
         d = inputdialog.FieldDialog(title=_("RadioReference.com Query"),
@@ -1131,7 +1147,8 @@ If you think that it is valid, you can select a radio model below to force an op
 
         if do_import:
             eset = self.get_current_editorset()
-            count = eset.do_import("radioreference://%s/%s/%s" % (zipcode, username, passwd))
+            rrstr = "radioreference://%s/%s/%s" % (zipcode, username, passwd)
+            count = eset.do_import(rrstr)
         else:
             try:
                 from chirp import radioreference
@@ -1178,7 +1195,7 @@ If you think that it is valid, you can select a radio model below to force an op
         d = gtk.AboutDialog()
         d.set_transient_for(self)
         import sys
-        verinfo = "GTK %s\nPyGTK %s\nPython %s\n" % ( \
+        verinfo = "GTK %s\nPyGTK %s\nPython %s\n" % (
             ".".join([str(x) for x in gtk.gtk_version]),
             ".".join([str(x) for x in gtk.pygtk_version]),
             sys.version.split()[0])
@@ -1210,7 +1227,7 @@ If you think that it is valid, you can select a radio model below to force an op
                                  os.linesep +
                                  "Portuguese (BR): Crezivando PP7CJ")
         d.set_comments(verinfo)
-        
+
         d.run()
         d.destroy()
 
@@ -1238,12 +1255,13 @@ If you think that it is valid, you can select a radio model below to force an op
         d.set_size_request(-1, 300)
         d.set_resizable(False)
 
-        label = gtk.Label(_("Visible columns for {radio}").format(radio=radio_name))
+        labelstr = _("Visible columns for {radio}").format(radio=radio_name)
+        label = gtk.Label(labelstr)
         label.show()
         vbox.pack_start(label)
 
         fields = []
-        memedit = eset.get_current_editor() #.editors["memedit"]
+        memedit = eset.get_current_editor()  # .editors["memedit"]
         unsupported = memedit.get_unsupported_columns()
         for colspec in memedit.cols:
             if colspec[0].startswith("_"):
@@ -1266,7 +1284,7 @@ If you think that it is valid, you can select a radio model below to force an op
                 memedit.set_column_visible(colnum, widget.get_active())
                 if widget.get_active():
                     selected_columns.append(widget.get_label())
-                                                
+
         d.destroy()
 
         CONF.set(driver, ",".join(selected_columns), "memedit_columns")
@@ -1299,18 +1317,18 @@ If you think that it is valid, you can select a radio model below to force an op
 
     def do_toggle_report(self, action):
         if not action.get_active():
-            d = gtk.MessageDialog(buttons=gtk.BUTTONS_YES_NO,
-                                  parent=self)
-            d.set_markup("<b><big>" + _("Reporting is disabled") + "</big></b>")
+            d = gtk.MessageDialog(buttons=gtk.BUTTONS_YES_NO, parent=self)
+            markup = "<b><big>" + _("Reporting is disabled") + "</big></b>"
+            d.set_markup(markup)
             msg = _("The reporting feature of CHIRP is designed to help "
                     "<u>improve quality</u> by allowing the authors to focus "
                     "on the radio drivers used most often and errors "
                     "experienced by the users. The reports contain no "
-                    "identifying information and are used only for statistical "
-                    "purposes by the authors. Your privacy is extremely "
-                    "important, but <u>please consider leaving this feature "
-                    "enabled to help make CHIRP better!</u>\n\n<b>Are you "
-                    "sure you want to disable this feature?</b>")
+                    "identifying information and are used only for "
+                    "statistical purposes by the authors. Your privacy is "
+                    "extremely important, but <u>please consider leaving "
+                    "this feature enabled to help make CHIRP better!</u>\n\n"
+                    "<b>Are you sure you want to disable this feature?</b>")
             d.format_secondary_markup(msg.replace("\n", "\r\n"))
             r = d.run()
             d.destroy()
@@ -1513,7 +1531,7 @@ If you think that it is valid, you can select a radio model below to force an op
   </menubar>
 </ui>
 """
-        actions = [\
+        actions = [
             ('file', None, _("_File"), None, None, self.mh),
             ('new', gtk.STOCK_NEW, None, None, None, self.mh),
             ('open', gtk.STOCK_OPEN, None, None, None, self.mh),
@@ -1530,36 +1548,49 @@ If you think that it is valid, you can select a radio model below to force an op
             ('paste', None, _("_Paste"), "<Ctrl>v", None, self.mh),
             ('delete', None, _("_Delete"), "Delete", None, self.mh),
             ('all', None, _("Select _All"), None, None, self.mh),
-            ('move_up', None, _("Move _Up"), "<Control>Up", None, self.mh),
-            ('move_dn', None, _("Move Dow_n"), "<Control>Down", None, self.mh),
-            ('exchange', None, _("E_xchange"), "<Control><Shift>x", None, self.mh),
+            ('move_up', None, _("Move _Up"),
+             "<Control>Up", None, self.mh),
+            ('move_dn', None, _("Move Dow_n"),
+             "<Control>Down", None, self.mh),
+            ('exchange', None, _("E_xchange"),
+             "<Control><Shift>x", None, self.mh),
             ('properties', None, _("P_roperties"), None, None, self.mh),
             ('view', None, _("_View"), None, None, self.mh),
             ('columns', None, _("Columns"), None, None, self.mh),
             ('viewdeveloper', None, _("Developer"), None, None, self.mh),
-            ('devshowraw', None, _('Show raw memory'), "<Control><Shift>r", None, self.mh),
-            ('devdiffraw', None, _("Diff raw memories"), "<Control><Shift>d", None, self.mh),
-            ('devdifftab', None, _("Diff tabs"), "<Control><Shift>t", None, self.mh),
+            ('devshowraw', None, _('Show raw memory'),
+             "<Control><Shift>r", None, self.mh),
+            ('devdiffraw', None, _("Diff raw memories"),
+             "<Control><Shift>d", None, self.mh),
+            ('devdifftab', None, _("Diff tabs"),
+             "<Control><Shift>t", None, self.mh),
             ('language', None, _("Change language"), None, None, self.mh),
             ('radio', None, _("_Radio"), None, None, self.mh),
-            ('download', None, _("Download From Radio"), "<Alt>d", None, self.mh),
+            ('download', None, _("Download From Radio"),
+             "<Alt>d", None, self.mh),
             ('upload', None, _("Upload To Radio"), "<Alt>u", None, self.mh),
             ('import', None, _("Import"), "<Alt>i", None, self.mh),
             ('export', None, _("Export"), "<Alt>x", None, self.mh),
-            ('importsrc', None, _("Import from data source"), None, None, self.mh),
-            ('iradioreference', None, _("RadioReference.com"), None, None, self.mh),
+            ('importsrc', None, _("Import from data source"),
+             None, None, self.mh),
+            ('iradioreference', None, _("RadioReference.com"),
+             None, None, self.mh),
             ('irfinder', None, _("RFinder"), None, None, self.mh),
             ('irbook', None, _("RepeaterBook"), None, None, self.mh),
             ('ipr', None, _("przemienniki.net"), None, None, self.mh),
             ('querysrc', None, _("Query data source"), None, None, self.mh),
-            ('qradioreference', None, _("RadioReference.com"), None, None, self.mh),
+            ('qradioreference', None, _("RadioReference.com"),
+             None, None, self.mh),
             ('qrfinder', None, _("RFinder"), None, None, self.mh),
             ('qpr', None, _("przemienniki.net"), None, None, self.mh),
             ('qrbook', None, _("RepeaterBook"), None, None, self.mh),
-            ('export_chirp', None, _("CHIRP Native File"), None, None, self.mh),
+            ('export_chirp', None, _("CHIRP Native File"),
+             None, None, self.mh),
             ('export_csv', None, _("CSV File"), None, None, self.mh),
-            ('stock', None, _("Import from stock config"), None, None, self.mh),
-            ('channel_defaults', None, _("Channel defaults"), None, None, self.mh),
+            ('stock', None, _("Import from stock config"),
+             None, None, self.mh),
+            ('channel_defaults', None, _("Channel defaults"),
+             None, None, self.mh),
             ('cancelq', gtk.STOCK_STOP, None, "Escape", None, self.mh),
             ('help', None, _('Help'), None, None, self.mh),
             ('about', gtk.STOCK_ABOUT, None, None, None, self.mh),
@@ -1567,17 +1598,20 @@ If you think that it is valid, you can select a radio model below to force an op
             ]
 
         conf = config.get()
-        re = not conf.get_bool("no_report");
+        re = not conf.get_bool("no_report")
         hu = conf.get_bool("hide_unused", "memedit", default=True)
         dv = conf.get_bool("developer", "state")
         st = not conf.get_bool("no_smart_tmode", "memedit")
 
-        toggles = [\
-            ('report', None, _("Report statistics"), None, None, self.mh, re),
-            ('hide_unused', None, _("Hide Unused Fields"), None, None, self.mh, hu),
-            ('no_smart_tmode', None, _("Smart Tone Modes"), None, None, self.mh, st),
-            ('developer', None, _("Enable Developer Functions"), None, None, self.mh, dv),
-            ]
+        toggles = [('report', None, _("Report statistics"),
+                    None, None, self.mh, re),
+                   ('hide_unused', None, _("Hide Unused Fields"),
+                    None, None, self.mh, hu),
+                   ('no_smart_tmode', None, _("Smart Tone Modes"),
+                    None, None, self.mh, st),
+                   ('developer', None, _("Enable Developer Functions"),
+                    None, None, self.mh, dv),
+                   ]
 
         self.menu_uim = gtk.UIManager()
         self.menu_ag = gtk.ActionGroup("MenuBar")
@@ -1599,7 +1633,7 @@ If you think that it is valid, you can select a radio model below to force an op
     def make_tabs(self):
         self.tabs = gtk.Notebook()
 
-        return self.tabs        
+        return self.tabs
 
     def close_out(self):
         num = self.tabs.get_n_pages()
@@ -1621,28 +1655,29 @@ If you think that it is valid, you can select a radio model below to force an op
         self.sb_general = gtk.Statusbar()
         self.sb_general.set_has_resize_grip(False)
         self.sb_general.show()
-        box.pack_start(self.sb_general, 1,1,1)
-        
+        box.pack_start(self.sb_general, 1, 1, 1)
+
         self.sb_radio = gtk.Statusbar()
         self.sb_radio.set_has_resize_grip(True)
         self.sb_radio.show()
-        box.pack_start(self.sb_radio, 1,1,1)
+        box.pack_start(self.sb_radio, 1, 1, 1)
 
         box.show()
         return box
 
     def ev_delete(self, window, event):
         if not self.close_out():
-            return True # Don't exit
+            return True  # Don't exit
 
     def ev_destroy(self, window):
         if not self.close_out():
-            return True # Don't exit
+            return True  # Don't exit
 
     def setup_extra_hotkeys(self):
         accelg = self.menu_uim.get_accel_group()
 
-        memedit = lambda a: self.get_current_editorset().editors["memedit"].hotkey(a)
+        def memedit(a):
+            self.get_current_editorset().editors["memedit"].hotkey(a)
 
         actions = [
             # ("action_name", "key", function)
@@ -1654,7 +1689,7 @@ If you think that it is valid, you can select a radio model below to force an op
             self.menu_ag.add_action_with_accel(a, key)
             a.set_accel_group(accelg)
             a.connect_accelerator()
-        
+
     def _set_icon(self):
         execpath = platform.get_platform().executable_path()
         path = os.path.abspath(os.path.join(execpath, "share", "chirp.png"))
@@ -1679,7 +1714,7 @@ If you think that it is valid, you can select a radio model below to force an op
         intv = 3600 * 24 * 7
 
         if CONF.is_defined("last_update_check", "state") and \
-             (time.time() - CONF.get_int("last_update_check", "state")) < intv:
+           (time.time() - CONF.get_int("last_update_check", "state")) < intv:
             return
 
         CONF.set_int("last_update_check", int(time.time()), "state")
@@ -1700,7 +1735,7 @@ If you think that it is valid, you can select a radio model below to force an op
         except ImportError, e:
             print "No MacOS support: %s" % e
             return
-        
+
         menu_bar.hide()
         macapp.set_menu_bar(menu_bar)
 
@@ -1712,7 +1747,7 @@ If you think that it is valid, you can select a radio model below to force an op
 
         documentationitem = self.menu_uim.get_widget("/MenuBar/help/gethelp")
         macapp.insert_app_menu_item(documentationitem, 0)
-        
+
         macapp.set_use_quartz_accelerators(False)
         macapp.ready()
 
@@ -1746,7 +1781,7 @@ If you think that it is valid, you can select a radio model below to force an op
         mbar = self.make_menubar()
 
         if os.name != "nt":
-            self._set_icon() # Windows gets the icon from the exe
+            self._set_icon()  # Windows gets the icon from the exe
             if os.uname()[0] == "Darwin":
                 self._init_macos(mbar)
 
@@ -1787,7 +1822,7 @@ If you think that it is valid, you can select a radio model below to force an op
             d.set_markup("<b><big>" +
                          _("Error reporting is enabled") +
                          "</big></b>")
-            d.format_secondary_markup(\
+            d.format_secondary_markup(
                 _("If you wish to disable this feature you may do so in "
                   "the <u>Help</u> menu"))
             d.run()
diff --git a/tools/cpep8.blacklist b/tools/cpep8.blacklist
index b0396cd..e1d57a9 100644
--- a/tools/cpep8.blacklist
+++ b/tools/cpep8.blacklist
@@ -71,7 +71,6 @@
 ./chirp/wouxun_common.py
 ./chirp/yaesu_clone.py
 ./chirpui/fips.py
-./chirpui/mainapp.py
 ./chirpui/memdetail.py
 ./chirpui/memedit.py
 ./chirpui/miscwidgets.py




More information about the chirp_devel mailing list