33import subprocess
44import sys
55
6+ from pathlib import Path
67from subprocess import CalledProcessError
78from typing import TYPE_CHECKING
89
910from poetry_plugin_bundle .bundlers .bundler import Bundler
1011
1112
1213if TYPE_CHECKING :
13- from pathlib import Path
14-
1514 from cleo .io .io import IO
1615 from cleo .io .outputs .section_output import SectionOutput
1716 from poetry .core .constraints .version import Version
@@ -32,7 +31,7 @@ def set_path(self, path: Path) -> VenvBundler:
3231
3332 return self
3433
35- def set_executable (self , executable : str ) -> VenvBundler :
34+ def set_executable (self , executable : str | None ) -> VenvBundler :
3635 self ._executable = executable
3736
3837 return self
@@ -65,10 +64,10 @@ def bundle(self, poetry: Poetry, io: IO) -> bool:
6564 warnings = []
6665
6766 manager = EnvManager (poetry )
68- executable = self ._executable
69- if self ._executable is not None :
67+ if self ._executable :
7068 executable , python_version = self ._get_executable_info (self ._executable )
7169 else :
70+ executable = None
7271 version_info = SystemEnv (Path (sys .prefix )).get_version_info ()
7372 python_version = Version .parse ("." .join (str (v ) for v in version_info [:3 ]))
7473
@@ -93,7 +92,7 @@ def bundle(self, poetry: Poetry, io: IO) -> bool:
9392 io , f"{ message } : <info>Removing existing virtual environment</info>"
9493 )
9594
96- manager .remove_venv (str ( self ._path ) )
95+ manager .remove_venv (self ._path )
9796
9897 self ._write (
9998 io ,
@@ -103,7 +102,7 @@ def bundle(self, poetry: Poetry, io: IO) -> bool:
103102 ),
104103 )
105104
106- manager .build_venv (str ( self ._path ) , executable = executable )
105+ manager .build_venv (self ._path , executable = executable )
107106 else :
108107 self ._write (
109108 io , f"{ message } : <info>Using existing virtual environment</info>"
@@ -117,7 +116,7 @@ def bundle(self, poetry: Poetry, io: IO) -> bool:
117116 ),
118117 )
119118
120- manager .build_venv (str ( self ._path ) , executable = executable )
119+ manager .build_venv (self ._path , executable = executable )
121120
122121 env = VirtualEnv (self ._path )
123122
@@ -134,10 +133,6 @@ def bundle(self, poetry: Poetry, io: IO) -> bool:
134133 if self ._activated_groups is not None :
135134 installer .only_groups (self ._activated_groups )
136135 installer .requires_synchronization ()
137- use_executor = poetry .config .get ("experimental.new-installer" , False )
138- if not use_executor :
139- # only set if false because the method is deprecated
140- installer .use_executor (False )
141136
142137 return_code = installer .run ()
143138 if return_code :
@@ -214,7 +209,7 @@ def _write(self, io: IO | SectionOutput, message: str) -> None:
214209
215210 io .overwrite (message )
216211
217- def _get_executable_info (self , executable : str ) -> tuple [str , Version ]:
212+ def _get_executable_info (self , executable : str ) -> tuple [Path , Version ]:
218213 from poetry .core .constraints .version import Version
219214
220215 try :
@@ -244,4 +239,4 @@ def _get_executable_info(self, executable: str) -> tuple[str, Version]:
244239
245240 python_version = Version .parse (python_version_str .strip ())
246241
247- return executable , python_version
242+ return Path ( executable ) , python_version
0 commit comments