Expose reflex.utils.exec.is_prod_mode

Formalize runtime checking of the app's `--env` parameter.
This commit is contained in:
Masen Furer 2024-03-01 11:06:29 -08:00
parent 7725c48fb7
commit 2ffe4e0d78
No known key found for this signature in database
GPG Key ID: B0008AD22B3B3A95
5 changed files with 20 additions and 2 deletions

View File

@ -18,6 +18,7 @@ from reflex.components.component import (
from reflex.config import get_config
from reflex.state import BaseState
from reflex.style import LIGHT_COLOR_MODE
from reflex.utils.exec import is_prod_mode
from reflex.utils.imports import ImportVar
@ -66,7 +67,7 @@ def _compile_theme(theme: dict) -> str:
def _is_dev_mode() -> bool:
return os.environ.get("REFLEX_ENV_MODE", "dev") == "dev"
return not is_prod_mode()
def _compile_contexts(state: Optional[Type[BaseState]], theme: Component) -> str:

View File

@ -2,6 +2,7 @@
from .base import (
COOKIES,
ENV_MODE_ENV_VAR,
IS_WINDOWS,
LOCAL_STORAGE,
POLLING_MAX_HTTP_BUFFER_SIZE,

View File

@ -183,6 +183,9 @@ LOCAL_STORAGE = "local_storage"
# If this env var is set to "yes", App.compile will be a no-op
SKIP_COMPILE_ENV_VAR = "__REFLEX_SKIP_COMPILE"
# This env var stores the execution mode of the app
ENV_MODE_ENV_VAR = "REFLEX_ENV_MODE"
# Testing variables.
# Testing os env set by pytest when running a test case.
PYTEST_CURRENT_TEST = "PYTEST_CURRENT_TEST"

View File

@ -151,7 +151,7 @@ def _run(
console.set_log_level(loglevel)
# Set env mode in the environment
os.environ["REFLEX_ENV_MODE"] = env.value
os.environ[constants.ENV_MODE_ENV_VAR] = env.value
# Show system info
exec.output_system_info()

View File

@ -294,3 +294,16 @@ def is_testing_env() -> bool:
True if the app is running in under pytest.
"""
return constants.PYTEST_CURRENT_TEST in os.environ
def is_prod_mode() -> bool:
"""Check if the app is running in production mode.
Returns:
True if the app is running in production mode or False if running in dev mode.
"""
current_mode = os.environ.get(
constants.ENV_MODE_ENV_VAR,
constants.Env.DEV.value,
)
return current_mode == constants.Env.PROD.value