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

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


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

Fix style issues in bitwise.py (#2355)


diff --git a/chirp/bitwise.py b/chirp/bitwise.py
index 6eeee26..544ac4f 100644
--- a/chirp/bitwise.py
+++ b/chirp/bitwise.py
@@ -36,13 +36,13 @@
 #  lbcd foo;     /* BCD-encoded byte (LE)                   */
 #  bbcd foo;     /* BCD-encoded byte (BE)                   */
 #  char foo[8];  /* 8-char array                            */
-#  struct {                                                 
-#   u8 foo;                                                 
-#   u16 bar;                                                
+#  struct {
+#   u8 foo;
+#   u16 bar;
 #  } baz;        /* Structure with u8 and u16               */
 #
 # Example directives:
-# 
+#
 # #seekto 0x1AB; /* Set the data offset to 0x1AB            */
 # #seek 4;       /* Set the data offset += 4                */
 # #printoffset "foobar" /* Echo the live data offset,
@@ -51,7 +51,7 @@
 # Usage:
 #
 # Create a data definition in a string, and pass it and the data
-# to parse to the parse() function.  The result is a structure with 
+# to parse to the parse() function.  The result is a structure with
 # dict-like objects for structures, indexed by name, and lists of
 # objects for arrays.  The actual data elements can be interpreted
 # as integers directly (for int types).  Strings and BCD arrays
@@ -63,10 +63,12 @@ import os
 from chirp import bitwise_grammar
 from chirp.memmap import MemoryMap
 
+
 class ParseError(Exception):
     """Indicates an error parsing a definition"""
     pass
 
+
 def format_binary(nbits, value, pad=8):
     s = ""
     for i in range(0, nbits):
@@ -74,10 +76,12 @@ def format_binary(nbits, value, pad=8):
         value >>= 1
     return "%s%s" % ((pad - len(s)) * ".", s)
 
+
 def bits_between(start, end):
-    bits = (1 << (end - start )) - 1
+    bits = (1 << (end - start)) - 1
     return bits << start
 
+
 def pp(structure, level=0):
     for i in structure:
         if isinstance(i, list):
@@ -91,6 +95,7 @@ def pp(structure, level=0):
         elif isinstance(i, str):
             print "%s%s" % (" " * level, i)
 
+
 def array_copy(dst, src):
     """Copy an array src into DataElement array dst"""
     if len(dst) != len(src):
@@ -99,28 +104,34 @@ def array_copy(dst, src):
     for i in range(0, len(dst)):
         dst[i].set_value(src[i])
 
+
 def bcd_to_int(bcd_array):
-    """Convert an array of bcdDataElement like \x12\x34 into an int like 1234"""
+    """Convert an array of bcdDataElement like \x12\x34
+    into an int like 1234"""
     value = 0
     for bcd in bcd_array:
         a, b = bcd.get_value()
         value = (value * 100) + (a * 10) + b
     return value
-        
+
+
 def int_to_bcd(bcd_array, value):
     """Convert an int like 1234 into bcdDataElements like "\x12\x34" """
     for i in reversed(range(0, len(bcd_array))):
         bcd_array[i].set_value(value % 100)
         value /= 100
 
+
 def get_string(char_array):
     """Convert an array of charDataElements into a string"""
     return "".join([x.get_value() for x in char_array])
 
+
 def set_string(char_array, string):
     """Set an array of charDataElements from a string"""
     array_copy(char_array, list(string))
 
+
 class DataElement:
     _size = 1
 
@@ -139,7 +150,8 @@ class DataElement:
         raise Exception("Not implemented")
 
     def get_value(self):
-        return self._get_value(self._data[self._offset:self._offset+self._size])
+        value = self._data[self._offset:self._offset + self._size]
+        return self._get_value(value)
 
     def set_value(self, value):
         raise Exception("Not implemented for %s" % self.__class__)
@@ -159,6 +171,7 @@ class DataElement:
                                          self._size,
                                          self._offset)
 
+
 class arrayDataElement(DataElement):
     def __repr__(self):
         if isinstance(self.__items[0], bcdDataElement):
@@ -252,7 +265,7 @@ class arrayDataElement(DataElement):
             if i.get_value() == value:
                 return index
             index += 1
-        raise IndexError()            
+        raise IndexError()
 
     def __iter__(self):
         return iter(self.__items)
@@ -269,11 +282,12 @@ class arrayDataElement(DataElement):
             size += i.size()
         return size
 
+
 class intDataElement(DataElement):
     def __repr__(self):
         fmt = "0x%%0%iX" % (self._size * 2)
         return fmt % int(self)
-    
+
     def __int__(self):
         return self.get_value()
 
@@ -396,6 +410,7 @@ class intDataElement(DataElement):
     def __nonzero__(self):
         return self.get_value() != 0
 
+
 class u8DataElement(intDataElement):
     _size = 1
 
@@ -405,6 +420,7 @@ class u8DataElement(intDataElement):
     def set_value(self, value):
         self._data[self._offset] = (int(value) & 0xFF)
 
+
 class u16DataElement(intDataElement):
     _size = 2
     _endianess = ">"
