buildframework/helium/sf/python/pythoncore/lib/iadinfo.py
changeset 628 7c4a911dc066
parent 588 c7c26511138f
--- a/buildframework/helium/sf/python/pythoncore/lib/iadinfo.py	Wed Jun 16 16:51:40 2010 +0300
+++ b/buildframework/helium/sf/python/pythoncore/lib/iadinfo.py	Fri Aug 13 14:59:05 2010 +0300
@@ -1,6 +1,6 @@
 #============================================================================ 
-#Name        : iadinfo.py 
-#Part of     : Helium 
+#Name       : iadinfo.py 
+#Part of    : Helium 
 
 #Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 #All rights reserved.
@@ -24,34 +24,39 @@
 
 PyASN1Availabe = True
 
-try :
+try:
     from pyasn1.codec.der import decoder
     from pyasn1.type import base
 except ImportError:
     PyASN1Availabe = False
 
-def _findItem(item, itemParent, index, objectIdentifier) :
+def _findItem(item, itemParent, index, objectIdentifier):
     """find Item"""
-    if isinstance(item, base.AbstractSimpleAsn1Item) :
-        if item == objectIdentifier :
+    if isinstance(item, base.AbstractSimpleAsn1Item):
+        if item == objectIdentifier:
             return itemParent[index + 1]
     else:
-        for i_item in range(len(item)) :
+        for i_item in range(len(item)):
             found = _findItem(item[i_item], item, i_item, objectIdentifier)
             if found: 
                 return found
 
-def findItem(decodedCert, objectIdentifier) :
+def findItem(decodedCert, objectIdentifier):
     """find item"""
     return _findItem(decodedCert, None, 0, objectIdentifier)
 
 
-class CertificateOrganization :
+class CertificateOrganization:
     """ This class holds organisation details of certificate issuer or signer """
-    def __init__(self) :
-        pass
-    
-    def parse(self, decodedCert) :
+    def __init__(self):
+        self.commonName = None
+        self.countryCode = None
+        self.locality = None
+        self.state = None
+        self.street = None
+        self.organization = None
+        
+    def parse(self, decodedCert):
         """parse certificate Organisation"""
         self.commonName = findItem(decodedCert, (2, 5, 4, 3))
         self.countryCode = findItem(decodedCert, (2, 5, 4, 6))
@@ -60,29 +65,30 @@
         self.street = findItem(decodedCert, (2, 5, 4, 9))
         self.organization = findItem(decodedCert, (2, 5, 4, 10))
 
-    def readableStr(self) :
+    def readableStr(self):
         """readable String"""
         buf = ""
-        if self.commonName :
+        if self.commonName:
             buf += self.commonName.prettyPrint() + "\n"
-        if self.countryCode :
+        if self.countryCode:
             buf += self.countryCode.prettyPrint() + "\n"
-        if self.locality :
+        if self.locality:
             buf += self.locality.prettyPrint() + "\n"
-        if self.state :
+        if self.state:
             buf += self.state.prettyPrint() + "\n"
-        if self.street :
+        if self.street:
             buf += self.street.prettyPrint() + "\n"
-        if self.organization :
+        if self.organization:
             buf += self.organization.prettyPrint()
         return buf
 
-class CertificateInfo :
+class CertificateInfo:
     """ This class holds certificate information such as certificate signer and issuer """
-    def __init__(self) :
-        pass
+    def __init__(self):
+        self.issuer = None
+        self.signer = None
         
-    def parse(self, decodedCert) :
+    def parse(self, decodedCert):
         """parse"""
         self.issuer = CertificateOrganization()
         self.issuer.parse(decodedCert[0][3])
@@ -90,101 +96,101 @@
         self.signer = CertificateOrganization()
         self.signer.parse(decodedCert[0][5])
         
-    def readableStr(self) :
+    def readableStr(self):
         """readable String"""
         buf = "Signer:\n      " + "\n      ".join(self.signer.readableStr().split('\n')) + "\n"
         buf += "Issuer:\n      " + "\n      ".join(self.issuer.readableStr().split('\n')) + "\n"
         return buf
 
 
-class SISFileHeader :
+class SISFileHeader:
     """ Class SIS File header """
-    def __init__(self) :
+    def __init__(self):
         self.uid1 = 0
         self.uid2 = 0
         self.uid3 = 0
         self.uidChecksum = 0
 
-class SISField :
+class SISField:
     """ Class SIS Field """
-    def __init__(self) :
-        self.type = 0
+    def __init__(self):
+        self.type_ = 0
         self.length = None
         self.subFields = []
         
-    def readFieldLength(self, fileReader) :
+    def readFieldLength(self, fileReader):
         """read Field Length"""
         length = fileReader.readBytesAsUint(4)
-        if length & 0x80000000 > 0 :
+        if length & 0x80000000 > 0:
             length = length << 32
             length |= fileReader.readBytesAsUint(4)
         return length
         
-    def findField(self, fieldType, startIndex=0) :
+    def findField(self, fieldType, startIndex=0):
         """find Field"""
         result = None
         index = startIndex
         
-        for field in self.subFields[startIndex:] :
-            if field.type == fieldType :
+        for field in self.subFields[startIndex:]:
+            if field.type_ == fieldType:
                 result = field
                 break
