From 16e8b283b0fa53c9632738f291d37fd9cb528ffa Mon Sep 17 00:00:00 2001 From: Asgeir Nyvoll Date: Thu, 21 Jan 2021 21:12:09 +0100 Subject: [PATCH] Skip multiple version of plugin warning if the metadata is equal --- CHANGELOG.md | 4 ++++ webviz_config/plugins/_utils.py | 28 +++++++++++++++++++++------- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 566e7091..73af6e6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [#374](https://github.com/equinor/webviz-config/pull/374) - Removed Webviz SSL certificate generation and forcing of HTTPS connections. +### Fixed +- [#380](https://github.com/equinor/webviz-config/pull/380) - Don't write warning +for multiple versions of same plugin if the metadata is equal. + ## [0.2.7] - 2021-01-14 ### Changed diff --git a/webviz_config/plugins/_utils.py b/webviz_config/plugins/_utils.py index fbb19bfc..f860e669 100644 --- a/webviz_config/plugins/_utils.py +++ b/webviz_config/plugins/_utils.py @@ -39,6 +39,18 @@ def load_webviz_plugins_with_metadata( } if entry_point.name in metadata: + if metadata[entry_point.name] == PluginDistInfo( + { + "dist_name": dist.metadata["name"], + "dist_version": dist.version, + "documentation_url": project_urls.get("Documentation"), + "download_url": project_urls.get("Download"), + "tracker_url": project_urls.get("Tracker"), + } + ): + # May occur if folders in virtual environment are symlinked. + continue + warnings.warn( f"Multiple versions of plugin with name {entry_point.name}. " f"Already loaded from project {metadata[entry_point.name]['dist_name']}. " @@ -46,13 +58,15 @@ def load_webviz_plugins_with_metadata( RuntimeWarning, ) - metadata[entry_point.name] = { - "dist_name": dist.metadata["name"], - "dist_version": dist.version, - "documentation_url": project_urls.get("Documentation"), - "download_url": project_urls.get("Download"), - "tracker_url": project_urls.get("Tracker"), - } + metadata[entry_point.name] = PluginDistInfo( + { + "dist_name": dist.metadata["name"], + "dist_version": dist.version, + "documentation_url": project_urls.get("Documentation"), + "download_url": project_urls.get("Download"), + "tracker_url": project_urls.get("Tracker"), + } + ) loaded_plugins[entry_point.name] = entry_point.load()