diff --git a/create_requirement_images.py b/create_requirement_images.py index 1f59017..2e495c3 100755 --- a/create_requirement_images.py +++ b/create_requirement_images.py @@ -71,6 +71,7 @@ def asset_path(asset_name): "txt": file_empty_icon, "toml": file_icon, "bmp": file_image_icon, + "png": file_image_icon, "wav": file_music_icon, "mp3": file_music_icon, "mid": file_music_icon, diff --git a/get_imports.py b/get_imports.py index 22d176c..c8a3988 100644 --- a/get_imports.py +++ b/get_imports.py @@ -165,6 +165,7 @@ def get_files_for_project(project_name): def get_libs_for_project(project_name): + # pylint: disable=too-many-nested-blocks """Get the set of libraries for a learn project""" found_libs = set() found_imports = [] @@ -173,12 +174,27 @@ def get_libs_for_project(project_name): if file.endswith(".py"): found_imports = findimports.find_imports(f"{project_dir}{file}") - for cur_import in found_imports: cur_lib = cur_import.name.split(".")[0] if cur_lib in bundle_data or cur_lib in community_bundle_data: found_libs.add(cur_lib) + # findimports returns import name in the form of "foo.bar.*" + if cur_import.name.endswith(".*"): + filepath = os.path.join( + project_dir, + os.path.join(*cur_import.name[:-2].split(".")) + ".py", + ) + if os.path.exists(filepath): + second_level_imports = findimports.find_imports(filepath) + for cur_second_level_import in second_level_imports: + cur_lib = cur_second_level_import.name.split(".")[0] + if ( + cur_lib in bundle_data + or cur_lib in community_bundle_data + ): + found_libs.add(cur_lib) + return found_libs