From 6cd9cb1713d4d77ab8ab500cb0f2046e19254c7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Wed, 20 Jul 2016 16:17:48 +0200 Subject: [PATCH] Texture browser: clicking on HDRi node no longer causes exception. The browser still downloads all HDRi files, though. --- blender_cloud/pillar.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/blender_cloud/pillar.py b/blender_cloud/pillar.py index 2bdc676..3033c34 100644 --- a/blender_cloud/pillar.py +++ b/blender_cloud/pillar.py @@ -588,7 +588,7 @@ async def download_file_by_uuid(file_uuid, save_as_json(file_desc, metadata_file) root, ext = os.path.splitext(file_desc['filename']) - if map_type is None or root.endswith(map_type): + if not map_type or root.endswith(map_type): target_filename = '%s%s' % (root, ext) else: target_filename = '%s-%s%s' % (root, map_type, ext) @@ -618,19 +618,22 @@ async def download_texture(texture_node, texture_loading: callable, texture_loaded: callable, future: asyncio.Future): - if texture_node['node_type'] not in TEXTURE_NODE_TYPES: + node_type_name = texture_node['node_type'] + if node_type_name not in TEXTURE_NODE_TYPES: raise TypeError("Node type should be in %r, not %r" % - (TEXTURE_NODE_TYPES, texture_node['node_type'])) + (TEXTURE_NODE_TYPES, node_type_name)) # Download every file. Eve doesn't support embedding from a list-of-dicts. - downloaders = (download_file_by_uuid(file_info['file'], - target_directory, - metadata_directory, - map_type=file_info['map_type'], - file_loading=texture_loading, - file_loaded=texture_loaded, - future=future) - for file_info in texture_node['properties']['files']) + downloaders = [] + for file_info in texture_node['properties']['files']: + dlr = download_file_by_uuid(file_info['file'], + target_directory, + metadata_directory, + map_type=file_info.map_type, + file_loading=texture_loading, + file_loaded=texture_loaded, + future=future) + downloaders.append(dlr) return await asyncio.gather(*downloaders, return_exceptions=True)