from importlib import import_module
import os
_dict_class = {}
_dict_keyname = {}
current_dir = os.path.dirname(os.path.abspath(__file__))
excluded_files = ['__init__.py', 'database.py']
list_module_names = [filename.split('.')[0] for filename in os.listdir(current_dir) if (filename not in excluded_files) and filename.endswith('.py')]
for module_name in list_module_names:
class_name = module_name
module = import_module('evidence.reference.'+module_name)
keyname=getattr(module, 'keyname')
alternative_keynames=getattr(module, 'alternative_keynames')
_dict_class[keyname]=getattr(module, class_name)
locals()[class_name]=getattr(module, class_name)
_dict_keyname[keyname]=keyname
for other_keyname in alternative_keynames:
_dict_keyname[other_keyname]=keyname
del(current_dir, excluded_files, list_module_names, class_name, module)
[docs]def add_database(database=None, name=None, id=None, web=None, webid=None, info=None):
if name is not None:
from evidence.reference.database import DataBase
def __init__database(self, id=None):
self.id = id
class_name = database.replace(' ', '_')
new_class = type(class_name, (DataBase, ), {
"__init__": __init__database,
"database": database,
"name": name,
"web":web,
"webid":webid,
"info": info
})
_dict_class[database] = new_class
_dict_keyname[database] = database
locals()[class_name] = new_class
[docs]def Reference(reference):
from evidence._private.reference import digest_reference
return digest_reference(reference)