"""
Finds and stores APIs in the 'api_lib' global variable
"""
import pkgutil, inspect, traceback
from athena import api_library
api_lib = None
[docs]def find_apis():
""" Find APIs """
global api_lib
api_lib = {}
print('~ Looking for APIs in: '+str(api_library.__path__).replace('\\\\', '\\')[1:-1])
for finder, name, _ in pkgutil.iter_modules(api_library.__path__):
try:
file = finder.find_module(name).load_module(name)
for member in dir(file):
obj = getattr(file, member)
if inspect.isclass(obj):
for parent in obj.__bases__:
if 'Api' is parent.__name__:
api = obj()
api_lib[api.key] = api
except Exception as e:
print(traceback.format_exc())
print('\n~ Error loading \''+name+'\' '+str(e))
[docs]def verify_apis(user):
""" Verify APIs """
global api_lib
api_lib = dict(item for item in api_lib.items() if item[1].verify_data(user))
[docs]def list_apis():
""" List APIs """
global api_lib
print('\n~ APIs: ', end='')
print(str(list(api_lib.keys()))[1:-1]+'\n')