-            ++ index
+            index = index + 1
         return (result, index)
         
-    def readableStr(self) :
+    def readableStr(self):
         """readable String"""
         return ""
     
-    def traverse(self, handler, depth=0) :
+    def traverse(self, handler, depth=0):
         """ traverse"""
         handler.handleField(self, depth)
-        for field in self.subFields :
+        for field in self.subFields:
             field.traverse(handler, depth + 1)
         
-class SISUnsupportedField(SISField) :
+class SISUnsupportedField(SISField):
     """ Class SIS UnsupportedField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialisation From File"""
         self.length = self.readFieldLength(fileReader)
         fileReader.readPlainBytes(self.length)
 
-class SISStringField(SISField) :
+class SISStringField(SISField):
     """ Class SIS StringField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.data = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         buf = fileReader.readPlainBytes(self.length)
         self.data = u""
-        while len(buf) > 0 :
+        while len(buf) > 0:
             temp = buf[:2]
             buf = buf[2:]
             self.data += unichr(ord(temp[0]) | ord(temp[1]) << 8)
         
-    def readableStr(self) :
+    def readableStr(self):
         """readable String"""
         return self.data
         
-class SISArrayField(SISField) :
+class SISArrayField(SISField):
     """ Class SIS ArrayField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
-        type = fileReader.readBytesAsInt(4)
+        type_ = fileReader.readBytesAsInt(4)
         l_len = self.length - 4
-        while l_len > 0 :
-            field = SISFieldTypes[type]()
-            field.type = type
+        while l_len > 0:
+            field = SISFieldTypes[type_]()
+            field.type_ = type_
             field.initFromFile(fileReader)
             self.subFields.append(field)
             
@@ -192,32 +198,32 @@
             padding = fileReader.skipPadding()
             l_len -= padding
 
-class SISCompressedField(SISField) :
+class SISCompressedField(SISField):
     """ Class SIS CompressedField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.algorithm = None
         self.uncompressedDataSize = None
         self.data = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         self.algorithm = fileReader.readBytesAsUint(4)
         self.uncompressedDataSize = fileReader.readBytesAsUint(8)
         data = fileReader.readPlainBytes(self.length - 4 - 8)
-        if self.algorithm == 0 :
+        if self.algorithm == 0:
             self.data = data
-        elif self.algorithm == 1 :
+        elif self.algorithm == 1:
             self.data = zlib.decompress(data)
             
-class SISVersionField(SISField) :
+class SISVersionField(SISField):
     """ Class SIS VersionField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.version = (- 1, - 1, - 1)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         major = fileReader.readBytesAsInt(4)
@@ -225,147 +231,147 @@
         build = fileReader.readBytesAsInt(4)
         self.version = (major, minor, build)
         
-    def readableStr(self) :
+    def readableStr(self):
         """readable string"""
         return str(self.version)
     
-class SISVersionRangeField(SISField) :
+class SISVersionRangeField(SISField):
     """ Class SIS VersionRangeField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.fromVersion = None
         self.toVersion = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.fromVersion = fieldParser.parseField(fileReader)
-        if self.length - fieldParser.lastReadBytes > 0  :
+        if self.length - fieldParser.lastReadBytes > 0 :
             self.toVersion = fieldParser.parseField(fileReader)
     
-class SISDateField(SISField) :
+class SISDateField(SISField):
     """ Class SIS DateField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.year = None
         self.month = None
         self.day = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise from File"""
         self.length = self.readFieldLength(fileReader)
         self.year = fileReader.readBytesAsUint(2)
         self.month = fileReader.readBytesAsUint(1)
         self.day = fileReader.readBytesAsUint(1)
     
-    def readableStr(self) :
+    def readableStr(self):
         """readable string"""
         return str(self.year) + "." + str(self.month) + "." + str(self.day)
     
-class SISTimeField(SISField) :
+class SISTimeField(SISField):
     """ Class SIS TimeField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.hours = None
         self.minutes = None
         self.seconds = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise from File"""
         self.length = self.readFieldLength(fileReader)
         self.hours = fileReader.readBytesAsUint(1)
         self.minutes = fileReader.readBytesAsUint(1)
         self.seconds = fileReader.readBytesAsUint(1)
     
-    def readableStr(self) :
+    def readableStr(self):
         """readable String"""
         return str(self.hours) + ":" + str(self.minutes) + ":" + str(self.seconds)
     
-class SISDateTimeField(SISField) :
+class SISDateTimeField(SISField):
     """ Class SIS DateTimeField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.date = None
         self.time = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.date = fieldParser.parseField(fileReader)
         self.time = fieldParser.parseField(fileReader)
     
-class SISUidField(SISField) :
+class SISUidField(SISField):
     """ Class SIS UidField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.uid = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         self.uid = fileReader.readBytesAsUint(4)
         
-    def readableStr(self) :
+    def readableStr(self):
         """readable String"""
         return hex(self.uid)
     
-class SISLanguageField(SISField) :
+class SISLanguageField(SISField):
     """ Class SIS LanguageField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.language = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         self.language = fileReader.readBytesAsUint(4)
         
-    def readableStr(self) :
+    def readableStr(self):
         """readable String"""
         return str(self.language)
     
