|
@@ -22,10 +22,6 @@ typer.core.rich = None # pyright: ignore [reportPrivateImportUsage]
|
|
|
cli = typer.Typer(add_completion=False, pretty_exceptions_enable=False)
|
|
|
|
|
|
|
|
|
-# Get the config.
|
|
|
-config = get_config()
|
|
|
-
|
|
|
-
|
|
|
def version(value: bool):
|
|
|
"""Get the Reflex version.
|
|
|
|
|
@@ -58,13 +54,19 @@ def main(
|
|
|
def _init(
|
|
|
name: str,
|
|
|
template: str | None = None,
|
|
|
- loglevel: constants.LogLevel = config.loglevel,
|
|
|
+ loglevel: constants.LogLevel | None = None,
|
|
|
ai: bool = False,
|
|
|
):
|
|
|
"""Initialize a new Reflex app in the given directory."""
|
|
|
from reflex.utils import exec, prerequisites
|
|
|
|
|
|
+ if loglevel is not None:
|
|
|
+ console.set_log_level(loglevel)
|
|
|
+
|
|
|
+ config = get_config()
|
|
|
+
|
|
|
# Set the log level.
|
|
|
+ loglevel = loglevel or config.loglevel
|
|
|
console.set_log_level(loglevel)
|
|
|
|
|
|
# Show system info
|
|
@@ -109,8 +111,8 @@ def init(
|
|
|
None,
|
|
|
help="The template to initialize the app with.",
|
|
|
),
|
|
|
- loglevel: constants.LogLevel = typer.Option(
|
|
|
- config.loglevel, help="The log level to use."
|
|
|
+ loglevel: constants.LogLevel | None = typer.Option(
|
|
|
+ None, help="The log level to use."
|
|
|
),
|
|
|
ai: bool = typer.Option(
|
|
|
False,
|
|
@@ -127,12 +129,20 @@ def _run(
|
|
|
backend: bool = True,
|
|
|
frontend_port: int | None = None,
|
|
|
backend_port: int | None = None,
|
|
|
- backend_host: str = config.backend_host,
|
|
|
- loglevel: constants.LogLevel = config.loglevel,
|
|
|
+ backend_host: str | None = None,
|
|
|
+ loglevel: constants.LogLevel | None = None,
|
|
|
):
|
|
|
"""Run the app in the given directory."""
|
|
|
from reflex.utils import build, exec, prerequisites, processes
|
|
|
|
|
|
+ if loglevel is not None:
|
|
|
+ console.set_log_level(loglevel)
|
|
|
+
|
|
|
+ config = get_config()
|
|
|
+
|
|
|
+ loglevel = loglevel or config.loglevel
|
|
|
+ backend_host = backend_host or config.backend_host
|
|
|
+
|
|
|
# Set the log level.
|
|
|
console.set_log_level(loglevel)
|
|
|
|
|
@@ -274,21 +284,19 @@ def run(
|
|
|
help="Execute only backend.",
|
|
|
envvar=environment.REFLEX_BACKEND_ONLY.name,
|
|
|
),
|
|
|
- frontend_port: int = typer.Option(
|
|
|
- config.frontend_port,
|
|
|
+ frontend_port: int | None = typer.Option(
|
|
|
+ None,
|
|
|
help="Specify a different frontend port.",
|
|
|
envvar=environment.REFLEX_FRONTEND_PORT.name,
|
|
|
),
|
|
|
- backend_port: int = typer.Option(
|
|
|
- config.backend_port,
|
|
|
+ backend_port: int | None = typer.Option(
|
|
|
+ None,
|
|
|
help="Specify a different backend port.",
|
|
|
envvar=environment.REFLEX_BACKEND_PORT.name,
|
|
|
),
|
|
|
- backend_host: str = typer.Option(
|
|
|
- config.backend_host, help="Specify the backend host."
|
|
|
- ),
|
|
|
- loglevel: constants.LogLevel = typer.Option(
|
|
|
- config.loglevel, help="The log level to use."
|
|
|
+ backend_host: str | None = typer.Option(None, help="Specify the backend host."),
|
|
|
+ loglevel: constants.LogLevel | None = typer.Option(
|
|
|
+ None, help="The log level to use."
|
|
|
),
|
|
|
):
|
|
|
"""Run the app in the current directory."""
|
|
@@ -296,6 +304,16 @@ def run(
|
|
|
console.error("Cannot use both --frontend-only and --backend-only options.")
|
|
|
raise typer.Exit(1)
|
|
|
|
|
|
+ if loglevel is not None:
|
|
|
+ console.set_log_level(loglevel)
|
|
|
+
|
|
|
+ config = get_config()
|
|
|
+
|
|
|
+ frontend_port = frontend_port or config.frontend_port
|
|
|
+ backend_port = backend_port or config.backend_port
|
|
|
+ backend_host = backend_host or config.backend_host
|
|
|
+ loglevel = loglevel or config.loglevel
|
|
|
+
|
|
|
environment.REFLEX_COMPILE_CONTEXT.set(constants.CompileContext.RUN)
|
|
|
environment.REFLEX_BACKEND_ONLY.set(backend)
|
|
|
environment.REFLEX_FRONTEND_ONLY.set(frontend)
|
|
@@ -335,8 +353,8 @@ def export(
|
|
|
env: constants.Env = typer.Option(
|
|
|
constants.Env.PROD, help="The environment to export the app in."
|
|
|
),
|
|
|
- loglevel: constants.LogLevel = typer.Option(
|
|
|
- config.loglevel, help="The log level to use."
|
|
|
+ loglevel: constants.LogLevel | None = typer.Option(
|
|
|
+ None, help="The log level to use."
|
|
|
),
|
|
|
):
|
|
|
"""Export the app to a zip file."""
|
|
@@ -347,8 +365,11 @@ def export(
|
|
|
|
|
|
frontend, backend = prerequisites.check_running_mode(frontend, backend)
|
|
|
|
|
|
+ loglevel = loglevel or get_config().loglevel
|
|
|
+ console.set_log_level(loglevel)
|
|
|
+
|
|
|
if prerequisites.needs_reinit(frontend=frontend or not backend):
|
|
|
- _init(name=config.app_name, loglevel=loglevel)
|
|
|
+ _init(name=get_config().app_name, loglevel=loglevel)
|
|
|
|
|
|
export_utils.export(
|
|
|
zipping=zipping,
|
|
@@ -362,10 +383,14 @@ def export(
|
|
|
|
|
|
|
|
|
@cli.command()
|
|
|
-def login(loglevel: constants.LogLevel = typer.Option(config.loglevel)):
|
|
|
+def login(loglevel: constants.LogLevel | None = typer.Option(None)):
|
|
|
"""Authenticate with experimental Reflex hosting service."""
|
|
|
from reflex_cli.v2 import cli as hosting_cli
|
|
|
|
|
|
+ loglevel = loglevel or get_config().loglevel
|
|
|
+
|
|
|
+ console.set_log_level(loglevel)
|
|
|
+
|
|
|
check_version()
|
|
|
|
|
|
validated_info = hosting_cli.login()
|
|
@@ -376,8 +401,8 @@ def login(loglevel: constants.LogLevel = typer.Option(config.loglevel)):
|
|
|
|
|
|
@cli.command()
|
|
|
def logout(
|
|
|
- loglevel: constants.LogLevel = typer.Option(
|
|
|
- config.loglevel, help="The log level to use."
|
|
|
+ loglevel: constants.LogLevel | None = typer.Option(
|
|
|
+ None, help="The log level to use."
|
|
|
),
|
|
|
):
|
|
|
"""Log out of access to Reflex hosting service."""
|
|
@@ -385,6 +410,8 @@ def logout(
|
|
|
|
|
|
check_version()
|
|
|
|
|
|
+ loglevel = loglevel or get_config().loglevel
|
|
|
+
|
|
|
logout(loglevel) # pyright: ignore [reportArgumentType]
|
|
|
|
|
|
|
|
@@ -403,6 +430,8 @@ def db_init():
|
|
|
from reflex import model
|
|
|
from reflex.utils import prerequisites
|
|
|
|
|
|
+ config = get_config()
|
|
|
+
|
|
|
# Check the database url.
|
|
|
if config.db_url is None:
|
|
|
console.error("db_url is not configured, cannot initialize.")
|
|
@@ -470,8 +499,8 @@ def makemigrations(
|
|
|
|
|
|
@cli.command()
|
|
|
def deploy(
|
|
|
- app_name: str = typer.Option(
|
|
|
- config.app_name,
|
|
|
+ app_name: str | None = typer.Option(
|
|
|
+ None,
|
|
|
"--app-name",
|
|
|
help="The name of the App to deploy under.",
|
|
|
),
|
|
@@ -510,8 +539,8 @@ def deploy(
|
|
|
"--envfile",
|
|
|
help="The path to an env file to use. Will override any envs set manually.",
|
|
|
),
|
|
|
- loglevel: constants.LogLevel = typer.Option(
|
|
|
- config.loglevel, help="The log level to use."
|
|
|
+ loglevel: constants.LogLevel | None = typer.Option(
|
|
|
+ None, help="The log level to use."
|
|
|
),
|
|
|
project: str | None = typer.Option(
|
|
|
None,
|
|
@@ -542,6 +571,14 @@ def deploy(
|
|
|
from reflex.utils import export as export_utils
|
|
|
from reflex.utils import prerequisites
|
|
|
|
|
|
+ if loglevel is not None:
|
|
|
+ console.set_log_level(loglevel)
|
|
|
+
|
|
|
+ config = get_config()
|
|
|
+
|
|
|
+ loglevel = loglevel or config.loglevel
|
|
|
+ app_name = app_name or config.app_name
|
|
|
+
|
|
|
check_version()
|
|
|
|
|
|
environment.REFLEX_COMPILE_CONTEXT.set(constants.CompileContext.DEPLOY)
|
|
@@ -608,13 +645,15 @@ def deploy(
|
|
|
@cli.command()
|
|
|
def rename(
|
|
|
new_name: str = typer.Argument(..., help="The new name for the app."),
|
|
|
- loglevel: constants.LogLevel = typer.Option(
|
|
|
- config.loglevel, help="The log level to use."
|
|
|
+ loglevel: constants.LogLevel | None = typer.Option(
|
|
|
+ None, help="The log level to use."
|
|
|
),
|
|
|
):
|
|
|
"""Rename the app in the current directory."""
|
|
|
from reflex.utils import prerequisites
|
|
|
|
|
|
+ loglevel = loglevel or get_config().loglevel
|
|
|
+
|
|
|
prerequisites.validate_app_name(new_name)
|
|
|
prerequisites.rename_app(new_name, loglevel)
|
|
|
|