change coverage separator

This commit is contained in:
Diogo Sousa
2023-08-01 19:11:44 +01:00
parent 5a17d06e67
commit f09d14871d
3 changed files with 35 additions and 15 deletions

View File

@@ -313,11 +313,15 @@ class SignatureInspector:
class CommandMap:
"""Matching Routes with Commands."""
def __init__(self, router: Optional[Router] = None) -> None:
def __init__(
self, router: Optional[Router] = None, sep: Optional[str] = None
) -> None:
self._router = router or RouterLoader.from_extensions()
self._map = self.get_command_map(router=self._router)
self._provider_coverage = self.get_provider_coverage(router=self._router)
self._command_coverage = self.get_command_coverage(router=self._router)
self._map = self.get_command_map(router=self._router, sep=sep)
self._provider_coverage = self.get_provider_coverage(
router=self._router, sep=sep
)
self._command_coverage = self.get_command_coverage(router=self._router, sep=sep)
@property
def map(self) -> Dict[str, Callable]:
@@ -332,13 +336,22 @@ class CommandMap:
return self._command_coverage
@staticmethod
def get_command_map(router: Router) -> Dict[str, Callable]:
def get_command_map(
router: Router, sep: Optional[str] = None
) -> Dict[str, Callable]:
api_router = router.api_router
command_map = {route.path: route.endpoint for route in api_router.routes} # type: ignore
if sep is None:
command_map = {route.path: route.endpoint for route in api_router.routes} # type: ignore
else:
command_map = {
route.path.replace("/", sep): route.endpoint for route in api_router.routes # type: ignore
}
return command_map
@staticmethod
def get_provider_coverage(router: Router) -> Dict[str, List[str]]:
def get_provider_coverage(
router: Router, sep: Optional[str] = None
) -> Dict[str, List[str]]:
api_router = router.api_router
mapping = get_provider_interface().map
@@ -356,12 +369,19 @@ class CommandMap:
if provider not in coverage_map:
coverage_map[provider] = []
if hasattr(route, "path"):
coverage_map[provider].append(route.path)
rp = (
route.path
if sep is None
else route.path.replace("/", sep)
)
coverage_map[provider].append(rp)
return coverage_map
@staticmethod
def get_command_coverage(router: Router) -> Dict[str, List[str]]:
def get_command_coverage(
router: Router, sep: Optional[str] = None
) -> Dict[str, List[str]]:
api_router = router.api_router
mapping = get_provider_interface().map
@@ -377,9 +397,10 @@ class CommandMap:
providers.remove("openbb")
if hasattr(route, "path"):
rp = route.path if sep is None else route.path.replace("/", sep)
if route.path not in coverage_map:
coverage_map[route.path] = []
coverage_map[route.path] = providers
coverage_map[rp] = []
coverage_map[rp] = providers
return coverage_map
def get_command(self, route: str) -> Optional[Callable]:

View File

@@ -3,12 +3,12 @@ from openbb_core.app.router import CommandMap
class Coverage:
def __init__(self):
self.__command_map = CommandMap()
self._command_map = CommandMap(sep=".")
@property
def providers(self):
return self.__command_map.provider_coverage
return self._command_map.provider_coverage
@property
def commands(self):
return self.__command_map.command_coverage
return self._command_map.command_coverage

View File

@@ -1,7 +1,6 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
from openbb_core.app.static.container import Container