Tests: use a common function for iterators
This commit is contained in:
@@ -12,19 +12,20 @@ def get_sample_filepath(filepath):
|
|||||||
return os.path.join(dir_path, 'samples', filepath)
|
return os.path.join(dir_path, 'samples', filepath)
|
||||||
|
|
||||||
|
|
||||||
|
def listbase_iter(data, struct, listbase):
|
||||||
|
element = data.get_pointer((struct, listbase, b'first'))
|
||||||
|
while element is not None:
|
||||||
|
yield element
|
||||||
|
element = element.get_pointer(b'next')
|
||||||
|
|
||||||
|
|
||||||
def idprop_group_iter(idprops, ):
|
def idprop_group_iter(idprops, ):
|
||||||
itor = idprops.get_pointer((b'data', b'group', b'first'))
|
return listbase_iter(idprops, b'data', b'group')
|
||||||
while itor is not None:
|
|
||||||
yield itor
|
|
||||||
itor = itor.get_pointer(b'next')
|
|
||||||
|
|
||||||
|
|
||||||
def views_iter(scene):
|
def views_iter(scene):
|
||||||
"""Return an iterator for all views of scene"""
|
"""Return an iterator for all views of scene"""
|
||||||
view = scene.get_pointer((b'r', b'views', b'first'))
|
return listbase_iter(scene, b'r', b'views')
|
||||||
while view is not None:
|
|
||||||
yield view
|
|
||||||
view = view.get_pointer(b'next')
|
|
||||||
|
|
||||||
|
|
||||||
def query_main_scene(filepath, callbacks):
|
def query_main_scene(filepath, callbacks):
|
||||||
|
Reference in New Issue
Block a user