When __REFLEX_SKIP_COMPILE == "yes" allow telemetry to fail (#2881)
* When __REFLEX_SKIP_COMPILE == "yes" allow telemetry to fail Allow running `--backend-only` without a .web directory * When re-initializing a pre-project_hash project, do not blow up on KeyError
This commit is contained in:
parent
f446d063fb
commit
7debd3dbb9
@ -77,7 +77,7 @@ from reflex.state import (
|
||||
code_uses_state_contexts,
|
||||
)
|
||||
from reflex.utils import console, exceptions, format, prerequisites, types
|
||||
from reflex.utils.exec import is_testing_env
|
||||
from reflex.utils.exec import is_testing_env, should_skip_compile
|
||||
from reflex.utils.imports import ImportVar
|
||||
|
||||
# Define custom types.
|
||||
@ -672,7 +672,7 @@ class App(Base):
|
||||
Whether the app should be compiled.
|
||||
"""
|
||||
# Check the environment variable.
|
||||
if os.environ.get(constants.SKIP_COMPILE_ENV_VAR) == "yes":
|
||||
if should_skip_compile():
|
||||
return False
|
||||
|
||||
# Check the nocompile file.
|
||||
|
@ -307,3 +307,12 @@ def is_prod_mode() -> bool:
|
||||
constants.Env.DEV.value,
|
||||
)
|
||||
return current_mode == constants.Env.PROD.value
|
||||
|
||||
|
||||
def should_skip_compile() -> bool:
|
||||
"""Whether the app should skip compile.
|
||||
|
||||
Returns:
|
||||
True if the app should skip compile.
|
||||
"""
|
||||
return os.environ.get(constants.SKIP_COMPILE_ENV_VAR) == "yes"
|
||||
|
@ -448,7 +448,7 @@ def get_project_hash(raise_on_fail: bool = False) -> int | None:
|
||||
# Open and read the file
|
||||
with open(constants.Reflex.JSON, "r") as file:
|
||||
data = json.load(file)
|
||||
return data["project_hash"]
|
||||
return data.get("project_hash")
|
||||
|
||||
|
||||
def initialize_web_directory():
|
||||
|
@ -11,6 +11,7 @@ import psutil
|
||||
|
||||
from reflex import constants
|
||||
from reflex.utils import console
|
||||
from reflex.utils.exec import should_skip_compile
|
||||
from reflex.utils.prerequisites import ensure_reflex_installation_id, get_project_hash
|
||||
|
||||
POSTHOG_API_URL: str = "https://app.posthog.com/capture/"
|
||||
@ -64,6 +65,22 @@ def get_memory() -> int:
|
||||
return 0
|
||||
|
||||
|
||||
def _raise_on_missing_project_hash() -> bool:
|
||||
"""Check if an error should be raised when project hash is missing.
|
||||
|
||||
When running reflex with --backend-only, or doing database migration
|
||||
operations, there is no requirement for a .web directory, so the reflex.json
|
||||
file may not exist, and this should not be considered an error.
|
||||
|
||||
Returns:
|
||||
False when compilation should be skipped (i.e. no .web directory is required).
|
||||
Otherwise return True.
|
||||
"""
|
||||
if should_skip_compile():
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
def _prepare_event(event: str) -> dict:
|
||||
"""Prepare the event to be sent to the PostHog server.
|
||||
|
||||
@ -74,7 +91,7 @@ def _prepare_event(event: str) -> dict:
|
||||
The event data.
|
||||
"""
|
||||
installation_id = ensure_reflex_installation_id()
|
||||
project_hash = get_project_hash(raise_on_fail=True)
|
||||
project_hash = get_project_hash(raise_on_fail=_raise_on_missing_project_hash())
|
||||
|
||||
if installation_id is None or project_hash is None:
|
||||
console.debug(
|
||||
|
Loading…
Reference in New Issue
Block a user