Clarified type refinement, simplified API, custom exception for get_pointer

Type refinement is now only done with BlendFileBlock.refine_type(), and
no longer with sdna_index_refine parameters to various functions. This
simplifies the API at the expense of having to call two simple functions
instead of one more complex one.
This commit is contained in:
Sybren A. Stüvel
2018-02-23 14:26:57 +01:00
parent 9c8766a28c
commit 934a8e210e
5 changed files with 123 additions and 49 deletions
@@ -0,0 +1,9 @@
from . import BlendFileBlock
def listbase(block: BlendFileBlock) -> BlendFileBlock:
"""Generator, yields all blocks in the ListBase linked list."""
while block:
yield block
next_ptr = block[b'next']
block = block.bfile.find_block_from_address(next_ptr)