Disabling Output Validation
You might want to disable output type checking and validation entirely.
important
This section refers to settings available beginning OpenBB v4.4.0
In boths endpoints of the example, the output will be typed as "Any" regardless of what the return definition states.
Within the @router.command decorator, add the keyword argument:
no_validate = True
Example
This example assumes that ficticious extensions have been defined and installed.
from datetime import datetime
from openbb_core.app.model.command_context import CommandContext
from openbb_core.app.model.example import APIEx, PythonEx
from openbb_core.app.model.obbject import OBBject
from openbb_core.app.provider_interface import (
ExtraParams,
ProviderChoices,
StandardParams,
)
from openbb_core.app.query import Query
from openbb_core.app.router import Router
from openbb_core.provider.abstract.data import Data
router = Router(prefix="", description="Some OpenBB Router Extension.")
# This uses the Provider Interface.
@router.command(
model="SomeModel",
no_validate=True,
examples=[
APIEx(parameters={"provider": "some_provider"}),
PythonEx(
description="Say Hello.",
code=[
"result = obb.some_extension.some_provider_function()",
],
),
],
)
async def some_provider_function(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject[Data]:
"""Some function using the Provider Interface."""
obbject = await OBBject.from_query(Query(**locals()))
new_output = []
results = obbject.results
# Do something with results and append to `new_output` list.
return new_output
# This is a standard router "get" command.
@router.command(
methods=["GET"],
no_validate=True
examples=[
PythonEx(
description="Say Hello.",
code=[
"result = obb.some_extension.hello()",
],
),
],
)
async def hello() -> (
Any
):
"""Hello World."""
return {
datetime.now().strftime(
"%Y-%m-%d"
): "Hello from the Empty Router extension!"
}
tip
If you are building Provider and Router extensions that are generating errors from openbb-build,
try setting no_validate=True.