From 2ba62a6d633a0955d8e6e6a78d7494bdf033ec8f Mon Sep 17 00:00:00 2001 From: Khaleel Al-Adhami Date: Fri, 1 Nov 2024 15:19:08 -0700 Subject: [PATCH] add escape hatch --- reflex/utils/exec.py | 6 ++++-- reflex/utils/prerequisites.py | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/reflex/utils/exec.py b/reflex/utils/exec.py index bdc9be4ae..467c5fa2c 100644 --- a/reflex/utils/exec.py +++ b/reflex/utils/exec.py @@ -467,9 +467,11 @@ def output_system_info(): console.debug(f"{dep}") console.debug( - f"Using package installer at: {prerequisites.get_install_package_manager()}" # type: ignore + f"Using package installer at: {prerequisites.get_install_package_manager(on_failure_return_none=True)}" # type: ignore ) - console.debug(f"Using package executer at: {prerequisites.get_package_manager()}") # type: ignore + console.debug( + f"Using package executer at: {prerequisites.get_package_manager(on_failure_return_none=True)}" + ) # type: ignore if system != "Windows": console.debug(f"Unzip path: {path_ops.which('unzip')}") diff --git a/reflex/utils/prerequisites.py b/reflex/utils/prerequisites.py index 5d4fbeb50..771245f76 100644 --- a/reflex/utils/prerequisites.py +++ b/reflex/utils/prerequisites.py @@ -204,7 +204,7 @@ def get_bun_version() -> version.Version | None: return None -def get_install_package_manager() -> str: +def get_install_package_manager(on_failure_return_none: bool = False) -> str | None: """Get the package manager executable for installation. Currently, bun is used for installation only. @@ -217,11 +217,11 @@ def get_install_package_manager() -> str: or windows_check_onedrive_in_path() or windows_npm_escape_hatch() ): - return get_package_manager() + return get_package_manager(on_failure_return_none) return str(get_config().bun_path) -def get_package_manager() -> str: +def get_package_manager(on_failure_return_none: bool = False) -> str | None: """Get the package manager executable for running app. Currently on unix systems, npm is used for running the app only. @@ -234,6 +234,8 @@ def get_package_manager() -> str: npm_path = path_ops.get_npm_path() if npm_path is not None: npm_path = str(Path(npm_path).resolve()) + if on_failure_return_none: + return None raise FileNotFoundError("NPM not found. You may need to run `reflex init`.")