-class SISContentsField(SISField) :
+class SISContentsField(SISField):
     """ Class SIS ContentsField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         field = fieldParser.parseField(fileReader)
-        while field :
-            if field.type == 3 : # compressed<conroller>
+        while field:
+            if field.type_ == 3: # compressed<conroller>
                 bufferReader = SISBufferReader(field.data)
                 field = fieldParser.parseField(bufferReader)
             self.subFields.append(field)
             field = fieldParser.parseField(fileReader)
 
-class SISControllerField(SISField) :
+class SISControllerField(SISField):
     """ Class SIS ControllerField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         bufferReader = SISBufferReader(fileReader.readPlainBytes(self.length))
         field = fieldParser.parseField(bufferReader)
-        while field :
+        while field:
             self.subFields.append(field)
             field = fieldParser.parseField(bufferReader)
 
-class SISInfoField(SISField) :
+class SISInfoField(SISField):
     """ Class SIS InfoField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.installType = None
         self.installFlags = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
@@ -378,34 +384,34 @@
         self.installType = fileReader.readBytesAsUint(1)
         self.installFlags = fileReader.readBytesAsUint(1) 
             
-class SISSupportedLanguagesField(SISField) :
+class SISSupportedLanguagesField(SISField):
     """ Class SISSupportedLanguagesField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # languages
         
-class SISSupportedOptionsField(SISField) :
+class SISSupportedOptionsField(SISField):
     """ Class SISSupportedOptionsField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # options
             
-class SISPrerequisitiesField(SISField) :
+class SISPrerequisitiesField(SISField):
     """ Class SISPrerequisitiesField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
@@ -413,77 +419,77 @@
         self.subFields.append(fieldParser.parseField(fileReader)) # dependencies
         
         
-class SISDependencyField(SISField) :
+class SISDependencyField(SISField):
     """ Class SISDependencyField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # UID
         field = fieldParser.parseField(fileReader)
         # Version range field is optional
-        if field.type == VersionRangeField :
+        if field.type_ == VersionRangeField:
             self.subFields.append(field) # version range
             self.subFields.append(fieldParser.parseField(fileReader)) # dependency names
-        else :
+        else:
             self.subFields.append(field) # dependency names
     
-class SISPropertiesField(SISField) :
+class SISPropertiesField(SISField):
     """ Class SISPropertiesField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # properties
     
-class SISPropertyField(SISField) :
+class SISPropertyField(SISField):
     """ Class SISPropertyField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.key = None
         self.value = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         self.key = fileReader.readBytesAsInt(4)
         self.value = fileReader.readBytesAsInt(4)
     
-class SISSignaturesField(SISUnsupportedField) :
+class SISSignaturesField(SISUnsupportedField):
     """ Class SISSignaturesField There is a type for this field, but there is no definition of the field contents"""
     pass
     
-class SISCertificateChainField(SISField) :
+class SISCertificateChainField(SISField):
     """ Class SISCertificateChainField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # certificate data
     
-class SISLogoField(SISField) :
+class SISLogoField(SISField):
     """ Class SISLogoField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
 
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # logo file
     
-class SISFileDescriptionField(SISField) :
+class SISFileDescriptionField(SISField):
     """ Class SISFileDescriptionField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.operation = None
         self.operationOptions = None
@@ -491,7 +497,7 @@
         self.uncompressedLength = None
         self.fileIndex = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
@@ -500,7 +506,7 @@
         self.subFields.append(fieldParser.parseField(fileReader))
         field = fieldParser.parseField(fileReader)
         self.subFields.append(field)
-        if field.type == 41 : # read field was capabilities ==> there is one more field left
+        if field.type_ == 41: # read field was capabilities ==> there is one more field left
             self.subFields.append(fieldParser.parseField(fileReader))
         
         self.operation = fileReader.readBytesAsUint(4)
@@ -509,29 +515,29 @@
         self.uncompressedLength = fileReader.readBytesAsUint(8)
         self.fileIndex = fileReader.readBytesAsUint(4)
         
-    def readableStr(self) :
+    def readableStr(self):
         """readable string"""
         return "index: " + str(self.fileIndex)
     
-class SISHashField(SISField) :
+class SISHashField(SISField):
     """ Class SISHashField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.algorithm = None
 
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.algorithm = fileReader.readBytesAsUint(4)
         self.subFields.append(fieldParser.parseField(fileReader)) # logo file
     
-class SISIfField(SISField) :
+class SISIfField(SISField):
     """ Class SISIfField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
 
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
@@ -539,27 +545,27 @@
         self.subFields.append(fieldParser.parseField(fileReader)) # install block
         self.subFields.append(fieldParser.parseField(fileReader)) # else ifs
 
-class SISElseIfField(SISField) :
+class SISElseIfField(SISField):
     """ Class SISElseIfField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
 
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # expression
         self.subFields.append(fieldParser.parseField(fileReader)) # install block
     
-class SISInstallBlockField(SISField) :
+class SISInstallBlockField(SISField):
     """ Class SISInstallBlockField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.files = None
         self.embeddedSISFiles = None
         self.ifBlocks = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
@@ -567,212 +573,212 @@
         self.subFields.append(fieldParser.parseField(fileReader))
         self.subFields.append(fieldParser.parseField(fileReader))
 
