67 lines
2.4 KiB
Python
Raw Normal View History

2012-04-16 13:19:40 +02:00
# -*- coding: utf-8 -*-
"""
/***************************************************************************
Name : DB Manager
2013-06-09 18:28:52 +02:00
Description : Database manager plugin for QGIS
2012-04-16 13:19:40 +02:00
Date : May 23, 2011
copyright : (C) 2011 by Giuseppe Sucameli
email : brush.tyler@gmail.com
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
"""
class NotSupportedDbType(Exception):
def __init__(self, dbtype):
self.msg = self.tr("%s is not supported yet") % dbtype
Exception(self, self.msg)
2012-04-16 13:19:40 +02:00
def __str__(self):
return self.msg.encode('utf-8')
2012-04-16 13:19:40 +02:00
def initDbPluginList():
import os
current_dir = os.path.dirname(__file__)
for name in os.listdir(current_dir):
if not os.path.isdir( os.path.join( current_dir, name ) ):
continue
2012-04-16 13:19:40 +02:00
try:
exec( u"from .%s import plugin as mod" % name )
except ImportError, e:
DBPLUGIN_ERRORS.append( u"%s: %s" % (name, e.message) )
continue
2012-04-16 13:19:40 +02:00
pluginclass = mod.classFactory()
SUPPORTED_DBTYPES[ pluginclass.typeName() ] = pluginclass
2012-04-16 13:19:40 +02:00
return len(SUPPORTED_DBTYPES) > 0
2012-04-16 13:19:40 +02:00
def supportedDbTypes():
return sorted(SUPPORTED_DBTYPES.keys())
2012-04-16 13:19:40 +02:00
def getDbPluginErrors():
return DBPLUGIN_ERRORS
2012-04-16 13:19:40 +02:00
def createDbPlugin(dbtype, conn_name=None):
if dbtype not in SUPPORTED_DBTYPES:
raise NotSupportedDbType( dbtype )
dbplugin = SUPPORTED_DBTYPES[ dbtype ]
return dbplugin if conn_name is None else dbplugin(conn_name)
2012-04-16 13:19:40 +02:00
# initialize the plugin list
SUPPORTED_DBTYPES = {}
DBPLUGIN_ERRORS = []
initDbPluginList()