commit 45e3ba4a4f8fb39d2a090f1f67c10d6132939d8e
blendfile.py: add BlendFileBlock.get_data_hash() 'pointer-invariant' hash generator.
This aims at giving some kind of uid to replace addr_old, that does not changes on
every .blend saving.
commit 81c92e60195f9ff3ce327c26278d07eafb4a0596
blendfile.py: fix/add some 'basic data' reading (mostly arrays of ints/floats/...), add utils to recursively get all items of a struct.
New `BlendFileBlock.items_recursive_iter()` will yield all valid key/values pair of a given struct,
including sub ones (e.g. 'id.next', 'id.name', etc.).
Currently blendfile.py does not know how to handle embeded structs - this is solvable for later, but at least
do not raise exception about that when using values()/items() helpers of BlendFileBlock
(for now, return Ellipsis in those cases).
Also, added some user_data member to BlendFileBlock and DNAStruct classes, handy when you need to store
some own data for each of those, and want to avoid having your own list or dict for that.