From 9c7791f7620ab7352d696e836b1f850cac9e44ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Thu, 22 Feb 2018 15:52:10 +0100 Subject: [PATCH] Implemented/fixed/ported loading of blend files and getting blocks & props --- blender_asset_tracer/blendfile/__init__.py | 74 +++++++++++---------- blender_asset_tracer/blendfile/dna.py | 3 + blender_asset_tracer/blendfile/dna_io.py | 5 +- blender_asset_tracer/blendfile/header.py | 4 +- tests/blendfiles/basic_file.blend | Bin 0 -> 486768 bytes tests/test_blendfile_loading.py | 45 +++++++++++++ 6 files changed, 93 insertions(+), 38 deletions(-) create mode 100644 tests/blendfiles/basic_file.blend create mode 100644 tests/test_blendfile_loading.py diff --git a/blender_asset_tracer/blendfile/__init__.py b/blender_asset_tracer/blendfile/__init__.py index 2482e04..8697721 100644 --- a/blender_asset_tracer/blendfile/__init__.py +++ b/blender_asset_tracer/blendfile/__init__.py @@ -102,18 +102,19 @@ class BlendFile: self.sdna_index_from_id = {} self.block_from_offset = {} + self.load_dna1_block() + def load_dna1_block(self): """Read the blend file to load its DNA structure to memory.""" - fileobj = self.fileobj while True: - block = BlendFileBlock(fileobj, self) + block = BlendFileBlock(self) if block.code == b'ENDB': break if block.code == b'DNA1': self.structs, self.sdna_index_from_id = self.decode_structs(block) else: - fileobj.seek(block.size, os.SEEK_CUR) + self.fileobj.seek(block.size, os.SEEK_CUR) self.blocks.append(block) self.code_index[block.code].append(block) @@ -255,8 +256,8 @@ class BlendFileBlock: old_structure = struct.Struct(b'4sI') """old blend files ENDB block structure""" - def __init__(self, fileobj: typing.BinaryIO, bfile: BlendFile): - self.file = bfile + def __init__(self, bfile: BlendFile): + self.bfile = bfile # Defaults; actual values are set by interpreting the block header. self.code = b'' @@ -267,11 +268,12 @@ class BlendFileBlock: self.file_offset = 0 """Offset in bytes from start of file to beginning of the data block. - Points to the data after the block header. - """ + Points to the data after the block header. + """ + self.endian = bfile.header.endian header_struct = bfile.block_header_struct - data = fileobj.read(header_struct.size) + data = bfile.fileobj.read(header_struct.size) if len(data) != header_struct.size: self.log.warning("Blend file %s seems to be truncated, " "expected %d bytes but could read only %d", @@ -286,17 +288,17 @@ class BlendFileBlock: if len(data) <= 15: self.log.debug('interpreting block as old-style ENB block') blockheader = self.old_structure.unpack(data) - self.code = dna_io.read_data0(blockheader[0]) + self.code = self.endian.read_data0(blockheader[0]) return blockheader = header_struct.unpack(data) - self.code = dna_io.read_data0(blockheader[0]) + self.code = self.endian.read_data0(blockheader[0]) if self.code != b'ENDB': self.size = blockheader[1] self.addr_old = blockheader[2] self.sdna_index = blockheader[3] self.count = blockheader[4] - self.file_offset = fileobj.tell() + self.file_offset = bfile.fileobj.tell() def __str__(self): return "<%s.%s (%s), size=%d at %s>" % ( @@ -308,22 +310,22 @@ class BlendFileBlock: ) @property - def dna_type(self): - return self.file.structs[self.sdna_index] + def dna_type(self) -> dna.Struct: + return self.bfile.structs[self.sdna_index] @property - def dna_type_name(self): + def dna_type_name(self) -> str: return self.dna_type.dna_type_id.decode('ascii') def refine_type_from_index(self, sdna_index_next): assert (type(sdna_index_next) is int) sdna_index_curr = self.sdna_index - self.file.ensure_subtype_smaller(sdna_index_curr, sdna_index_next) + self.bfile.ensure_subtype_smaller(sdna_index_curr, sdna_index_next) self.sdna_index = sdna_index_next def refine_type(self, dna_type_id): assert (type(dna_type_id) is bytes) - self.refine_type_from_index(self.file.sdna_index_from_id[dna_type_id]) + self.refine_type_from_index(self.bfile.sdna_index_from_id[dna_type_id]) def get_file_offset(self, path, default=..., @@ -333,24 +335,24 @@ class BlendFileBlock: """ Return (offset, length) """ - assert (type(path) is bytes) + assert isinstance(path, bytes) ofs = self.file_offset if base_index != 0: assert (base_index < self.count) ofs += (self.size // self.count) * base_index - self.file.handle.seek(ofs, os.SEEK_SET) + self.bfile.fileobj.seek(ofs, os.SEEK_SET) if sdna_index_refine is None: sdna_index_refine = self.sdna_index else: - self.file.ensure_subtype_smaller(self.sdna_index, sdna_index_refine) + self.bfile.ensure_subtype_smaller(self.sdna_index, sdna_index_refine) - dna_struct = self.file.structs[sdna_index_refine] + dna_struct = self.bfile.structs[sdna_index_refine] field = dna_struct.field_from_path( - self.file.header, self.file.handle, path) + self.bfile.header, self.bfile.fileobj, path) - return (self.file.handle.tell(), field.dna_name.array_size) + return self.bfile.fileobj.tell(), field.dna_name.array_size def get(self, path, default=..., @@ -363,16 +365,16 @@ class BlendFileBlock: if base_index != 0: assert (base_index < self.count) ofs += (self.size // self.count) * base_index - self.file.handle.seek(ofs, os.SEEK_SET) + self.bfile.fileobj.seek(ofs, os.SEEK_SET) if sdna_index_refine is None: sdna_index_refine = self.sdna_index else: - self.file.ensure_subtype_smaller(self.sdna_index, sdna_index_refine) + self.bfile.ensure_subtype_smaller(self.sdna_index, sdna_index_refine) - dna_struct = self.file.structs[sdna_index_refine] + dna_struct = self.bfile.structs[sdna_index_refine] return dna_struct.field_get( - self.file.header, self.file.handle, path, + self.bfile.header, self.bfile.fileobj, path, default=default, nil_terminated=use_nil, as_str=use_str, ) @@ -395,11 +397,11 @@ class BlendFileBlock: self.get(path_full, default, sdna_index_refine, use_nil, use_str, base_index)) except NotImplementedError as ex: msg, dna_name, dna_type = ex.args - struct_index = self.file.sdna_index_from_id.get(dna_type.dna_type_id, None) + struct_index = self.bfile.sdna_index_from_id.get(dna_type.dna_type_id, None) if struct_index is None: yield (path_full, "<%s>" % dna_type.dna_type_id.decode('ascii')) else: - struct = self.file.structs[struct_index] + struct = self.bfile.structs[struct_index] for f in struct.fields: yield from self.get_recursive_iter( f.dna_name.name_only, path_full, default, None, use_nil, use_str, 0) @@ -433,13 +435,13 @@ class BlendFileBlock: if sdna_index_refine is None: sdna_index_refine = self.sdna_index else: - self.file.ensure_subtype_smaller(self.sdna_index, sdna_index_refine) + self.bfile.ensure_subtype_smaller(self.sdna_index, sdna_index_refine) - dna_struct = self.file.structs[sdna_index_refine] - self.file.handle.seek(self.file_offset, os.SEEK_SET) - self.file.is_modified = True + dna_struct = self.bfile.structs[sdna_index_refine] + self.bfile.handle.seek(self.file_offset, os.SEEK_SET) + self.bfile.is_modified = True return dna_struct.field_set( - self.file.header, self.file.handle, path, value) + self.bfile.header, self.bfile.handle, path, value) # --------------- # Utility get/set @@ -459,13 +461,13 @@ class BlendFileBlock: if type(result) is not int: return result - assert (self.file.structs[sdna_index_refine].field_from_path( - self.file.header, self.file.handle, path).dna_name.is_pointer) + assert (self.bfile.structs[sdna_index_refine].field_from_path( + self.bfile.header, self.bfile.handle, path).dna_name.is_pointer) if result != 0: # possible (but unlikely) # that this fails and returns None # maybe we want to raise some exception in this case - return self.file.find_block_from_offset(result) + return self.bfile.find_block_from_offset(result) else: return None diff --git a/blender_asset_tracer/blendfile/dna.py b/blender_asset_tracer/blendfile/dna.py index b1dfefd..96285b6 100644 --- a/blender_asset_tracer/blendfile/dna.py +++ b/blender_asset_tracer/blendfile/dna.py @@ -76,6 +76,9 @@ class Field: self.size = size self.offset = offset + def __repr__(self): + return '<%r %r (%s)>' % (type(self).__qualname__, self.name, self.dna_type) + class Struct: """dna.Struct is a C-type structure stored in the DNA.""" diff --git a/blender_asset_tracer/blendfile/dna_io.py b/blender_asset_tracer/blendfile/dna_io.py index 78cde8b..5b5c56c 100644 --- a/blender_asset_tracer/blendfile/dna_io.py +++ b/blender_asset_tracer/blendfile/dna_io.py @@ -17,7 +17,10 @@ class EndianIO: @classmethod def _read(cls, fileobj: typing.BinaryIO, typestruct: struct.Struct): data = fileobj.read(typestruct.size) - return typestruct.unpack(data)[0] + try: + return typestruct.unpack(data)[0] + except struct.error as ex: + raise struct.error('%s (read %d bytes)' % (ex, len(data))) from None @classmethod def read_char(cls, fileobj: typing.BinaryIO): diff --git a/blender_asset_tracer/blendfile/header.py b/blender_asset_tracer/blendfile/header.py index b9a67b2..b195f51 100644 --- a/blender_asset_tracer/blendfile/header.py +++ b/blender_asset_tracer/blendfile/header.py @@ -1,4 +1,5 @@ import logging +import os import pathlib import struct import typing @@ -12,13 +13,14 @@ class BlendFileHeader: """ BlendFileHeader represents the first 12 bytes of a blend file. - it contains information about the hardware architecture, which is relevant + It contains information about the hardware architecture, which is relevant to the structure of the rest of the file. """ structure = struct.Struct(b'7s1s1s3s') def __init__(self, fileobj: typing.BinaryIO, path: pathlib.Path): log.debug("reading blend-file-header %s", path) + fileobj.seek(0, os.SEEK_SET) header = fileobj.read(self.structure.size) values = self.structure.unpack(header) diff --git a/tests/blendfiles/basic_file.blend b/tests/blendfiles/basic_file.blend new file mode 100644 index 0000000000000000000000000000000000000000..b573b7bec3c492bd6a7a9414728f971273d2cb4d GIT binary patch literal 486768 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 literal 0 HcmV?d00001 diff --git a/tests/test_blendfile_loading.py b/tests/test_blendfile_loading.py new file mode 100644 index 0000000..2020c75 --- /dev/null +++ b/tests/test_blendfile_loading.py @@ -0,0 +1,45 @@ +import pathlib +import unittest + +import os + +from blender_asset_tracer import blendfile + + +class BlendLoadingTest(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.blendfiles = pathlib.Path(__file__).with_name('blendfiles') + + def setUp(self): + self.bf = None + + def tearDown(self): + if self.bf: + self.bf.close() + + def test_some_properties(self): + self.bf = blendfile.BlendFile(self.blendfiles / 'basic_file.blend') + self.assertFalse(self.bf.is_compressed) + self.assertEqual(1, len(self.bf.code_index[b'OB'])) + ob = self.bf.code_index[b'OB'][0] + self.assertEqual('Object', ob.dna_type_name) + + # Try low level operation to read a property. + self.bf.fileobj.seek(ob.file_offset, os.SEEK_SET) + loc = ob.dna_type.field_get(self.bf.header, self.bf.fileobj, b'loc') + self.assertEqual(loc, [2.0, 3.0, 5.0]) + + # Try high level operation to read the same property. + loc = ob.get(b'loc') + self.assertEqual(loc, [2.0, 3.0, 5.0]) + + # Try getting a subproperty. + name = ob.get((b'id', b'name')) + self.assertEqual('OBümlaut', name) + + # Try following a pointer. + mesh_ptr = ob.get(b'data') + mesh = self.bf.block_from_offset[mesh_ptr] + mname = mesh.get((b'id', b'name')) + self.assertEqual('MECube³', mname)