--- a/Utilities/binplistlib.py Sat Mar 11 14:35:22 2017 +0100 +++ b/Utilities/binplistlib.py Sat Mar 11 18:08:42 2017 +0100 @@ -344,7 +344,7 @@ result = None tmp_byte = self.contents[self.currentOffset:self.currentOffset + 1] marker_byte = unpack("!B", tmp_byte)[0] - format = (marker_byte >> 4) & 0x0f + formatNibble = (marker_byte >> 4) & 0x0f extra = marker_byte & 0x0f self.currentOffset += 1 @@ -355,7 +355,7 @@ return extra # bool, null, or fill byte - if format == 0b0000: + if formatNibble == 0b0000: if extra == 0b0000: result = None elif extra == 0b1000: @@ -369,61 +369,61 @@ "Invalid object found at offset: {0}".format( self.currentOffset - 1)) # int - elif format == 0b0001: + elif formatNibble == 0b0001: extra = proc_extra(extra) result = self.readInteger(pow(2, extra)) # real - elif format == 0b0010: + elif formatNibble == 0b0010: extra = proc_extra(extra) result = self.readReal(extra) # date - elif format == 0b0011 and extra == 0b0011: + elif formatNibble == 0b0011 and extra == 0b0011: result = self.readDate() # data - elif format == 0b0100: + elif formatNibble == 0b0100: extra = proc_extra(extra) result = self.readData(extra) # ascii string - elif format == 0b0101: + elif formatNibble == 0b0101: extra = proc_extra(extra) result = self.readAsciiString(extra) # Unicode string - elif format == 0b0110: + elif formatNibble == 0b0110: extra = proc_extra(extra) result = self.readUnicode(extra) # uid - elif format == 0b1000: + elif formatNibble == 0b1000: result = self.readUid(extra) # array - elif format == 0b1010: + elif formatNibble == 0b1010: extra = proc_extra(extra) result = self.readArray(extra) # set - elif format == 0b1100: + elif formatNibble == 0b1100: extra = proc_extra(extra) result = set(self.readArray(extra)) # dict - elif format == 0b1101: + elif formatNibble == 0b1101: extra = proc_extra(extra) result = self.readDict(extra) else: raise InvalidPlistException( "Invalid object found: {{format: {0}, extra: {1}}}".format( - bin(format), bin(extra))) + bin(formatNibble), bin(extra))) return result - def readInteger(self, bytes): + def readInteger(self, length): """ Public method to read an Integer object. - @param bytes length of the object (integer) + @param length length of the object (integer) @return integer object """ result = 0 original_offset = self.currentOffset - data = self.contents[self.currentOffset:self.currentOffset + bytes] - result = self.getSizedInteger(data, bytes) - self.currentOffset = original_offset + bytes + data = self.contents[self.currentOffset:self.currentOffset + length] + result = self.getSizedInteger(data, length) + self.currentOffset = original_offset + length return result def readReal(self, length): @@ -565,25 +565,25 @@ """ return Uid(self.readInteger(length + 1)) - def getSizedInteger(self, data, bytes): + def getSizedInteger(self, data, length): """ Public method to read an integer of a specific size. @param data data to extract the integer from (bytes) - @param bytes length of the integer (integer) + @param length length of the integer (integer) @return read integer (integer) @exception InvalidPlistException raised to indicate an invalid plist file """ result = 0 # 1, 2, and 4 byte integers are unsigned - if bytes == 1: + if length == 1: result = unpack('>B', data)[0] - elif bytes == 2: + elif length == 2: result = unpack('>H', data)[0] - elif bytes == 4: + elif length == 4: result = unpack('>L', data)[0] - elif bytes == 8: + elif length == 8: result = unpack('>q', data)[0] else: raise InvalidPlistException( @@ -762,7 +762,7 @@ n.append(self.wrapRoot(value)) return HashableWrapper(n) elif isinstance(root, tuple): - n = tuple([self.wrapRoot(value) for value in root]) + n = tuple(self.wrapRoot(value) for value in root) return HashableWrapper(n) else: return root @@ -901,13 +901,13 @@ position the object was written to shall be recorded (boolean) @return new output """ - def proc_variable_length(format, length): + def proc_variable_length(formatNibble, length): result = '' if length > 0b1110: - result += pack('!B', (format << 4) | 0b1111) + result += pack('!B', (formatNibble << 4) | 0b1111) result = self.writeObject(length, result) else: - result += pack('!B', (format << 4) | length) + result += pack('!B', (formatNibble << 4) | length) return result if setReferencePosition: @@ -925,8 +925,8 @@ output += pack('!B', (0b1000 << 4) | size - 1) output += self.binaryInt(obj) elif isinstance(obj, int): - bytes = self.intSize(obj) - root = math.log(bytes, 2) + length = self.intSize(obj) + root = math.log(length, 2) output += pack('!B', (0b0001 << 4) | int(root)) output += self.binaryInt(obj) elif isinstance(obj, float): @@ -943,9 +943,9 @@ output += obj elif isinstance(obj, str): # Python 3 uses unicode strings only - bytes = obj.encode('utf_16_be') - output += proc_variable_length(0b0110, len(bytes) / 2) - output += bytes + length = obj.encode('utf_16_be') + output += proc_variable_length(0b0110, len(length) / 2) + output += length elif isinstance(obj, HashableWrapper): obj = obj.value if isinstance(obj, (set, list, tuple)): @@ -1016,26 +1016,26 @@ result = pack('>d', obj) return result - def binaryInt(self, obj, bytes=None): + def binaryInt(self, obj, length=None): """ Public method to pack an integer object. @param obj integer to be packed - @param bytes length the integer should be packed into (integer) + @param length length the integer should be packed into (integer) @return serialized object (bytes) @exception InvalidPlistException raised to indicate an invalid plist file """ result = '' - if bytes is None: - bytes = self.intSize(obj) - if bytes == 1: + if length is None: + length = self.intSize(obj) + if length == 1: result += pack('>B', obj) - elif bytes == 2: + elif length == 2: result += pack('>H', obj) - elif bytes == 4: + elif length == 4: result += pack('>L', obj) - elif bytes == 8: + elif length == 8: result += pack('>q', obj) else: raise InvalidPlistException(