diff --git a/openbb_sdk/sdk/core/openbb_core/app/charting_manager.py b/openbb_sdk/sdk/core/openbb_core/app/charting_manager.py index 93eee1342c8..5c101219dd9 100644 --- a/openbb_sdk/sdk/core/openbb_core/app/charting_manager.py +++ b/openbb_sdk/sdk/core/openbb_core/app/charting_manager.py @@ -1,7 +1,7 @@ from importlib import import_module from typing import Callable, Generic, Optional, Tuple, TypeVar -import importlib_metadata +from importlib_metadata import entry_points from openbb_core.app.model.abstract.singleton import SingletonMeta from openbb_core.app.model.charts.chart import Chart, ChartFormat @@ -87,8 +87,7 @@ class ChartingManager(metaclass=SingletonMeta): bool Either charting extension is installed or not. """ - entry_points = importlib_metadata.entry_points(group=plugin) - extensions = [ext.name for ext in entry_points] + extensions = [ext.name for ext in entry_points(group=plugin)] return charting_extension in extensions @@ -99,7 +98,7 @@ class ChartingManager(metaclass=SingletonMeta): """ Get the module of the given extension. """ - for entry_point in importlib_metadata.entry_points(group=plugin): + for entry_point in entry_points(group=plugin): if entry_point.name == extension_name: return import_module(entry_point.module) diff --git a/openbb_sdk/sdk/core/openbb_core/app/router.py b/openbb_sdk/sdk/core/openbb_core/app/router.py index ee7c1919ed9..b51aeb401ed 100644 --- a/openbb_sdk/sdk/core/openbb_core/app/router.py +++ b/openbb_sdk/sdk/core/openbb_core/app/router.py @@ -16,8 +16,8 @@ from typing import ( overload, ) -import importlib_metadata from fastapi import APIRouter, Depends +from importlib_metadata import entry_points from pydantic import BaseModel from pydantic.config import BaseConfig from pydantic.validators import find_validators @@ -441,9 +441,7 @@ class RouterLoader: def from_extensions() -> Router: router = Router() - for entry_point in importlib_metadata.entry_points( - group="openbb_core_extension" - ): + for entry_point in entry_points(group="openbb_core_extension"): try: router.include_router( router=entry_point.load(), prefix=f"/{entry_point.name}" diff --git a/openbb_sdk/sdk/provider/openbb_provider/registry.py b/openbb_sdk/sdk/provider/openbb_provider/registry.py index 4699076ba83..665dff03cb7 100644 --- a/openbb_sdk/sdk/provider/openbb_provider/registry.py +++ b/openbb_sdk/sdk/provider/openbb_provider/registry.py @@ -2,7 +2,7 @@ from typing import Dict -import importlib_metadata +from importlib_metadata import entry_points from openbb_provider.abstract.provider import Provider @@ -37,12 +37,10 @@ class RegistryLoader: def from_extensions() -> Registry: """Load providers from entry points.""" registry = Registry() - for entry_point in importlib_metadata.entry_points( - group="openbb_provider_extension" - ): + for entry_point in sorted(entry_points(group="openbb_provider_extension")): try: registry.include_provider( - provider=entry_point.load(), + provider=entry_point.load() ) except Exception as e: raise LoadingError(f"Invalid provider '{entry_point.name}': {e}") from e