-class SISExpressionField(SISField) :
+class SISExpressionField(SISField):
     """ Class SISExpressionField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.operator = None
         self.integerValue = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.operator = fileReader.readBytesAsUint(4)
         self.integerValue = fileReader.readBytesAsInt(4)
         
-        if self.operator == 10 or self.operator == 13 :
+        if self.operator == 10 or self.operator == 13:
             self.subFields.append(fieldParser.parseField(fileReader))
-        if self.operator == 1 or self.operator == 2 or self.operator == 3 or self.operator == 4 or self.operator == 5 or self.operator == 6 or self.operator == 7 or self.operator == 8 or self.operator == 11 or self.operator == 12 :
+        if self.operator == 1 or self.operator == 2 or self.operator == 3 or self.operator == 4 or self.operator == 5 or self.operator == 6 or self.operator == 7 or self.operator == 8 or self.operator == 11 or self.operator == 12:
             self.subFields.append(fieldParser.parseField(fileReader))
-        if not (self.operator == 13 or self.operator == 14 or self.operator == 15 or self.operator == 16 or self.operator == 10) :
+        if not (self.operator == 13 or self.operator == 14 or self.operator == 15 or self.operator == 16 or self.operator == 10):
             self.subFields.append(fieldParser.parseField(fileReader))
         
-class SISDataField(SISField) :
+class SISDataField(SISField):
     """ Class SISDataField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # data units
     
-class SISDataUnitField(SISField) :
+class SISDataUnitField(SISField):
     """ Class SISDataUnitField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # file data
     
-class SISFileDataField(SISField) :
+class SISFileDataField(SISField):
     """ Class SISFileDataField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # raw file data
     
-class SISSupportedOptionField(SISField) :
+class SISSupportedOptionField(SISField):
     """ Class SISSupportedOptionField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # names
     
-class SISControllerChecksumField(SISField) :
+class SISControllerChecksumField(SISField):
     """ Class SISControllerChecksumField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.checksum = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         self.checksum = fileReader.readBytesAsUint(2)
     
-class SISDataChecksumField(SISField) :
+class SISDataChecksumField(SISField):
     """ Class SISDataChecksumField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.checksum = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         self.checksum = fileReader.readBytesAsUint(2)
     
-class SISSignatureField(SISField) :
+class SISSignatureField(SISField):
     """ Class SISSignatureField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # signature algorithm
         self.subFields.append(fieldParser.parseField(fileReader)) # signature data
     
-class SISBlobField(SISField) :
+class SISBlobField(SISField):
     """ Class SISBlobField """ 
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.data = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         self.data = fileReader.readPlainBytes(self.length)
     
-class SISSignatureAlgorithmField(SISField) :
+class SISSignatureAlgorithmField(SISField):
     """ Class SISSignatureAlgorithmField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # algorithm identifier
     
-class SISSignatureCertificateChainField(SISField) :
+class SISSignatureCertificateChainField(SISField):
     """ Class SISSignatureCertificateChainField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         fieldParser = SISFieldParser()
         self.subFields.append(fieldParser.parseField(fileReader)) # signatures
         self.subFields.append(fieldParser.parseField(fileReader)) # certificate chain
     
