def create_app_dictionary(): #Create App Dictionary: Main function requests.packages.urllib3.disable_warnings() catalog = Catalog(url=os.environ['CATALOG_URL']) nms = NarrativeMethodStore(url=os.environ['NARRATIVE_METHOD_STORE']) apps = nms.list_methods({"tag": "release"}) apps_datastruc = pd.DataFrame.from_dict(apps) ModDfApps = data_configure(apps_datastruc) ModDfApps.drop([ 'app_type', 'authors', 'git_commit_hash', 'icon', 'input_types', 'module_name', 'name', 'namespace', 'output_types', 'subtitle', 'tooltip', 'ver' ], axis=1, inplace=True) keys = list( set([ item for sublist in list(ModDfApps.categories) for item in sublist ])) app_dict = {k: [] for k in keys} for i in ModDfApps.index.values: app_category_lst = ModDfApps["categories"][i] for category in app_category_lst: if category in app_dict.keys(): app_dict[category].append(ModDfApps["id"][i]) app_dict[category] = list(set(app_dict[category])) else: raise KeyError("{} not a KBase app category".format(category)) return app_dict