23 import importlib.machinery
28 __modules_path = os.path.dirname(os.path.realpath(__file__))
30 __modules = (__load_driver(driver)
for driver
in os.listdir(__modules_path))
32 __modules = (d
for d
in __modules
if d)
44 if type(__modules)
is not list:
45 __modules = list(__modules)
48 __available = [d.ahioDriverInfo.NAME
50 if d.ahioDriverInfo.AVAILABLE]
65 driver = __locate_driver_named(name)
66 return driver.ahioDriverInfo
if driver
else None 79 driver = __locate_driver_named(name)
80 return driver.Driver()
if driver
else None 92 def __load_driver(name):
94 mod_name =
'ahio.drivers.' + name.replace(
'.py',
'')
95 driver_path = __modules_path +
'/' + name
96 loader = importlib.machinery.SourceFileLoader(mod_name, driver_path)
97 driver = loader.load_module()
98 return driver
if hasattr(driver,
'ahioDriverInfo')
else False 108 def __locate_driver_named(name):
111 if type(__modules)
is not list:
112 __modules = list(__modules)
114 ms = [d
for d
in __modules
if d.ahioDriverInfo.NAME == name]
def new_driver_object(name)
Instantiates a new object of the named driver.
def available_drivers()
Returns a list of available drivers names.
def driver_info(name)
Returns driver metadata.