@@ -416,9 +432,11 @@ class u16DataElement(intDataElement):
         self._data[self._offset] = struct.pack(self._endianess + "H",
                                                int(value) & 0xFFFF)
 
+
 class ul16DataElement(u16DataElement):
     _endianess = "<"
-    
+
+
 class u24DataElement(intDataElement):
     _size = 3
     _endianess = ">"
@@ -435,12 +453,14 @@ class u24DataElement(intDataElement):
         else:
             start = 1
             end = 4
-        self._data[self._offset] = struct.pack(self._endianess + "I",
-                                               int(value) & 0xFFFFFFFF)[start:end]
+        packed = struct.pack(self._endianess + "I", int(value) & 0xFFFFFFFF)
+        self._data[self._offset] = packed[start:end]
+
 
 class ul24DataElement(u24DataElement):
     _endianess = "<"
 
+
 class u32DataElement(intDataElement):
     _size = 4
     _endianess = ">"
@@ -452,9 +472,11 @@ class u32DataElement(intDataElement):
         self._data[self._offset] = struct.pack(self._endianess + "I",
                                                int(value) & 0xFFFFFFFF)
 
+
 class ul32DataElement(u32DataElement):
     _endianess = "<"
 
+
 class i8DataElement(u8DataElement):
     _size = 1
 
@@ -462,8 +484,9 @@ class i8DataElement(u8DataElement):
         return struct.unpack("b", data)[0]
 
     def set_value(self, value):
-        self._data[self._offset] = struct.pack("b", int(value) )
-        
+        self._data[self._offset] = struct.pack("b", int(value))
+
+
 class i16DataElement(intDataElement):
     _size = 2
     _endianess = ">"
@@ -473,11 +496,13 @@ class i16DataElement(intDataElement):
 
     def set_value(self, value):
         self._data[self._offset] = struct.pack(self._endianess + "h",
-                                               int(value) )
+                                               int(value))
+
 
 class il16DataElement(i16DataElement):
     _endianess = "<"
 
+
 class i24DataElement(intDataElement):
     _size = 3
     _endianess = ">"
@@ -495,11 +520,13 @@ class i24DataElement(intDataElement):
             start = 1
             end = 4
         self._data[self._offset] = struct.pack(self._endianess + "i",
-                                               int(value) )[start:end]
+                                               int(value))[start:end]
+
 
 class il24DataElement(i24DataElement):
     _endianess = "<"
 
+
 class i32DataElement(intDataElement):
     _size = 4
     _endianess = ">"
@@ -509,11 +536,13 @@ class i32DataElement(intDataElement):
 
     def set_value(self, value):
         self._data[self._offset] = struct.pack(self._endianess + "i",
-                                               int(value) )
+                                               int(value))
+
 
 class il32DataElement(i32DataElement):
     _endianess = "<"
 
+
 class charDataElement(DataElement):
     _size = 1
 
@@ -529,6 +558,7 @@ class charDataElement(DataElement):
     def set_value(self, value):
         self._data[self._offset] = str(value)
 
+
 class bcdDataElement(DataElement):
     def __int__(self):
         tens, ones = self.get_value()
@@ -560,16 +590,19 @@ class bcdDataElement(DataElement):
         b = ord(data) & 0x0F
         return (a, b)
 
+
 class lbcdDataElement(bcdDataElement):
     _size = 1
 
+
 class bbcdDataElement(bcdDataElement):
     _size = 1
 
+
 class bitDataElement(intDataElement):
     _nbits = 0
     _shift = 0
-    _subgen = u8DataElement # Default to a byte
+    _subgen = u8DataElement  # Default to a byte
 
     def __repr__(self):
         fmt = "0x%%0%iX (%%sb)" % (self._size * 2)
@@ -578,31 +611,23 @@ class bitDataElement(intDataElement):
     def get_value(self):
         data = self._subgen(self._data, self._offset).get_value()
         mask = bits_between(self._shift-self._nbits, self._shift)
-        val = data & mask
-
-        #print "start: %i bits: %i" % (self._shift, self._nbits)
-        #print "data:  %04x" % data
-        #print "mask:  %04x" % mask
-        #print " val:  %04x" % val
-
-        val >>= (self._shift - self._nbits)
+        val = (data & mask) >> (self._shift - self._nbits)
         return val
 
     def set_value(self, value):
         mask = bits_between(self._shift-self._nbits, self._shift)
+
         data = self._subgen(self._data, self._offset).get_value()
         data &= ~mask
 
-        #print "data: %04x" % data
-        #print "mask: %04x" % mask
-        #print "valu: %04x" % value
-
         value = ((int(value) << (self._shift-self._nbits)) & mask) | data
+
         self._subgen(self._data, self._offset).set_value(value)
-        
+
     def size(self):
         return self._nbits
 
+
 class structDataElement(DataElement):
     def __repr__(self):
         s = "struct {" + os.linesep
@@ -660,7 +685,7 @@ class structDataElement(DataElement):
             raise AttributeError("No attribute %s in struct" % name)
 
     def __setattr__(self, name, value):
