mirror of
https://github.com/frappe/bench.git
synced 2024-11-13 16:56:33 +00:00
perf: Avoid use of glob for fetching python executable
glob on env/**/bin is slowest operation in terms of overhead on CLI.
This commit is contained in:
parent
7c64aa3d94
commit
8db23dd230
@ -32,8 +32,13 @@ logger = logging.getLogger(bench.PROJECT_NAME)
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def get_env_cmd(cmd: str, bench_path: str = ".") -> str:
|
||||
# this supports envs' generated by patched virtualenv or venv (which may cause an extra 'local' folder to be created)
|
||||
exact_location = os.path.abspath(
|
||||
os.path.join(bench_path, "env", "bin", cmd.strip("*"))
|
||||
)
|
||||
if os.path.exists(exact_location):
|
||||
return exact_location
|
||||
|
||||
# this supports envs' generated by patched virtualenv or venv (which may cause an extra 'local' folder to be created)
|
||||
existing_python_bins = glob(
|
||||
os.path.join(bench_path, "env", "**", "bin", cmd), recursive=True
|
||||
)
|
||||
@ -41,8 +46,7 @@ def get_env_cmd(cmd: str, bench_path: str = ".") -> str:
|
||||
if existing_python_bins:
|
||||
return os.path.abspath(existing_python_bins[0])
|
||||
|
||||
cmd = cmd.strip("*")
|
||||
return os.path.abspath(os.path.join(bench_path, "env", "bin", cmd))
|
||||
return exact_location
|
||||
|
||||
|
||||
def get_venv_path(verbose=False, python="python3"):
|
||||
|
Loading…
Reference in New Issue
Block a user