Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

change loglevel and fix granian on linux #4012

Merged
merged 3 commits into from
Sep 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion reflex/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ class Config:
app_name: str

# The log level to use.
loglevel: constants.LogLevel = constants.LogLevel.INFO
loglevel: constants.LogLevel = constants.LogLevel.DEFAULT

# The port to run the frontend on. NOTE: When running in dev mode, the next available port will be used if this is taken.
frontend_port: int = constants.DefaultPorts.FRONTEND_PORT
Expand Down
1 change: 1 addition & 0 deletions reflex/constants/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ class LogLevel(str, Enum):
"""The log levels."""

DEBUG = "debug"
DEFAULT = "default"
INFO = "info"
WARNING = "warning"
ERROR = "error"
Expand Down
20 changes: 18 additions & 2 deletions reflex/reflex.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@

from reflex import constants
from reflex.config import get_config
from reflex.constants.base import LogLevel
from reflex.custom_components.custom_components import custom_components_cli
from reflex.state import reset_disk_state_manager
from reflex.utils import console, redir, telemetry
Expand Down Expand Up @@ -245,15 +246,30 @@ def _run(
setup_frontend(Path.cwd())
commands.append((frontend_cmd, Path.cwd(), frontend_port, backend))

# If no loglevel is specified, set the subprocesses loglevel to WARNING.
subprocesses_loglevel = (
loglevel if loglevel != LogLevel.DEFAULT else LogLevel.WARNING
)

# In prod mode, run the backend on a separate thread.
if backend and env == constants.Env.PROD:
commands.append((backend_cmd, backend_host, backend_port, loglevel, frontend))
commands.append(
(
backend_cmd,
backend_host,
backend_port,
subprocesses_loglevel,
frontend,
)
)

# Start the frontend and backend.
with processes.run_concurrently_context(*commands):
# In dev mode, run the backend on the main thread.
if backend and env == constants.Env.DEV:
backend_cmd(backend_host, int(backend_port), loglevel, frontend)
backend_cmd(
backend_host, int(backend_port), subprocesses_loglevel, frontend
)
# The windows uvicorn bug workaround
# https://github.com/reflex-dev/reflex/issues/2335
if constants.IS_WINDOWS and exec.frontend_process:
Expand Down
11 changes: 8 additions & 3 deletions reflex/utils/exec.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

from reflex import constants
from reflex.config import get_config
from reflex.constants.base import LogLevel
from reflex.utils import console, path_ops
from reflex.utils.prerequisites import get_web_dir

Expand Down Expand Up @@ -201,7 +202,11 @@ def get_granian_target():
Returns:
The Granian target for the backend.
"""
return get_app_module() + f".{constants.CompileVars.API}"
import reflex

app_module_path = Path(reflex.__file__).parent / "app_module_for_backend.py"

return f"{str(app_module_path)}:{constants.CompileVars.APP}.{constants.CompileVars.API}"


def run_backend(
Expand Down Expand Up @@ -233,7 +238,7 @@ def run_backend(
run_uvicorn_backend(host, port, loglevel)


def run_uvicorn_backend(host, port, loglevel):
def run_uvicorn_backend(host, port, loglevel: LogLevel):
"""Run the backend in development mode using Uvicorn.

Args:
Expand All @@ -253,7 +258,7 @@ def run_uvicorn_backend(host, port, loglevel):
)


def run_granian_backend(host, port, loglevel):
def run_granian_backend(host, port, loglevel: LogLevel):
"""Run the backend in development mode using Granian.

Args:
Expand Down
Loading