From 8c15d612a5cdfe39233c7f2b7556742091c82558 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 3 Jul 2018 06:47:49 +0200 Subject: Cleanup: pep8 --- doc/blender_file_format/BlendFileReader.py | 126 ++++++++++++++--------------- 1 file changed, 63 insertions(+), 63 deletions(-) (limited to 'doc/blender_file_format/BlendFileReader.py') diff --git a/doc/blender_file_format/BlendFileReader.py b/doc/blender_file_format/BlendFileReader.py index a4d2f494c5b..d4aed722578 100644 --- a/doc/blender_file_format/BlendFileReader.py +++ b/doc/blender_file_format/BlendFileReader.py @@ -7,7 +7,7 @@ # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # -# This program is distributed in the hope that it will be useful, +# This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. @@ -34,6 +34,7 @@ log = logging.getLogger("BlendFileReader") # module global routines ###################################################### + def ReadString(handle, length): ''' ReadString reads a String of given length or a zero terminating String @@ -45,7 +46,7 @@ def ReadString(handle, length): # length == 0 means we want a zero terminating string result = "" s = ReadString(handle, 1) - while s!="\0": + while s != "\0": result += s s = ReadString(handle, 1) return result @@ -57,7 +58,7 @@ def Read(type, handle, fileheader): ''' def unpacked_bytes(type_char, size): return struct.unpack(fileheader.StructPre + type_char, handle.read(size))[0] - + if type == 'ushort': return unpacked_bytes("H", 2) # unsigned short elif type == 'short': @@ -94,10 +95,10 @@ def openBlendFile(filename): log.debug("decompressing started") fs = gzip.open(filename, "rb") handle = tempfile.TemporaryFile() - data = fs.read(1024*1024) - while data: - handle.write(data) - data = fs.read(1024*1024) + data = fs.read(1024 * 1024) + while data: + handle.write(data) + data = fs.read(1024 * 1024) log.debug("decompressing finished") fs.close() log.debug("resetting decompressed file") @@ -112,7 +113,7 @@ def Align(handle): offset = handle.tell() trim = offset % 4 if trim != 0: - handle.seek(4-trim, os.SEEK_CUR) + handle.seek(4 - trim, os.SEEK_CUR) ###################################################### @@ -121,14 +122,14 @@ def Align(handle): class BlendFile: ''' - Reads a blendfile and store the header, all the fileblocks, and catalogue + Reads a blendfile and store the header, all the fileblocks, and catalogue structs foound in the DNA fileblock - + - BlendFile.Header (BlendFileHeader instance) - BlendFile.Blocks (list of BlendFileBlock instances) - BlendFile.Catalog (DNACatalog instance) ''' - + def __init__(self, handle): log.debug("initializing reading blend-file") self.Header = BlendFileHeader(handle) @@ -141,13 +142,13 @@ class BlendFile: found_dna_block = True else: fileblock.Header.skip(handle) - + self.Blocks.append(fileblock) fileblock = BlendFileBlock(handle, self) - + # appending last fileblock, "ENDB" self.Blocks.append(fileblock) - + # seems unused? """ def FindBlendFileBlocksWithCode(self, code): @@ -164,27 +165,27 @@ class BlendFileHeader: BlendFileHeader allocates the first 12 bytes of a blend file. It contains information about the hardware architecture. Header example: BLENDER_v254 - + BlendFileHeader.Magic (str) BlendFileHeader.PointerSize (int) BlendFileHeader.LittleEndianness (bool) BlendFileHeader.StructPre (str) see http://docs.python.org/py3k/library/struct.html#byte-order-size-and-alignment BlendFileHeader.Version (int) ''' - + def __init__(self, handle): log.debug("reading blend-file-header") - + self.Magic = ReadString(handle, 7) log.debug(self.Magic) - + pointersize = ReadString(handle, 1) log.debug(pointersize) if pointersize == "-": self.PointerSize = 8 if pointersize == "_": self.PointerSize = 4 - + endianness = ReadString(handle, 1) log.debug(endianness) if endianness == "v": @@ -193,11 +194,11 @@ class BlendFileHeader: if endianness == "V": self.LittleEndianness = False self.StructPre = ">" - + version = ReadString(handle, 3) log.debug(version) self.Version = int(version) - + log.debug("{0} {1} {2} {3}".format(self.Magic, self.PointerSize, self.LittleEndianness, version)) @@ -206,11 +207,11 @@ class BlendFileBlock: BlendFileBlock.File (BlendFile) BlendFileBlock.Header (FileBlockHeader) ''' - + def __init__(self, handle, blendfile): self.File = blendfile self.Header = FileBlockHeader(handle, blendfile.Header) - + def Get(self, handle, path): log.debug("find dna structure") dnaIndex = self.Header.SDNAIndex @@ -232,7 +233,7 @@ class FileBlockHeader: Count (int) FileOffset (= file pointer of datablock) ''' - + def __init__(self, handle, fileheader): self.Code = ReadString(handle, 4).strip() if self.Code != "ENDB": @@ -257,28 +258,28 @@ class FileBlockHeader: class DNACatalog: ''' DNACatalog is a catalog of all information in the DNA1 file-block - + Header = None Names = None Types = None Structs = None ''' - + def __init__(self, fileheader, handle): log.debug("building DNA catalog") - self.Names=[] - self.Types=[] - self.Structs=[] + self.Names = [] + self.Types = [] + self.Structs = [] self.Header = fileheader - + SDNA = ReadString(handle, 4) - + # names NAME = ReadString(handle, 4) numberOfNames = Read('uint', handle, fileheader) log.debug("building #{0} names".format(numberOfNames)) for i in range(numberOfNames): - name = ReadString(handle,0) + name = ReadString(handle, 0) self.Names.append(DNAName(name)) Align(handle) @@ -287,7 +288,7 @@ class DNACatalog: numberOfTypes = Read('uint', handle, fileheader) log.debug("building #{0} types".format(numberOfTypes)) for i in range(numberOfTypes): - type = ReadString(handle,0) + type = ReadString(handle, 0) self.Types.append(DNAType(type)) Align(handle) @@ -321,24 +322,24 @@ class DNACatalog: class DNAName: ''' DNAName is a C-type name stored in the DNA. - + Name = str ''' - + def __init__(self, name): self.Name = name - + def AsReference(self, parent): if parent is None: result = "" else: - result = parent+"." - + result = parent + "." + result = result + self.ShortName() return result def ShortName(self): - result = self.Name; + result = self.Name result = result.replace("*", "") result = result.replace("(", "") result = result.replace(")", "") @@ -346,12 +347,12 @@ class DNAName: if Index != -1: result = result[0:Index] return result - + def IsPointer(self): - return self.Name.find("*")>-1 + return self.Name.find("*") > -1 def IsMethodPointer(self): - return self.Name.find("(*")>-1 + return self.Name.find("(*") > -1 def ArraySize(self): result = 1 @@ -360,10 +361,10 @@ class DNAName: while Index != -1: Index2 = Temp.find("]") - result*=int(Temp[Index+1:Index2]) - Temp = Temp[Index2+1:] + result *= int(Temp[Index + 1:Index2]) + Temp = Temp[Index2 + 1:] Index = Temp.find("[") - + return result @@ -375,46 +376,46 @@ class DNAType: Size = int Structure = DNAStructure ''' - + def __init__(self, aName): self.Name = aName - self.Structure=None + self.Structure = None class DNAStructure: ''' DNAType is a C-type structure stored in the DNA - + Type = DNAType Fields = [DNAField] ''' - + def __init__(self, aType): self.Type = aType self.Type.Structure = self - self.Fields=[] - + self.Fields = [] + def GetField(self, header, handle, path): splitted = path.partition(".") name = splitted[0] rest = splitted[2] - offset = 0; + offset = 0 for field in self.Fields: if field.Name.ShortName() == name: - log.debug("found "+name+"@"+str(offset)) + log.debug("found " + name + "@" + str(offset)) handle.seek(offset, os.SEEK_CUR) return field.DecodeField(header, handle, rest) else: offset += field.Size(header) - log.debug("error did not find "+path) + log.debug("error did not find " + path) return None class DNAField: ''' DNAField is a coupled DNAType and DNAName. - + Type = DNAType Name = DNAName ''' @@ -422,25 +423,24 @@ class DNAField: def __init__(self, aType, aName): self.Type = aType self.Name = aName - + def Size(self, header): if self.Name.IsPointer() or self.Name.IsMethodPointer(): - return header.PointerSize*self.Name.ArraySize() + return header.PointerSize * self.Name.ArraySize() else: - return self.Type.Size*self.Name.ArraySize() + return self.Type.Size * self.Name.ArraySize() def DecodeField(self, header, handle, path): if path == "": if self.Name.IsPointer(): return Read('pointer', handle, header) - if self.Type.Name=="int": + if self.Type.Name == "int": return Read('int', handle, header) - if self.Type.Name=="short": + if self.Type.Name == "short": return Read('short', handle, header) - if self.Type.Name=="float": + if self.Type.Name == "float": return Read('float', handle, header) - if self.Type.Name=="char": + if self.Type.Name == "char": return ReadString(handle, self.Name.ArraySize()) else: return self.Type.Structure.GetField(header, handle, path) - -- cgit v1.2.3