update behaviour for wrong state passed as argument (#1447)
This commit is contained in:
parent
e6f4bcdb95
commit
6bc622e67d
@ -108,6 +108,7 @@ class App(Base):
|
|||||||
"""
|
"""
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
state_subclasses = State.__subclasses__()
|
state_subclasses = State.__subclasses__()
|
||||||
|
inferred_state = state_subclasses[-1]
|
||||||
is_testing_env = constants.PYTEST_CURRENT_TEST in os.environ
|
is_testing_env = constants.PYTEST_CURRENT_TEST in os.environ
|
||||||
|
|
||||||
# Special case to allow test cases have multiple subclasses of rx.State.
|
# Special case to allow test cases have multiple subclasses of rx.State.
|
||||||
@ -117,13 +118,14 @@ class App(Base):
|
|||||||
raise ValueError(
|
raise ValueError(
|
||||||
"rx.State has been subclassed multiple times. Only one subclass is allowed"
|
"rx.State has been subclassed multiple times. Only one subclass is allowed"
|
||||||
)
|
)
|
||||||
if self.state != DefaultState:
|
|
||||||
console.deprecate(
|
|
||||||
"Passing the state as keyword argument to `rx.App` is deprecated. "
|
|
||||||
"The base state will automatically be inferred as the subclass of `rx.State`."
|
|
||||||
)
|
|
||||||
self.state = state_subclasses[-1]
|
|
||||||
|
|
||||||
|
# verify that provided state is valid
|
||||||
|
if self.state not in [DefaultState, inferred_state]:
|
||||||
|
console.warn(
|
||||||
|
f"Using substate ({self.state.__name__}) as root state in `rx.App` is currently not supported."
|
||||||
|
f" Defaulting to root state: ({inferred_state.__name__})"
|
||||||
|
)
|
||||||
|
self.state = inferred_state
|
||||||
# Get the config
|
# Get the config
|
||||||
config = get_config()
|
config = get_config()
|
||||||
|
|
||||||
|
@ -21,6 +21,15 @@ def deprecate(msg: str) -> None:
|
|||||||
_console.print(f"[yellow]DeprecationWarning: {msg}[/yellow]")
|
_console.print(f"[yellow]DeprecationWarning: {msg}[/yellow]")
|
||||||
|
|
||||||
|
|
||||||
|
def warn(msg: str) -> None:
|
||||||
|
"""Print a warning about bad usage in Reflex.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
msg: The warning message.
|
||||||
|
"""
|
||||||
|
_console.print(f"[orange1]UsageWarning: {msg}[/orange1]")
|
||||||
|
|
||||||
|
|
||||||
def log(msg: str) -> None:
|
def log(msg: str) -> None:
|
||||||
"""Takes a string and logs it to the console.
|
"""Takes a string and logs it to the console.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user