Cleanup: make the blend file header private

This was split out as part of a refactor but isn't intended to be a
new public module for other scripts to use.

Ref !141088
This commit is contained in:
Campbell Barton
2025-06-27 23:41:07 +10:00
parent 257486630e
commit 0d3826b354
4 changed files with 19 additions and 19 deletions

View File

@@ -10,7 +10,7 @@ __all__ = (
"read_blend_rend_chunk",
)
import blendfile_header
import _blendfile_header
class RawBlendFileReader:
@@ -77,8 +77,8 @@ def _read_blend_rend_chunk_from_file(blendfile, filepath):
from os import SEEK_CUR
try:
blender_header = blendfile_header.BlendFileHeader(blendfile)
except blendfile_header.BlendHeaderError:
blender_header = _blendfile_header.BlendFileHeader(blendfile)
except _blendfile_header.BlendHeaderError:
sys.stderr.write("Not a blend file: {:s}\n".format(filepath))
return []
@@ -87,7 +87,7 @@ def _read_blend_rend_chunk_from_file(blendfile, filepath):
endian_str = b'<' if blender_header.is_little_endian else b'>'
block_header_struct = blender_header.create_block_header_struct()
while bhead := blendfile_header.BlockHeader(blendfile, block_header_struct):
while bhead := _blendfile_header.BlockHeader(blendfile, block_header_struct):
if bhead.code == b'ENDB':
break
remaining_bytes = bhead.size

View File

@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: GPL-2.0-or-later
import blendfile_header
import _blendfile_header # Not part of the Public API, allow use for testing.
import blend_render_info
import bpy
import pathlib
@@ -26,7 +26,7 @@ class BlendFileHeaderTest(unittest.TestCase):
def test_small_bhead_8(self):
path = self.testdir / "SmallBHead8.blend"
with gzip.open(path, "rb") as f:
header = blendfile_header.BlendFileHeader(f)
header = _blendfile_header.BlendFileHeader(f)
self.assertEqual(header.magic, b"BLENDER")
self.assertEqual(header.file_format_version, 0)
self.assertEqual(header.pointer_size, 8)
@@ -34,7 +34,7 @@ class BlendFileHeaderTest(unittest.TestCase):
self.assertEqual(header.version, 300)
header_struct = header.create_block_header_struct()
self.assertIs(header_struct.type, blendfile_header.SmallBHead8)
self.assertIs(header_struct.type, _blendfile_header.SmallBHead8)
buffer = f.read(header_struct.struct.size)
block = header_struct.parse(buffer)
@@ -49,7 +49,7 @@ class BlendFileHeaderTest(unittest.TestCase):
def test_large_bhead_8(self):
path = self.testdir / "LargeBHead8.blend"
with open(path, "rb") as f:
header = blendfile_header.BlendFileHeader(f)
header = _blendfile_header.BlendFileHeader(f)
self.assertEqual(header.magic, b"BLENDER")
self.assertEqual(header.file_format_version, 1)
self.assertEqual(header.pointer_size, 8)
@@ -57,7 +57,7 @@ class BlendFileHeaderTest(unittest.TestCase):
self.assertEqual(header.version, 500)
header_struct = header.create_block_header_struct()
self.assertIs(header_struct.type, blendfile_header.LargeBHead8)
self.assertIs(header_struct.type, _blendfile_header.LargeBHead8)
buffer = f.read(header_struct.struct.size)
block = header_struct.parse(buffer)
@@ -72,7 +72,7 @@ class BlendFileHeaderTest(unittest.TestCase):
def test_bhead_4(self):
path = self.testdir / "BHead4.blend"
with gzip.open(path, "rb") as f:
header = blendfile_header.BlendFileHeader(f)
header = _blendfile_header.BlendFileHeader(f)
self.assertEqual(header.magic, b"BLENDER")
self.assertEqual(header.file_format_version, 0)
self.assertEqual(header.pointer_size, 4)
@@ -80,7 +80,7 @@ class BlendFileHeaderTest(unittest.TestCase):
self.assertEqual(header.version, 260)
header_struct = header.create_block_header_struct()
self.assertIs(header_struct.type, blendfile_header.BHead4)
self.assertIs(header_struct.type, _blendfile_header.BHead4)
buffer = f.read(header_struct.struct.size)
block = header_struct.parse(buffer)
@@ -95,7 +95,7 @@ class BlendFileHeaderTest(unittest.TestCase):
def test_bhead_4_big_endian(self):
path = self.testdir / "BHead4_big_endian.blend"
with gzip.open(path, "rb") as f:
header = blendfile_header.BlendFileHeader(f)
header = _blendfile_header.BlendFileHeader(f)
self.assertEqual(header.magic, b"BLENDER")
self.assertEqual(header.file_format_version, 0)
self.assertEqual(header.pointer_size, 4)
@@ -103,7 +103,7 @@ class BlendFileHeaderTest(unittest.TestCase):
self.assertEqual(header.version, 170)
header_struct = header.create_block_header_struct()
self.assertIs(header_struct.type, blendfile_header.BHead4)
self.assertIs(header_struct.type, _blendfile_header.BHead4)
buffer = f.read(header_struct.struct.size)
block = header_struct.parse(buffer)
@@ -131,7 +131,7 @@ class BlendFileHeaderTest(unittest.TestCase):
version_int = version[0] * 100 + version[1]
with open(path, "rb") as f:
header = blendfile_header.BlendFileHeader(f)
header = _blendfile_header.BlendFileHeader(f)
self.assertEqual(header.magic, b"BLENDER")
self.assertEqual(header.file_format_version, 1)
self.assertEqual(header.pointer_size, 8)
@@ -139,7 +139,7 @@ class BlendFileHeaderTest(unittest.TestCase):
self.assertEqual(header.version, version_int)
header_struct = header.create_block_header_struct()
self.assertIs(header_struct.type, blendfile_header.LargeBHead8)
self.assertIs(header_struct.type, _blendfile_header.LargeBHead8)
buffer = f.read(header_struct.struct.size)
block = header_struct.parse(buffer)

View File

@@ -22,7 +22,7 @@ import os
import sys
sys.path.append(os.path.join(os.path.dirname(__file__), "..", "..", "scripts", "modules"))
import blendfile_header
import _blendfile_header
import gzip
import logging
import struct
@@ -57,7 +57,7 @@ class BlendFile:
"filepath_orig",
# BlendFileHeader
"header",
# blendfile_header.BlockHeaderStruct
# _blendfile_header.BlockHeaderStruct
"block_header_struct",
# BlendFileBlock
"blocks",
@@ -245,7 +245,7 @@ class BlendFile:
return structs, sdna_index_from_id
class BlendFileBlock(blendfile_header.BlockHeader):
class BlendFileBlock(_blendfile_header.BlockHeader):
"""
Instance of a struct.
"""
@@ -703,7 +703,7 @@ class BlendFileBlockRaw:
# Read Magic
class BlendFileHeader(blendfile_header.BlendFileHeader):
class BlendFileHeader(_blendfile_header.BlendFileHeader):
endian_index: int
endian_str: bytes