From d5773c4513435b8d5ad8bbfd0dd0ccdce9e8c50d Mon Sep 17 00:00:00 2001 From: Sylvain Brunato Date: Mon, 13 Nov 2023 20:03:17 +0100 Subject: [PATCH] fix: plugin manager rebuild --- eodag/api/core.py | 8 +++----- eodag/plugins/manager.py | 6 ++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/eodag/api/core.py b/eodag/api/core.py index 152f033af..28a67c4d1 100644 --- a/eodag/api/core.py +++ b/eodag/api/core.py @@ -129,10 +129,8 @@ def __init__(self, user_conf_file_path=None, locations_conf_path=None): for provider in self.providers_config.keys(): provider_config_init(self.providers_config[provider], stac_provider_config) - # re-create _plugins_manager using up-to-date providers_config - self._plugins_manager = PluginManager(self.providers_config) - # use updated and checked providers_config - self.providers_config = self._plugins_manager.providers_config + # re-build _plugins_manager using up-to-date providers_config + self._plugins_manager.rebuild(self.providers_config) # store pruned providers configs self._pruned_providers_config = {} @@ -420,7 +418,7 @@ def _prune_providers_list(self): if update_needed: # rebuild _plugins_manager with updated providers list - self._plugins_manager = PluginManager(self.providers_config) + self._plugins_manager.rebuild(self.providers_config) def set_locations_conf(self, locations_conf_path): """Set locations configuration. diff --git a/eodag/plugins/manager.py b/eodag/plugins/manager.py index 2d5c79636..b48043723 100644 --- a/eodag/plugins/manager.py +++ b/eodag/plugins/manager.py @@ -95,6 +95,12 @@ def __init__(self, providers_config): ) merge_configs(plugin_providers_config, self.providers_config) self.providers_config = plugin_providers_config + self.rebuild() + + def rebuild(self, providers_config=None): + """(Re)Build plugin manager mapping and cache""" + if providers_config is not None: + self.providers_config = providers_config self.build_product_type_to_provider_config_map() self._built_plugins_cache = {}