@@ -25,14 +25,35 @@ def install_version(version: Version) -> None:
25
25
26
26
pyra_dir = os .path .join (utils .get_documents_dir (), "pyra" )
27
27
28
- _install_python_dependencies (pyra_dir , version )
28
+ _uninstall_current_python_dependencies (pyra_dir , version )
29
+ _install_new_python_dependencies (pyra_dir , version )
29
30
_run_ui_installer (pyra_dir , version )
30
31
_update_pyra_cli_pointer (pyra_dir , version )
31
32
_add_pyra_cli_to_env_path (pyra_dir )
32
33
_add_pyra_dir_desktop_shortcut (pyra_dir , version )
33
34
34
35
35
- def _install_python_dependencies (pyra_dir : str , version : Version ) -> None :
36
+ def _uninstall_current_python_dependencies (pyra_dir : str , version : Version ) -> None :
37
+ """install system dependencies with pip"""
38
+
39
+ code_dir = os .path .join (pyra_dir , f"pyra-{ version .as_str ()} " )
40
+ out = utils .run_shell_command ("pip freeze" , cwd = code_dir , silent = True )
41
+ installed_packages : list [str ] = []
42
+ for line in out .split ("\n " ):
43
+ if "==" in line :
44
+ package_name = line .split ("==" )[0 ]
45
+ installed_packages .append (package_name )
46
+ elif " @ " in line :
47
+ package_name = line .split (" @ " )[0 ]
48
+ installed_packages .append (package_name )
49
+ if "pip" in installed_packages :
50
+ installed_packages .remove ("pip" )
51
+ utils .run_shell_command (
52
+ f"pip uninstall -y { ' ' .join (installed_packages )} " , cwd = code_dir , silent = False
53
+ )
54
+
55
+
56
+ def _install_new_python_dependencies (pyra_dir : str , version : Version ) -> None :
36
57
"""install system dependencies with pip"""
37
58
38
59
code_dir = os .path .join (pyra_dir , f"pyra-{ version .as_str ()} " )
@@ -45,9 +66,6 @@ def _install_python_dependencies(pyra_dir: str, version: Version) -> None:
45
66
46
67
utils .run_shell_command ("pip install -r requirements.txt" , cwd = code_dir , silent = False )
47
68
else :
48
- utils .run_shell_command (
49
- "pip uninstall poetry polars polars-lts-cpu --yes" , cwd = code_dir , silent = False
50
- )
51
69
utils .run_shell_command ("pip install ." , cwd = code_dir , silent = False )
52
70
utils .pretty_print ("Installed code dependencies" , color = "green" )
53
71
0 commit comments