-        if not self.__dict__.has_key("_structDataElement__init"):
+        if "_structDataElement__init" not in self.__dict__:
             self.__dict__[name] = value
         else:
             self.__dict__["_generators"][name].set_value(value)
@@ -675,7 +700,6 @@ class structDataElement(DataElement):
             for el in gen:
                 i += 1
                 size += el.size()
-                #print "Size of %s[%i] = %i" % (name, i, el.size())
         return size
 
     def get_raw(self):
@@ -695,25 +719,26 @@ class structDataElement(DataElement):
         for key in self._keys:
             yield key, self._generators[key]
 
+
 class Processor:
 
     _types = {
-        "u8"   : u8DataElement,
-        "u16"  : u16DataElement,
-        "ul16" : ul16DataElement,
-        "u24"  : u24DataElement,
-        "ul24" : ul24DataElement,
-        "u32"  : u32DataElement,
-        "ul32" : ul32DataElement,
-        "i8"   : i8DataElement,
-        "i16"  : i16DataElement,
-        "il16" : il16DataElement,
-        "i24"  : i24DataElement,
-        "il24" : il24DataElement,
-        "i32"  : i32DataElement,
-        "char" : charDataElement,
-        "lbcd" : lbcdDataElement,
-        "bbcd" : bbcdDataElement,
+        "u8":    u8DataElement,
+        "u16":   u16DataElement,
+        "ul16":  ul16DataElement,
+        "u24":   u24DataElement,
+        "ul24":  ul24DataElement,
+        "u32":   u32DataElement,
+        "ul32":  ul32DataElement,
+        "i8":    i8DataElement,
+        "i16":   i16DataElement,
+        "il16":  il16DataElement,
+        "i24":   i24DataElement,
+        "il24":  il24DataElement,
+        "i32":   i32DataElement,
+        "char":  charDataElement,
+        "lbcd":  lbcdDataElement,
+        "bbcd":  bbcdDataElement,
         }
 
     def __init__(self, data, offset):
@@ -740,13 +765,13 @@ class Processor:
                 _nbits = bits
                 _shift = bitsleft
                 _subgen = self._types[dtype]
-            
+
             self._generators[name] = bitDE(self._data, self._offset)
             bitsleft -= bits
 
         if bitsleft:
-            print "WARNING: %i trailing bits unaccounted for in %s" % (bitsleft,
-                                                                       bitfield)
+            print "WARNING: %i trailing bits unaccounted for in %s" % \
+                  (bitsleft, bitfield)
 
         return bytes
 
@@ -828,7 +853,7 @@ class Processor:
     def parse_struct(self, struct):
         if struct[0][0] == "struct_defn":
             return self.parse_struct_defn(struct[0][1])
-        elif struct [0][0] == "struct_decl":
+        elif struct[0][0] == "struct_decl":
             return self.parse_struct_decl(struct[0][1])
         else:
             raise Exception("Internal error: What is `%s'?" % struct[0][0])
@@ -837,7 +862,6 @@ class Processor:
         name = directive[0][0]
         value = directive[0][1][0][1]
         if name == "seekto":
-            #print "NOTICE: Setting offset to %i (0x%X)" % (offset, offset)
             self._offset = int(value, 0)
         elif name == "seek":
             self._offset += int(value, 0)
@@ -846,14 +870,12 @@ class Processor:
 
     def parse_block(self, lang):
         for t, d in lang:
-            #print t
             if t == "struct":
                 self.parse_struct(d)
             elif t == "definition":
                 self.parse_defn(d)
             elif t == "directive":
                 self.parse_directive(d)
-        
 
     def parse(self, lang):
         self._generators = structDataElement(self._data, self._offset)
@@ -894,7 +916,6 @@ struct {
     import sys
     sys.exit(0)
 
-
     test = """
     struct {
       u16 bar;
@@ -913,12 +934,12 @@ struct {
     data = "\xfe\x10\x00\x08\xFF\x23\x01\x02\x03abc\x34\x89"
     data = (data * 2) + "\x12"
     data = MemoryMap(data)
-    
+
     ast = bitwise_grammar.parse(test)
 
     # Just for testing, pretty-print the tree
     pp(ast)
-    
+
     # Mess with it a little
     p = Processor(data, 0)
     obj = p.parse(ast)
@@ -931,7 +952,7 @@ struct {
     obj["foo"][0]["onebit"].set_value(1)
     print "%i" % int(obj["foo"][0]["bar"])
 
-    for i in  obj["foo"][0]["array"]:
+    for i in obj["foo"][0]["array"]:
         print int(i)
     obj["foo"][0]["array"][1].set_value(255)
 
diff --git a/tools/cpep8.blacklist b/tools/cpep8.blacklist
index 5213d75..d33c735 100644
--- a/tools/cpep8.blacklist
+++ b/tools/cpep8.blacklist
@@ -11,7 +11,6 @@
 ./chirp/bandplan_iaru_r3.py
 ./chirp/bandplan_na.py
 ./chirp/baofeng_uv3r.py
-./chirp/bitwise.py
 ./chirp/bjuv55.py
 ./chirp/elib_intl.py
 ./chirp/ft1802.py




More information about the chirp_devel mailing list