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):
|
fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
--exclude="ui_*.py,debian/*,python/ext-libs/*" \
.
2015-02-01 14:15:42 +01:00
|
|
|
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
|
|
|
|
fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
--exclude="ui_*.py,debian/*,python/ext-libs/*" \
.
2015-02-01 14:15:42 +01:00
|
|
|
def __str__(self):
|
|
|
|
return self.msg.encode('utf-8')
|
2012-04-16 13:19:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
def initDbPluginList():
|
fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
--exclude="ui_*.py,debian/*,python/ext-libs/*" \
.
2015-02-01 14:15:42 +01:00
|
|
|
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
|
|
|
|
fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
--exclude="ui_*.py,debian/*,python/ext-libs/*" \
.
2015-02-01 14:15:42 +01: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
|
|
|
|
fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
--exclude="ui_*.py,debian/*,python/ext-libs/*" \
.
2015-02-01 14:15:42 +01:00
|
|
|
pluginclass = mod.classFactory()
|
|
|
|
SUPPORTED_DBTYPES[ pluginclass.typeName() ] = pluginclass
|
2012-04-16 13:19:40 +02:00
|
|
|
|
fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
--exclude="ui_*.py,debian/*,python/ext-libs/*" \
.
2015-02-01 14:15:42 +01:00
|
|
|
return len(SUPPORTED_DBTYPES) > 0
|
2012-04-16 13:19:40 +02:00
|
|
|
|
|
|
|
def supportedDbTypes():
|
fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
--exclude="ui_*.py,debian/*,python/ext-libs/*" \
.
2015-02-01 14:15:42 +01:00
|
|
|
return sorted(SUPPORTED_DBTYPES.keys())
|
2012-04-16 13:19:40 +02:00
|
|
|
|
|
|
|
def getDbPluginErrors():
|
fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
--exclude="ui_*.py,debian/*,python/ext-libs/*" \
.
2015-02-01 14:15:42 +01:00
|
|
|
return DBPLUGIN_ERRORS
|
2012-04-16 13:19:40 +02:00
|
|
|
|
|
|
|
def createDbPlugin(dbtype, conn_name=None):
|
fix python pep8 warnings and fix some revealed errors
pep8 --ignore=E111,E128,E201,E202,E203,E211,E221,E222,E225,E226,E227,E231,E241,E261,E265,E272,E302,E303,E501,E701 \
--exclude="ui_*.py,debian/*,python/ext-libs/*" \
.
2015-02-01 14:15:42 +01:00
|
|
|
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()
|