From 7f7d1ed7daae43b0bd06415d1847bf75ef024f5e Mon Sep 17 00:00:00 2001 From: Tom Kralidis Date: Tue, 10 Apr 2018 21:10:48 +0000 Subject: [PATCH] support external plugins --- pygeoapi/provider/__init__.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pygeoapi/provider/__init__.py b/pygeoapi/provider/__init__.py index f2e2a28..4ae5a98 100644 --- a/pygeoapi/provider/__init__.py +++ b/pygeoapi/provider/__init__.py @@ -52,14 +52,18 @@ def load_provider(provider_def): LOGGER.debug('Providers: {}'.format(PROVIDERS)) - name = provider_def['name'] + pname = provider_def['name'] - if name not in PROVIDERS.keys(): - msg = 'Provider {} not found'.format(name) + if '.' not in pname and pname not in PROVIDERS.keys(): + msg = 'Provider {} not found'.format(pname) LOGGER.exception(msg) raise InvalidProviderError(msg) - packagename, classname = PROVIDERS[name].rsplit('.', 1) + if '.' in pname: # dotted path + packagename, classname = pname.rsplit('.', 1) + else: # core provider + packagename, classname = PROVIDERS[pname].rsplit('.', 1) + LOGGER.debug('package name: {}'.format(packagename)) LOGGER.debug('class name: {}'.format(classname))