From 9b449fdfeddc96fae2930eba94b37e9b006645ec Mon Sep 17 00:00:00 2001 From: Jarek Potiuk Date: Tue, 5 Nov 2024 19:06:58 +0100 Subject: [PATCH] Handle FileNotFound Error returned by missing uv or pipx (#43714) Subprocess.run raises FileNotFound when uv or pipx are not installed at all. This PR will handle it. (cherry picked from commit ed3accb30086b9ed5eddcd12b17a5f7c8d52d53b) --- .../src/airflow_breeze/utils/reinstall.py | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/dev/breeze/src/airflow_breeze/utils/reinstall.py b/dev/breeze/src/airflow_breeze/utils/reinstall.py index 6fdf994c6e91c..4030235e68e81 100644 --- a/dev/breeze/src/airflow_breeze/utils/reinstall.py +++ b/dev/breeze/src/airflow_breeze/utils/reinstall.py @@ -39,14 +39,20 @@ def reinstall_breeze(breeze_sources: Path, re_run: bool = True): get_console().print(f"\n[info]Reinstalling Breeze from {breeze_sources}\n") breeze_installed_with_uv = False breeze_installed_with_pipx = False - result_uv = subprocess.run(["uv", "tool", "list"], text=True, capture_output=True, check=False) - if result_uv.returncode == 0: - if "apache-airflow-breeze" in result_uv.stdout: - breeze_installed_with_uv = True - result_pipx = subprocess.run(["pipx", "list"], text=True, capture_output=True, check=False) - if result_pipx.returncode == 0: - if "apache-airflow-breeze" in result_pipx.stdout: - breeze_installed_with_pipx = True + try: + result_uv = subprocess.run(["uv", "tool", "list"], text=True, capture_output=True, check=False) + if result_uv.returncode == 0: + if "apache-airflow-breeze" in result_uv.stdout: + breeze_installed_with_uv = True + except FileNotFoundError: + pass + try: + result_pipx = subprocess.run(["pipx", "list"], text=True, capture_output=True, check=False) + if result_pipx.returncode == 0: + if "apache-airflow-breeze" in result_pipx.stdout: + breeze_installed_with_pipx = True + except FileNotFoundError: + pass if breeze_installed_with_uv and breeze_installed_with_pipx: get_console().print( "[error]Breeze is installed both with `uv` and `pipx`. This is not supported.[/]\n"