This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 987c50a0ae9 BUG Update `initialise_virtualenv.py` to use `uv sync` 
(#44096)
987c50a0ae9 is described below

commit 987c50a0ae9baffe3dfffdb0d1710679c732f990
Author: Success Moses <[email protected]>
AuthorDate: Sun Nov 17 10:39:29 2024 +0100

    BUG Update `initialise_virtualenv.py` to use `uv sync` (#44096)
    
    * Update initialse_virtualenv.py to use uv sync
    
    * fixup! Update initialse_virtualenv.py to use uv sync
    
    ---------
    
    Co-authored-by: Jarek Potiuk <[email protected]>
---
 scripts/tools/initialize_virtualenv.py | 32 ++++++++++++++------------------
 1 file changed, 14 insertions(+), 18 deletions(-)

diff --git a/scripts/tools/initialize_virtualenv.py 
b/scripts/tools/initialize_virtualenv.py
index 1058a21af2d..f78a2dab40b 100755
--- a/scripts/tools/initialize_virtualenv.py
+++ b/scripts/tools/initialize_virtualenv.py
@@ -55,7 +55,7 @@ def check_for_package_extras() -> str:
     return "devel"
 
 
-def pip_install_requirements() -> int:
+def uv_install_requirements() -> int:
     """
     install the requirements of the current python version.
     return 0 if success, anything else is an error.
@@ -88,16 +88,12 @@ system packages. It's easier to install extras one-by-one 
as needed.
 
 """
     )
-    version = get_python_version()
-    constraint = (
-        f"https://raw.githubusercontent.com/apache/airflow/constraints-main/";
-        f"constraints-source-providers-{version}.txt"
-    )
-    pip_install_command = ["pip", "install", "-e", f".[{extras}]", 
"--constraint", constraint]
-    quoted_command = " ".join([shlex.quote(parameter) for parameter in 
pip_install_command])
+    extra_param = [x for extra in extras.split(",") for x in ("--extra", 
extra)]
+    uv_install_command = ["uv", "sync"] + extra_param
+    quoted_command = " ".join([shlex.quote(parameter) for parameter in 
uv_install_command])
     print()
     print(f"Running command: \n   {quoted_command}\n")
-    e = subprocess.run(pip_install_command)
+    e = subprocess.run(uv_install_command)
     return e.returncode
 
 
@@ -107,7 +103,8 @@ def get_python_version() -> str:
     """
     major = sys.version_info[0]
     minor = sys.version_info[1]
-    return f"{major}.{minor}"
+    micro = sys.version_info[2]
+    return f"{major}.{minor}.{micro}"
 
 
 def main():
@@ -118,11 +115,10 @@ def main():
     airflow_sources = Path(__file__).resolve().parents[2]
 
     if not check_if_in_virtualenv():
-        print(
-            "Local virtual environment not activated.\nPlease create and 
activate it "
-            "first. (for example using 'python3 -m venv venv && source 
venv/bin/activate')"
-        )
-        sys.exit(1)
+        version = get_python_version()
+        e = subprocess.run(["uv", "venv", "--python", version])
+        if e.returncode != 0:
+            print(f"There was a problem with 'uv venv'. Error code: 
{e.returncode}")
 
     print("Initializing environment...")
     print(f"This will remove the folder {airflow_home_dir} and reset all the 
databases!")
@@ -144,7 +140,7 @@ def main():
 
     clean_up_airflow_home(airflow_home_dir)
 
-    return_code = pip_install_requirements()
+    return_code = uv_install_requirements()
 
     if return_code != 0:
         print(
@@ -172,7 +168,7 @@ def main():
     env["AIRFLOW__DATABASE__SQL_ALCHEMY_POOL_ENABLED"] = "False"
     env["AIRFLOW__CORE__DAGS_FOLDER"] = f"{airflow_sources}/empty"
     env["AIRFLOW__CORE__PLUGINS_FOLDER"] = f"{airflow_sources}/empty"
-    subprocess.run(["airflow", "db", "reset", "--yes"], env=env)
+    subprocess.run(["uv", "run", "airflow", "db", "reset", "--yes"], env=env)
 
     print("\nResetting AIRFLOW sqlite unit test database...")
     env = os.environ.copy()
@@ -181,7 +177,7 @@ def main():
     env["AIRFLOW__DATABASE__SQL_ALCHEMY_POOL_ENABLED"] = "False"
     env["AIRFLOW__CORE__DAGS_FOLDER"] = f"{airflow_sources}/empty"
     env["AIRFLOW__CORE__PLUGINS_FOLDER"] = f"{airflow_sources}/empty"
-    subprocess.run(["airflow", "db", "reset", "--yes"], env=env)
+    subprocess.run(["uv", "run", "airflow", "db", "reset", "--yes"], env=env)
 
     print("\nInitialization of environment complete! Go ahead and develop 
Airflow!")
 

Reply via email to