def find_driver(self, adapter_args, uri=None):
self.adapter_args = adapter_args
if getattr(self, 'driver', None) != None:
return
drivers_available = [driver for driver in self.drivers
if driver in globals()]
if uri:
items = uri.split('://', 1)[0].split(':')
request_driver = items[1] if len(items) > 1 else None
else:
request_driver = None
request_driver = request_driver or adapter_args.get('driver')
if request_driver:
if request_driver in drivers_available:
self.driver_name = request_driver
self.driver = globals().get(request_driver)
else:
raise RuntimeError("driver %s not available" % request_driver)
elif drivers_available:
self.driver_name = drivers_available[0]
self.driver = globals().get(self.driver_name)
else:
raise RuntimeError("no driver available %s" % str(self.drivers))
评论列表
文章目录