-class SISDataIndexField(SISField) :
+class SISDataIndexField(SISField):
     """ Class SISDataIndexField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.dataIndex = None
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         self.dataIndex = fileReader.readBytesAsUint(4)
 
-class SISCapabilitiesField(SISField) :
+class SISCapabilitiesField(SISField):
     """ Class SISCapabilitiesField """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.capabilities = 0
         self.readableCaps = []
         
-    def initFromFile(self, fileReader) :
+    def initFromFile(self, fileReader):
         """initialise From File"""
         self.length = self.readFieldLength(fileReader)
         self.capabilities = fileReader.readBytesAsUint(self.length)
         
-        for i in range(20) :
-            if (self.capabilities >> i) & 0x01 :
+        for i in range(20):
+            if (self.capabilities >> i) & 0x01:
                 self.readableCaps.append(CapabilityNames[i])
                 
-    def readableStr(self) :
+    def readableStr(self):
         """readable string"""
         return " ".join(self.readableCaps)
     
 SISFieldTypes = { 
-    1 : SISStringField,
-    2 : SISArrayField,
-    3 : SISCompressedField,
-    4 : SISVersionField,
-    5 : SISVersionRangeField,
-    6 : SISDateField,
-    7 : SISTimeField,
-    8 : SISDateTimeField,
-    9 : SISUidField,
-    10 : SISUnsupportedField,
-    11 : SISLanguageField,
-    12 : SISContentsField,
-    13 : SISControllerField,
-    14 : SISInfoField,
-    15 : SISSupportedLanguagesField,
-    16 : SISSupportedOptionsField,
-    17 : SISPrerequisitiesField,
-    18 : SISDependencyField,
-    19 : SISPropertiesField,
-    20 : SISPropertyField,
-    21 : SISSignaturesField,
-    22 : SISCertificateChainField,
-    23 : SISLogoField,
-    24 : SISFileDescriptionField,
-    25 : SISHashField,
-    26 : SISIfField,
-    27 : SISElseIfField,
-    28 : SISInstallBlockField,
-    29 : SISExpressionField,
-    30 : SISDataField,
-    31 : SISDataUnitField,
-    32 : SISFileDataField,
-    33 : SISSupportedOptionField,
-    34 : SISControllerChecksumField,
-    35 : SISDataChecksumField,
-    36 : SISSignatureField,
-    37 : SISBlobField,
-    38 : SISSignatureAlgorithmField,
-    39 : SISSignatureCertificateChainField,
-    40 : SISDataIndexField,
-    41 : SISCapabilitiesField
+    1: SISStringField,
+    2: SISArrayField,
+    3: SISCompressedField,
+    4: SISVersionField,
+    5: SISVersionRangeField,
+    6: SISDateField,
+    7: SISTimeField,
+    8: SISDateTimeField,
+    9: SISUidField,
+    10: SISUnsupportedField,
+    11: SISLanguageField,
+    12: SISContentsField,
+    13: SISControllerField,
+    14: SISInfoField,
+    15: SISSupportedLanguagesField,
+    16: SISSupportedOptionsField,
+    17: SISPrerequisitiesField,
+    18: SISDependencyField,
+    19: SISPropertiesField,
+    20: SISPropertyField,
+    21: SISSignaturesField,
+    22: SISCertificateChainField,
+    23: SISLogoField,
+    24: SISFileDescriptionField,
+    25: SISHashField,
+    26: SISIfField,
+    27: SISElseIfField,
+    28: SISInstallBlockField,
+    29: SISExpressionField,
+    30: SISDataField,
+    31: SISDataUnitField,
+    32: SISFileDataField,
+    33: SISSupportedOptionField,
+    34: SISControllerChecksumField,
+    35: SISDataChecksumField,
+    36: SISSignatureField,
+    37: SISBlobField,
+    38: SISSignatureAlgorithmField,
+    39: SISSignatureCertificateChainField,
+    40: SISDataIndexField,
+    41: SISCapabilitiesField
     }
 
 [StringField,
@@ -818,71 +824,71 @@
  CapabilitiesField] = range(1, 42)
      
 FieldNames = {
- 0 : "ROOT",
- StringField : "StringField",
- ArrayField : "ArrayField",
- CompressedField : "CompressedField",
- VersionField : "VersionField",
- VersionRangeField : "VersionRangeField",
- DateField : "DateField",
- TimeField : "TimeField",
- DateTimeField : "DateTimeField",
- UidField : "UidField",
- UnusedField : "UnusedField",
- LanguageField : "LanguageField",
- ContentsField : "ContentsField",
- ControllerField : "ControllerField",
- InfoField : "InfoField",
- SupportedLanguagesField : "SupportedLanguagesField",
- SupportedOptionsField : "SupportedOptionsField",
- PrerequisitiesField : "PrerequisitiesField",
- DependencyField : "DependencyField",
- PropertiesField : "PropertiesField",
- PropertyField : "PropertyField",
- SignaturesField : "SignaturesField",
- CertificateChainField : "CertificateChainField",
- LogoField : "LogoField",
- FileDescriptionField : "FileDescriptionField",
- HashField : "HashField",
- IfField : "IfField",
- ElseIfField : "ElseIfField",
- InstallBlockField : "InstallBlockField",
- ExpressionField : "ExpressionField",
- DataField : "DataField",
- DataUnitField : "DataUnitField",
- FileDataField : "FileDataField",
- SupportedOptionField : "SupportedOptionField",
- ControllerChecksumField : "ControllerChecksumField",
- DataChecksumField : "DataChecksumField",
- SignatureField : "SignatureField",
- BlobField : "BlobField",
- SignatureAlgorithmField : "SignatureAlgorithmField",
- SignatureCertificateChainField : "SignatureCertificateChainField",
- DataIndexField : "DataIndexField",
- CapabilitiesField : "CapabilitiesField"
+ 0: "ROOT",
+ StringField: "StringField",
+ ArrayField: "ArrayField",
+ CompressedField: "CompressedField",
+ VersionField: "VersionField",
+ VersionRangeField: "VersionRangeField",
+ DateField: "DateField",
+ TimeField: "TimeField",
+ DateTimeField: "DateTimeField",
+ UidField: "UidField",
+ UnusedField: "UnusedField",
+ LanguageField: "LanguageField",
+ ContentsField: "ContentsField",
+ ControllerField: "ControllerField",
+ InfoField: "InfoField",
+ SupportedLanguagesField: "SupportedLanguagesField",
+ SupportedOptionsField: "SupportedOptionsField",
+ PrerequisitiesField: "PrerequisitiesField",
+ DependencyField: "DependencyField",
+ PropertiesField: "PropertiesField",
+ PropertyField: "PropertyField",
+ SignaturesField: "SignaturesField",
+ CertificateChainField: "CertificateChainField",
+ LogoField: "LogoField",
+ FileDescriptionField: "FileDescriptionField",
+ HashField: "HashField",
+ IfField: "IfField",
+ ElseIfField: "ElseIfField",
+ InstallBlockField: "InstallBlockField",
+ ExpressionField: "ExpressionField",
+ DataField: "DataField",
+ DataUnitField: "DataUnitField",
+ FileDataField: "FileDataField",
+ SupportedOptionField: "SupportedOptionField",
+ ControllerChecksumField: "ControllerChecksumField",
+ DataChecksumField: "DataChecksumField",
+ SignatureField: "SignatureField",
+ BlobField: "BlobField",
+ SignatureAlgorithmField: "SignatureAlgorithmField",
+ SignatureCertificateChainField: "SignatureCertificateChainField",
+ DataIndexField: "DataIndexField",
+ CapabilitiesField: "CapabilitiesField"
 }
      
 CapabilityNames = {
-    0 : "TCB",
-    1 : "CommDD",
-    2 : "PowerMgmt",
-    3 : "MultimediaDD",
-    4 : "ReadDeviceData",
-    5 : "WriteDeviceData",
-    6 : "DRM",
-    7 : "TrustedUI",
-    8 : "ProtServ",
-    9 : "DiskAdmin",
-    10 : "NetworkControl",
-    11 : "AllFiles",
-    12 : "SwEvent",
-    13 : "NetworkServices",
-    14 : "LocalServices",
-    15 : "ReadUserData",
-    16 : "WriteUserData",
-    17 : "Location",
-    18 : "SurroundingsDD",
-    19 : "UserEnvironment"
+    0: "TCB",
+    1: "CommDD",
+    2: "PowerMgmt",
+    3: "MultimediaDD",
+    4: "ReadDeviceData",
+    5: "WriteDeviceData",
+    6: "DRM",
+    7: "TrustedUI",
+    8: "ProtServ",
+    9: "DiskAdmin",
+    10: "NetworkControl",
+    11: "AllFiles",
+    12: "SwEvent",
+    13: "NetworkServices",
+    14: "LocalServices",
+    15: "ReadUserData",
+    16: "WriteUserData",
+    17: "Location",
+    18: "SurroundingsDD",
+    19: "UserEnvironment"
     }
 
 InstallTypes = {
@@ -893,86 +899,86 @@
     4: "PP"
     }
     
-class SISReader :
+class SISReader:
     """ SIS Reader """
-    def __init__(self) :
+    def __init__(self):
         self.bytesRead = 0
         
-    def readUnsignedBytes(self, numBytes) :
+    def readUnsignedBytes(self, numBytes):
         """read Unsigned bytes"""
         buf = self.readPlainBytes(numBytes)
-        if len(buf) < numBytes :
+        if len(buf) < numBytes:
             return []
             
-        format = ""
-        for _ in range(numBytes) :
-            format += "B"
-        return struct.unpack(format, buf)
+        format_ = ""
+        for _ in range(numBytes):
+            format_ += "B"
+        return struct.unpack(format_, buf)
     
-    def readSignedBytes(self, numBytes) :
+    def readSignedBytes(self, numBytes):
         """read signed bytes"""
         buf = self.readPlainBytes(numBytes)
-        if len(buf) < numBytes :
+        if len(buf) < numBytes:
             return []
             
-        format = ""
-        for _ in range(numBytes) :
-            format += "b"
-        return struct.unpack(format, buf)
+        format_ = ""
+        for _ in range(numBytes):
+            format_ += "b"
+        return struct.unpack(format_, buf)
         
-    def readBytesAsUint(self, numBytes) :
+    def readBytesAsUint(self, numBytes):
         """read bytes as Unit"""
         result = 0
-        bytes = self.readUnsignedBytes(numBytes)
-        if len(bytes) == numBytes :
-            for i_byte in range(numBytes) :
-                result |= bytes[i_byte] << (i_byte * 8)
+        bytes_ = self.readUnsignedBytes(numBytes)
+        if len(bytes_) == numBytes:
+            for i_byte in range(numBytes):
+                result |= bytes_[i_byte] << (i_byte * 8)
         
         return result
         
-    def readBytesAsInt(self, numBytes) :
+    def readBytesAsInt(self, numBytes):
         """read bytes as Integer"""
         result = 0
-        bytes = self.readSignedBytes(numBytes)
-        if len(bytes) == numBytes :
-            for i_byte in range(numBytes) :
-                result |= bytes[i_byte] << (i_byte * 8)
+        bytes_ = self.readSignedBytes(numBytes)
+        if len(bytes_) == numBytes:
+            for i_byte in range(numBytes):
+                result |= bytes_[i_byte] << (i_byte * 8)
         
         return result
         
-    def skipPadding(self) :
+    def skipPadding(self):
         """skip padding"""
         result = 0
-        if self.bytesRead % 4 != 0 :
+        if self.bytesRead % 4 != 0:
             paddingLength = 4 - self.bytesRead % 4
             self.readPlainBytes(paddingLength)
             result = paddingLength
             
         return result
 
-    def readPlainBytes(self, numBytes) :
+    def readPlainBytes(self, numBytes):
         """read plain bytes"""
         pass
 
-class SISFileReader(SISReader) : 
+class SISFileReader(SISReader): 
     """ SIS File Reader """
-    def __init__(self, inStream) :
+    def __init__(self, inStream):
         SISReader.__init__(self)
         self.inStream = inStream
         self.eof = False
         self.bytesRead = 0
 
-    def readPlainBytes(self, numBytes) :
+    def readPlainBytes(self, numBytes):
         """read Plain byytes"""
-        if self.eof :
+        if self.eof:
             return ""
             
-        if numBytes == 0 :
+        if numBytes == 0:
             return ""
             
         buf = ""
         buf = self.inStream.read(numBytes)
-        if len(buf) < numBytes :
+        if len(buf) < numBytes:
             self.eof = True
             return ""
             
@@ -980,121 +986,122 @@
         
         return buf
 
-    def isEof(self) :
+    def isEof(self):
         """is it End of File"""
         return self.eof
         
-class SISBufferReader(SISReader) :
+class SISBufferReader(SISReader):
     """ SIS Buffer reader """
-    def __init__(self, buffer) :
-        self.buffer = buffer
+    def __init__(self, buffer_):
+        SISReader.__init__(self)
+        self.buffer_ = buffer_
         self.bytesRead = 0
         
-    def readPlainBytes(self, numBytes) :
+    def readPlainBytes(self, numBytes):
         """read Plain bytes"""
-        if self.isEof() :
+        if self.isEof():
             return ""
             
-        if numBytes == 0 :
+        if numBytes == 0:
             return ""
             
-        result = self.buffer[self.bytesRead:self.bytesRead + numBytes]
+        result = self.buffer_[self.bytesRead:self.bytesRead + numBytes]
             
         self.bytesRead += numBytes
         
         return result
             
-    def isEof(self) :
+    def isEof(self):
         """is it End of File"""
-        return self.bytesRead >= len(self.buffer)
+        return self.bytesRead >= len(self.buffer_)
         
-class SISFieldParser :
+class SISFieldParser:
     """ Parser to read a SIS field """
-    def __init__(self) :
+    def __init__(self):
         self.lastReadBytes = 0
         
-    def parseField(self, fileReader) :
+    def parseField(self, fileReader):
         """Reads the next field from the fileReader stream and returns it"""
         field = None
         self.lastReadBytes = 0
-        type = fileReader.readBytesAsUint(4)
+        type_ = fileReader.readBytesAsUint(4)
         self.lastReadBytes += 4
-        if type != 0 :
-            field = SISFieldTypes[type]()
-            field.type = type
+        if type_ != 0:
+            field = SISFieldTypes[type_]()
+            field.type_ = type_
             field.initFromFile(fileReader)
             self.lastReadBytes += field.length + 4 # Field length + length field
             self.lastReadBytes += fileReader.skipPadding()
         return field
 
-class SISInfo(SISField) :
+class SISInfo(SISField):
     """ SIS file information """
-    def __init__(self) :
+    def __init__(self):
         SISField.__init__(self)
         self.fin = None
         self.fileHeader = SISFileHeader()
         
-    def parse(self, filename) :
+    def parse(self, filename):
         """parse"""
         fin = open(filename, 'rb')
         fileReader = SISFileReader(fin)
         self.parseHeader(fileReader)
         self.parseSISFields(fileReader)
         
-    def parseHeader(self, fileReader) :
+    def parseHeader(self, fileReader):
         """parse Holder"""
         self.fileHeader.uid1 = fileReader.readBytesAsUint(4)
         self.fileHeader.uid2 = fileReader.readBytesAsUint(4)
         self.fileHeader.uid3 = fileReader.readBytesAsUint(4)
         self.fileHeader.uidChecksum = fileReader.readBytesAsUint(4)
         
-    def parseSISFields(self, fileReader) :
+    def parseSISFields(self, fileReader):
         """parse SIS Fileds"""
         parser = SISFieldParser()
-        while not fileReader.isEof() :
+        while not fileReader.isEof():
             self.subFields.append(parser.parseField(fileReader))
 
-class Handler :
+class Handler:
     """ A handler class """
-    def __init__(self) :
+    def __init__(self):
         self.files = []
         self.fileDatas = []
         self.signatureCertificateChains = []
         
-    def handleField(self, field, _) :
+    def handleField(self, field, _):
         """handle Field"""
-        if field.type == FileDescriptionField :
+        if field.type_ == FileDescriptionField:
             self.files.append(field)
-        elif field.type == FileDataField :
+        elif field.type_ == FileDataField:
             self.fileDatas.append(field)
-        elif field.type == SignatureCertificateChainField  :
+        elif field.type_ == SignatureCertificateChainField :
             self.signatureCertificateChains.append(field)
 
-    def execute(self, options) :
+    def execute(self, options):
         """execute"""
-        for f_file in self.files :
-            if options.info :
+        for f_file in self.files:
+            if options.info:
                 buf = "   " + f_file.findField(StringField)[0].readableStr()
                 caps = f_file.findField(CapabilitiesField)[0]
-                if caps :
+                if caps:
                     buf += " [" + " ".join(f_file.findField(CapabilitiesField)[0].readableCaps) + "]"
                 print buf
-            if options.extract :
+            if options.extract:
                 parts = f_file.findField(StringField)[0].readableStr().split("\\")
-                if len(parts[len(parts) - 1]) > 0 :
+                if len(parts[len(parts) - 1]) > 0:
                     path = os.path.abspath(options.extract)
                     path += os.sep + os.sep.join(parts[1: - 1])
-                    if not os.path.exists(path) :
+                    if not os.path.exists(path):
                         os.makedirs(path)
                     newFile = file(path + os.sep + parts[len(parts) - 1], "wb")
                     newFile.write(self.fileDatas[f_file.fileIndex].findField(CompressedField)[0].data)
                     newFile.close()
-        for sig in self.signatureCertificateChains :
+        for sig in self.signatureCertificateChains:
             if options.certificate:
                 buf = sig.findField(CertificateChainField)[0].subFields[0].data
                 print "Certificate chain:"
                 i_num = 1
-                while len(buf) > 0 :
+                while len(buf) > 0:
                     print "   Certificate " + str(i_num) + ":"
                     i_num += 1
                     decoded = decoder.decode(buf)
@@ -1104,24 +1111,24 @@
                     print "      " + "\n      ".join(readableStr.split('\n'))
                     buf = decoded[1]
             
-class ContentPrinter :
+class ContentPrinter:
     """ A handler class which prints the field contents """
-    def __init__(self) :
+    def __init__(self):
         pass
         
-    def handleField(self, field, depth) :
+    def handleField(self, field, depth):
         """handle Field"""
         buf = ""
-        for _ in range(depth) :
+        for _ in range(depth):
             buf += "  "
-        buf += FieldNames[field.type] + " "
-        if len(field.readableStr()) > 0 :
+        buf += FieldNames[field.type_] + " "
+        if len(field.readableStr()) > 0:
             buf += field.readableStr()
         print buf
 
-class IADHandler :
+class IADHandler:
     """ IAD handler class """
-    def __init__(self) :
+    def __init__(self):
         self.packageVersion = (0, 0, 0)
         self.packageUid = 0
         self.vendorName = ""
@@ -1132,26 +1139,29 @@
         self.packageDependencies = []
         self.installType = 0
         self.installFlags = 0
+        self.packageVersionField = None
+        self.packageUidField = None
+        self.vendorNameField = None
         
-    def handleDependency(self, field) :
+    def handleDependency(self, field):
         """handle dependancy"""
         dep = [0, - 1, - 1, - 1, - 1, - 1, - 1]
         dep[0] = field.subFields[0].uid
-        if field.subFields[1] and field.subFields[1].type == VersionRangeField :
+        if field.subFields[1] and field.subFields[1].type_ == VersionRangeField:
             res = field.subFields[1]
-            if res.fromVersion != None :
+            if res.fromVersion != None:
                 dep[1] = res.fromVersion.version[0]
                 dep[2] = res.fromVersion.version[1]
                 dep[3] = res.fromVersion.version[2]
-            if res.toVersion != None :
+            if res.toVersion != None:
                 dep[4] = res.toVersion.version[0]
                 dep[5] = res.toVersion.version[1]
                 dep[6] = res.toVersion.version[2]
         return dep
         
-    def handleField(self, field, _) :
+    def handleField(self, field, _):
         """handle Field"""
-        if field.type == InfoField :
+        if field.type_ == InfoField:
             self.packageVersion = field.subFields[4].version
             self.packageVersionField = field.subFields[4]
             self.packageUid = field.subFields[0].uid
@@ -1160,19 +1170,19 @@
             self.vendorNameField = field.subFields[1]
             self.installType = field.installType
             self.installFlags = field.installFlags
-            for name in field.subFields[2].subFields :
+            for name in field.subFields[2].subFields:
                 self.packageNames.append(name.data)
-        elif field.type == LanguageField :
+        elif field.type_ == LanguageField:
             self.languages.append(field.language)
-        elif field.type == PrerequisitiesField :
-            for f_field in field.subFields[0].subFields :
+        elif field.type_ == PrerequisitiesField:
+            for f_field in field.subFields[0].subFields:
                 dependency = self.handleDependency(f_field)
                 self.platformDependencies.append(dependency)
-            for f_field in field.subFields[1].subFields :
+            for f_field in field.subFields[1].subFields:
                 dependency = self.handleDependency(f_field)
                 self.packageDependencies.append(dependency)
         
-    def getInfo (self, fileName) :
+    def getInfo (self, fileName):
         """get Info"""
         sisInfo = SISInfo()
         sisInfo.parse(fileName)
@@ -1187,11 +1197,11 @@
              + "<build>" + repr(handler.packageVersion[2]) + "</build>" \
              + "</version>\n" \
              + "  <type>" + InstallTypes[self.installType] + "</type>\n"
-        for num, name in enumerate(handler.packageNames) :
+        for num, name in enumerate(handler.packageNames):
             info += "  <name language='" + repr(handler.languages[num]) + "'>" + name + "</name>\n"
-        for language in handler.languages :
+        for language in handler.languages:
             info += "  <language>" + repr(language) + "</language>\n"
-        for platDep in handler.platformDependencies :
+        for platDep in handler.platformDependencies:
             info += "  <platform_dependency><uid>" + hex(platDep[0]) + "</uid>\n"
             info += "    <from>" \
                  + "<major>" + repr(platDep[1]) + "</major>" \
@@ -1203,7 +1213,7 @@
 #           info += "<build>" + repr(platDep[6]) + "</build>"
             info += "</to>\n" \
              + "  </platform_dependency>\n"
-        for packageDep in handler.packageDependencies :
+        for packageDep in handler.packageDependencies:
             info += "  <package_dependency><uid>" + hex(packageDep[0]) + "</uid>\n"
             info += "    <from>" \
                  + "<major>" + repr(packageDep[1]) + "</major>" \
@@ -1218,6 +1228,6 @@
         info += "</sisinfo>\n"
         return info
 
-if __name__ == "__main__" :
+if __name__ == "__main__":
     _handler = IADHandler()
     print (_handler.getInfo (sys.argv[1]))