mirror of
https://github.com/rio-labs/rio.git
synced 2026-05-12 22:38:55 -05:00
fix safe_build crashing due to missing import
This commit is contained in:
+1
-20
@@ -30,25 +30,6 @@ __all__ = [
|
||||
]
|
||||
|
||||
|
||||
def _validate_build_function(
|
||||
build_function: Callable[[], rio.Component],
|
||||
) -> Callable[[], rio.Component]:
|
||||
assert callable(
|
||||
build_function
|
||||
), f"The App requires a function that returns a component, not {build_function!r}"
|
||||
|
||||
def wrapper():
|
||||
component = build_function()
|
||||
|
||||
assert isinstance(
|
||||
component, rio.Component
|
||||
), f"The `build` function passed to the App must return a `Component` instance, not {component!r}."
|
||||
|
||||
return component
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
def make_default_connection_lost_component() -> rio.Component:
|
||||
class DefaultConnectionLostComponent(rio.Component):
|
||||
def build(self) -> rio.Component:
|
||||
@@ -250,7 +231,7 @@ class App:
|
||||
self.assets_dir = main_file.parent / assets_dir
|
||||
|
||||
self.name = name
|
||||
self._build = _validate_build_function(build)
|
||||
self._build = build
|
||||
self._icon = assets.Asset.from_image(icon)
|
||||
self.pages = tuple(pages)
|
||||
self._on_app_start = on_app_start
|
||||
|
||||
+8
-4
@@ -312,9 +312,10 @@ def safe_build(build_function: Callable[[], rio.Component]) -> rio.Component:
|
||||
build_function_repr = _repr_build_function(build_function)
|
||||
|
||||
rio._logger.exception(f"An exception occurred in `{build_function_repr}`")
|
||||
return rio.components.build_failed.BuildFailed(
|
||||
f"`{build_function_repr}` has crashed", repr(err)
|
||||
)
|
||||
|
||||
from rio.components.build_failed import BuildFailed # Screw circular imports
|
||||
|
||||
return BuildFailed(f"`{build_function_repr}` has crashed", repr(err))
|
||||
|
||||
# Make sure the result meets expectations
|
||||
if not isinstance(build_result, rio.Component): # type: ignore[unnecessary-isinstance]
|
||||
@@ -324,7 +325,10 @@ def safe_build(build_function: Callable[[], rio.Component]) -> rio.Component:
|
||||
f"The output of `build` methods must be instances of"
|
||||
f" `rio.Component`, but `{build_function_repr}` returned `{build_result!r}`"
|
||||
)
|
||||
return rio.components.build_failed.BuildFailed(
|
||||
|
||||
from rio.components.build_failed import BuildFailed # Screw circular imports
|
||||
|
||||
return BuildFailed(
|
||||
f"`{build_function_repr}` has returned an invalid result",
|
||||
f"Build functions must return instances of `rio.Component`, but the result was {build_result!r}",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user