Source code for lcc.db_tier.stars_provider
from lcc.data_manager.package_reader import PackageReader
[docs]class StarsProvider(object):
'''
Stars provider is an interface between end-user and database connectors. All
database connectors have to inherit `StarsCatalog` class.
Attributes
----------
STARS_PROVIDER : dict
'''
STARS_PROVIDERS = PackageReader().getClassesDict("connectors")
@classmethod
[docs] def getProvider(self, obtain_method, obtain_params):
'''
Get database connector via name of its class
Parameters
-----------
obtain_method : str
Name of connector class
obtain_params : list of dicts
List of queries
Returns
--------
instance
Constructed database connector or uninstanced if there is
no queries
'''
if obtain_method not in self.STARS_PROVIDERS:
raise AttributeError(
"Unresolved stars provider\nAvaible stars providers: %s" % self.STARS_PROVIDERS.keys())
provider = self.STARS_PROVIDERS[obtain_method]
if len(obtain_params) == 0:
return provider
return provider(obtain_params)