add more fields

This commit is contained in:
Khaleel Al-Adhami 2024-10-16 17:47:01 -07:00
parent a9b7c284e7
commit b7fdb1dfa8
2 changed files with 31 additions and 6 deletions

View File

@ -64,7 +64,7 @@ from reflex.components.core.client_side_routing import (
)
from reflex.components.core.upload import Upload, get_upload_dir
from reflex.components.radix import themes
from reflex.config import get_config
from reflex.config import environment, get_config
from reflex.event import Event, EventHandler, EventSpec, window_alert
from reflex.model import Model, get_db_status
from reflex.page import (
@ -957,15 +957,16 @@ class App(MiddlewareMixin, LifespanMixin, Base):
executor = None
if (
platform.system() in ("Linux", "Darwin")
and os.environ.get("REFLEX_COMPILE_PROCESSES") is not None
and (number_of_processes := environment.REFLEX_COMPILE_PROCESSES)
is not None
):
executor = concurrent.futures.ProcessPoolExecutor(
max_workers=int(os.environ.get("REFLEX_COMPILE_PROCESSES", 0)) or None,
max_workers=number_of_processes,
mp_context=multiprocessing.get_context("fork"),
)
else:
executor = concurrent.futures.ThreadPoolExecutor(
max_workers=int(os.environ.get("REFLEX_COMPILE_THREADS", 0)) or None,
max_workers=environment.REFLEX_COMPILE_THREADS
)
with executor:

View File

@ -180,6 +180,24 @@ def interpret_boolean_env(value: str) -> bool:
raise ValueError(f"Invalid boolean value: {value}")
def interpret_int_env(value: str) -> int:
"""Interpret an integer environment variable value.
Args:
value: The environment variable value.
Returns:
The interpreted value.
Raises:
ValueError: If the value is invalid.
"""
try:
return int(value)
except ValueError as ve:
raise ValueError(f"Invalid integer value: {value}") from ve
def interpret_path_env(value: str) -> Path:
"""Interpret a path environment variable value.
@ -209,10 +227,10 @@ def interpret_env_var_value(value: str, field: dataclasses.Field) -> Any:
if field_type is bool:
return interpret_boolean_env(value)
elif field_type is str:
return value
elif field_type is int:
return interpret_int_env(value)
elif field_type is Path:
return interpret_path_env(value)
@ -259,6 +277,12 @@ class EnvironmentVariables:
# The directory to store uploaded files.
REFLEX_UPLOADED_FILES_DIR: Path = Path(constants.Dirs.UPLOADED_FILES)
# Whether to use seperate processes to compile the frontend and how many. If not set, defaults to thread executor.
REFLEX_COMPILE_PROCESSES: Optional[int] = None
# Whether to use seperate threads to compile the frontend and how many. Defaults to `min(32, os.cpu_count() + 4)`.
REFLEX_COMPILE_THREADS: Optional[int] = None
def __init__(self):
"""Initialize the environment variables."""
type_hints = get_type_hints(type(self))