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,
|
code_uses_state_contexts,
|
||||||
)
|
)
|
||||||
from reflex.utils import console, exceptions, format, prerequisites, types
|
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
|
from reflex.utils.imports import ImportVar
|
||||||
|
|
||||||
# Define custom types.
|
# Define custom types.
|
||||||
@ -672,7 +672,7 @@ class App(Base):
|
|||||||
Whether the app should be compiled.
|
Whether the app should be compiled.
|
||||||
"""
|
"""
|
||||||
# Check the environment variable.
|
# Check the environment variable.
|
||||||
if os.environ.get(constants.SKIP_COMPILE_ENV_VAR) == "yes":
|
if should_skip_compile():
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Check the nocompile file.
|
# Check the nocompile file.
|
||||||
|
@ -307,3 +307,12 @@ def is_prod_mode() -> bool:
|
|||||||
constants.Env.DEV.value,
|
constants.Env.DEV.value,
|
||||||
)
|
)
|
||||||
return current_mode == constants.Env.PROD.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
|
# Open and read the file
|
||||||
with open(constants.Reflex.JSON, "r") as file:
|
with open(constants.Reflex.JSON, "r") as file:
|
||||||
data = json.load(file)
|
data = json.load(file)
|
||||||
return data["project_hash"]
|
return data.get("project_hash")
|
||||||
|
|
||||||
|
|
||||||
def initialize_web_directory():
|
def initialize_web_directory():
|
||||||
|
@ -11,6 +11,7 @@ import psutil
|
|||||||
|
|
||||||
from reflex import constants
|
from reflex import constants
|
||||||
from reflex.utils import console
|
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
|
from reflex.utils.prerequisites import ensure_reflex_installation_id, get_project_hash
|
||||||
|
|
||||||
POSTHOG_API_URL: str = "https://app.posthog.com/capture/"
|
POSTHOG_API_URL: str = "https://app.posthog.com/capture/"
|
||||||
@ -64,6 +65,22 @@ def get_memory() -> int:
|
|||||||
return 0
|
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:
|
def _prepare_event(event: str) -> dict:
|
||||||
"""Prepare the event to be sent to the PostHog server.
|
"""Prepare the event to be sent to the PostHog server.
|
||||||
|
|
||||||
@ -74,7 +91,7 @@ def _prepare_event(event: str) -> dict:
|
|||||||
The event data.
|
The event data.
|
||||||
"""
|
"""
|
||||||
installation_id = ensure_reflex_installation_id()
|
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:
|
if installation_id is None or project_hash is None:
|
||||||
console.debug(
|
console.debug(
|
||||||
|
Loading…
Reference in New Issue
Block a user