浏览代码

Expose reflex.utils.exec.is_prod_mode

Formalize runtime checking of the app's `--env` parameter.
Masen Furer 1 年之前
父节点
当前提交
2ffe4e0d78
共有 5 个文件被更改,包括 20 次插入2 次删除
  1. 2 1
      reflex/compiler/compiler.py
  2. 1 0
      reflex/constants/__init__.py
  3. 3 0
      reflex/constants/base.py
  4. 1 1
      reflex/reflex.py
  5. 13 0
      reflex/utils/exec.py

+ 2 - 1
reflex/compiler/compiler.py

@@ -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:

+ 1 - 0
reflex/constants/__init__.py

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

+ 3 - 0
reflex/constants/base.py

@@ -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"

+ 1 - 1
reflex/reflex.py

@@ -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()

+ 13 - 0
reflex/utils/exec.py

@@ -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