diff --git a/bin/bundle-extensions b/bin/bundle-extensions index ce0e30085..4d0d006bc 100755 --- a/bin/bundle-extensions +++ b/bin/bundle-extensions @@ -65,7 +65,18 @@ def load_bundles(): """ bundles = odict() - for entry_point in importlib_metadata.entry_points().get("redash.bundles", []): + # HACK: + # bin/bundle-extensions is tested in different versions. + # circleci frontend-unit-tests: python 3.5 and importlib-metadata-2.1.3 + # circleci backend-unit-tests: python 3.7 and importlib-metadata-5.0.0 + if importlib_metadata.version("importlib_metadata") >= "5.0.0": + bundles_entry_points = importlib_metadata.entry_points(group="redash.bundles") + else: + bundles_entry_points = importlib_metadata.entry_points().get( + "redash.bundles", [] + ) + + for entry_point in bundles_entry_points: logger.info('Loading Redash bundle "%s".', entry_point.name) module = entry_point_module(entry_point) # Try to get a list of bundle files diff --git a/redash/extensions.py b/redash/extensions.py index 56452d1d1..f3a79dcfb 100644 --- a/redash/extensions.py +++ b/redash/extensions.py @@ -27,7 +27,7 @@ def entry_point_loader(group_name, mapping, logger=None, *args, **kwargs): if logger is None: logger = extension_logger - for entry_point in entry_points().get(group_name, []): + for entry_point in entry_points(group=group_name): logger.info('Loading entry point "%s".', entry_point.name) try: # Then try to load the entry point (import and getattr)