2222cli = typer .Typer (add_completion = False , pretty_exceptions_enable = False )
2323
2424
25- # Get the config.
26- config = get_config ()
27-
28-
2925def version (value : bool ):
3026 """Get the Reflex version.
3127
@@ -58,13 +54,19 @@ def main(
5854def _init (
5955 name : str ,
6056 template : str | None = None ,
61- loglevel : constants .LogLevel = config . loglevel ,
57+ loglevel : constants .LogLevel | None = None ,
6258 ai : bool = False ,
6359):
6460 """Initialize a new Reflex app in the given directory."""
6561 from reflex .utils import exec , prerequisites
6662
63+ if loglevel is not None :
64+ console .set_log_level (loglevel )
65+
66+ config = get_config ()
67+
6768 # Set the log level.
69+ loglevel = loglevel or config .loglevel
6870 console .set_log_level (loglevel )
6971
7072 # Show system info
@@ -109,8 +111,8 @@ def init(
109111 None ,
110112 help = "The template to initialize the app with." ,
111113 ),
112- loglevel : constants .LogLevel = typer .Option (
113- config . loglevel , help = "The log level to use."
114+ loglevel : constants .LogLevel | None = typer .Option (
115+ None , help = "The log level to use."
114116 ),
115117 ai : bool = typer .Option (
116118 False ,
@@ -127,12 +129,20 @@ def _run(
127129 backend : bool = True ,
128130 frontend_port : int | None = None ,
129131 backend_port : int | None = None ,
130- backend_host : str = config . backend_host ,
131- loglevel : constants .LogLevel = config . loglevel ,
132+ backend_host : str | None = None ,
133+ loglevel : constants .LogLevel | None = None ,
132134):
133135 """Run the app in the given directory."""
134136 from reflex .utils import build , exec , prerequisites , processes
135137
138+ if loglevel is not None :
139+ console .set_log_level (loglevel )
140+
141+ config = get_config ()
142+
143+ loglevel = loglevel or config .loglevel
144+ backend_host = backend_host or config .backend_host
145+
136146 # Set the log level.
137147 console .set_log_level (loglevel )
138148
@@ -274,28 +284,36 @@ def run(
274284 help = "Execute only backend." ,
275285 envvar = environment .REFLEX_BACKEND_ONLY .name ,
276286 ),
277- frontend_port : int = typer .Option (
278- config . frontend_port ,
287+ frontend_port : int | None = typer .Option (
288+ None ,
279289 help = "Specify a different frontend port." ,
280290 envvar = environment .REFLEX_FRONTEND_PORT .name ,
281291 ),
282- backend_port : int = typer .Option (
283- config . backend_port ,
292+ backend_port : int | None = typer .Option (
293+ None ,
284294 help = "Specify a different backend port." ,
285295 envvar = environment .REFLEX_BACKEND_PORT .name ,
286296 ),
287- backend_host : str = typer .Option (
288- config .backend_host , help = "Specify the backend host."
289- ),
290- loglevel : constants .LogLevel = typer .Option (
291- config .loglevel , help = "The log level to use."
297+ backend_host : str | None = typer .Option (None , help = "Specify the backend host." ),
298+ loglevel : constants .LogLevel | None = typer .Option (
299+ None , help = "The log level to use."
292300 ),
293301):
294302 """Run the app in the current directory."""
295303 if frontend and backend :
296304 console .error ("Cannot use both --frontend-only and --backend-only options." )
297305 raise typer .Exit (1 )
298306
307+ if loglevel is not None :
308+ console .set_log_level (loglevel )
309+
310+ config = get_config ()
311+
312+ frontend_port = frontend_port or config .frontend_port
313+ backend_port = backend_port or config .backend_port
314+ backend_host = backend_host or config .backend_host
315+ loglevel = loglevel or config .loglevel
316+
299317 environment .REFLEX_COMPILE_CONTEXT .set (constants .CompileContext .RUN )
300318 environment .REFLEX_BACKEND_ONLY .set (backend )
301319 environment .REFLEX_FRONTEND_ONLY .set (frontend )
@@ -335,8 +353,8 @@ def export(
335353 env : constants .Env = typer .Option (
336354 constants .Env .PROD , help = "The environment to export the app in."
337355 ),
338- loglevel : constants .LogLevel = typer .Option (
339- config . loglevel , help = "The log level to use."
356+ loglevel : constants .LogLevel | None = typer .Option (
357+ None , help = "The log level to use."
340358 ),
341359):
342360 """Export the app to a zip file."""
@@ -347,8 +365,11 @@ def export(
347365
348366 frontend , backend = prerequisites .check_running_mode (frontend , backend )
349367
368+ loglevel = loglevel or get_config ().loglevel
369+ console .set_log_level (loglevel )
370+
350371 if prerequisites .needs_reinit (frontend = frontend or not backend ):
351- _init (name = config .app_name , loglevel = loglevel )
372+ _init (name = get_config () .app_name , loglevel = loglevel )
352373
353374 export_utils .export (
354375 zipping = zipping ,
@@ -362,10 +383,14 @@ def export(
362383
363384
364385@cli .command ()
365- def login (loglevel : constants .LogLevel = typer .Option (config . loglevel )):
386+ def login (loglevel : constants .LogLevel | None = typer .Option (None )):
366387 """Authenticate with experimental Reflex hosting service."""
367388 from reflex_cli .v2 import cli as hosting_cli
368389
390+ loglevel = loglevel or get_config ().loglevel
391+
392+ console .set_log_level (loglevel )
393+
369394 check_version ()
370395
371396 validated_info = hosting_cli .login ()
@@ -376,15 +401,17 @@ def login(loglevel: constants.LogLevel = typer.Option(config.loglevel)):
376401
377402@cli .command ()
378403def logout (
379- loglevel : constants .LogLevel = typer .Option (
380- config . loglevel , help = "The log level to use."
404+ loglevel : constants .LogLevel | None = typer .Option (
405+ None , help = "The log level to use."
381406 ),
382407):
383408 """Log out of access to Reflex hosting service."""
384409 from reflex_cli .v2 .cli import logout
385410
386411 check_version ()
387412
413+ loglevel = loglevel or get_config ().loglevel
414+
388415 logout (loglevel ) # pyright: ignore [reportArgumentType]
389416
390417
@@ -403,6 +430,8 @@ def db_init():
403430 from reflex import model
404431 from reflex .utils import prerequisites
405432
433+ config = get_config ()
434+
406435 # Check the database url.
407436 if config .db_url is None :
408437 console .error ("db_url is not configured, cannot initialize." )
@@ -470,8 +499,8 @@ def makemigrations(
470499
471500@cli .command ()
472501def deploy (
473- app_name : str = typer .Option (
474- config . app_name ,
502+ app_name : str | None = typer .Option (
503+ None ,
475504 "--app-name" ,
476505 help = "The name of the App to deploy under." ,
477506 ),
@@ -510,8 +539,8 @@ def deploy(
510539 "--envfile" ,
511540 help = "The path to an env file to use. Will override any envs set manually." ,
512541 ),
513- loglevel : constants .LogLevel = typer .Option (
514- config . loglevel , help = "The log level to use."
542+ loglevel : constants .LogLevel | None = typer .Option (
543+ None , help = "The log level to use."
515544 ),
516545 project : str | None = typer .Option (
517546 None ,
@@ -542,6 +571,14 @@ def deploy(
542571 from reflex .utils import export as export_utils
543572 from reflex .utils import prerequisites
544573
574+ if loglevel is not None :
575+ console .set_log_level (loglevel )
576+
577+ config = get_config ()
578+
579+ loglevel = loglevel or config .loglevel
580+ app_name = app_name or config .app_name
581+
545582 check_version ()
546583
547584 environment .REFLEX_COMPILE_CONTEXT .set (constants .CompileContext .DEPLOY )
@@ -608,13 +645,15 @@ def convert_reflex_loglevel_to_reflex_cli_loglevel(
608645@cli .command ()
609646def rename (
610647 new_name : str = typer .Argument (..., help = "The new name for the app." ),
611- loglevel : constants .LogLevel = typer .Option (
612- config . loglevel , help = "The log level to use."
648+ loglevel : constants .LogLevel | None = typer .Option (
649+ None , help = "The log level to use."
613650 ),
614651):
615652 """Rename the app in the current directory."""
616653 from reflex .utils import prerequisites
617654
655+ loglevel = loglevel or get_config ().loglevel
656+
618657 prerequisites .validate_app_name (new_name )
619658 prerequisites .rename_app (new_name , loglevel )
620659
0 commit comments