2
0
mirror of https://github.com/frappe/bench.git synced 2024-11-16 01:57:08 +00:00

feat(minor): Bench.python property that points to env python

This commit is contained in:
Gavin D'souza 2021-11-26 11:54:32 +05:30
parent 27128c7c18
commit d63a9883e0
3 changed files with 18 additions and 21 deletions

View File

@ -181,8 +181,7 @@ class App(AppMeta):
@step(title="Uninstalling App {repo}", success="App {repo} Uninstalled")
def uninstall(self):
env_python = get_env_cmd("python", bench_path=self.bench.name)
self.bench.run(f"{env_python} -m pip uninstall -y {self.repo}")
self.bench.run(f"{self.bench.python} -m pip uninstall -y {self.repo}")
def add_to_appstxt(app, bench_path="."):
@ -355,12 +354,11 @@ def install_app(
bench = Bench(bench_path)
conf = bench.conf
python_path = get_env_cmd("python", bench_path=bench_path)
quiet_flag = "-q" if not verbose else ""
quiet_flag = "" if verbose else "-q"
app_path = os.path.realpath(os.path.join(bench_path, "apps", app))
cache_flag = "--no-cache-dir" if no_cache else ""
bench.run(f"{python_path} -m pip install {quiet_flag} -U -e {app_path} {cache_flag}")
bench.run(f"{bench.python} -m pip install {quiet_flag} -U -e {app_path} {cache_flag}")
if conf.get("developer_mode"):
install_python_dev_dependencies(apps=app)

View File

@ -4,7 +4,7 @@ import os
import shutil
import sys
import logging
from typing import MutableSequence, TYPE_CHECKING
from typing import List, MutableSequence, TYPE_CHECKING
# imports - module imports
import bench
@ -63,18 +63,21 @@ class Bench(Base, Validator):
self.excluded_apps_txt = os.path.join(self.name, "sites", "excluded_apps.txt")
@property
def shallow_clone(self):
def python(self) -> str:
return get_env_cmd("python", bench_path=self.name)
@property
def shallow_clone(self) -> bool:
config = self.conf
if config:
if config.get("release_bench") or not config.get("shallow_clone"):
return False
if get_git_version() > 1.9:
return True
return get_git_version() > 1.9
@property
def excluded_apps(self):
def excluded_apps(self) -> List:
try:
with open(self.excluded_apps_txt) as f:
return f.read().strip().split("\n")
@ -82,7 +85,7 @@ class Bench(Base, Validator):
return []
@property
def sites(self):
def sites(self) -> List:
return [
path
for path in os.listdir(os.path.join(self.name, "sites"))
@ -146,11 +149,10 @@ class BenchApps(MutableSequence):
return f.write("\n".join(self.apps))
def initialize_apps(self):
cmd = f"{get_env_cmd('python', bench_path=self.bench.name)} -m pip freeze"
is_installed = lambda app: app in installed_packages
try:
installed_packages = get_cmd_output(cmd=cmd, cwd=self.bench.name)
installed_packages = get_cmd_output(f"{self.bench.python} -m pip freeze", cwd=self.bench.name)
except Exception:
self.apps = []
return
@ -232,16 +234,15 @@ class BenchSetup(Base):
- install frappe python dependencies
"""
frappe = os.path.join(self.bench.name, "apps", "frappe")
env_python = get_env_cmd("python", bench_path=self.bench.name)
virtualenv = get_venv_path()
if not os.path.exists(env_python):
if not os.path.exists(self.bench.python):
self.run(f"{virtualenv} -q env -p {python}")
self.run(f"{env_python} -m pip install -q -U pip")
self.run(f"{self.bench.python} -m pip install -U pip")
if os.path.exists(frappe):
self.run(f"{env_python} -m pip install -q -U -e {frappe}")
self.run(f"{self.bench.python} -m pip install -U -e {frappe}")
@step(title="Setting Up Bench Config", success="Bench Config Set Up")
def config(self, redis=True, procfile=True):

View File

@ -77,7 +77,6 @@ def update_python_packages(bench_path="."):
from bench.bench import Bench
bench = Bench(bench_path)
env_py = get_env_cmd("python", bench_path=bench.name)
apps = [app for app in bench.apps if app not in bench.excluded_apps]
apps.remove("frappe")
@ -89,7 +88,7 @@ def update_python_packages(bench_path="."):
for app in apps:
app_path = os.path.join(bench_path, "apps", app)
click.secho(f"\nInstalling python dependencies for {app}", fg="yellow")
bench.run(f"{env_py} -m pip install -q -U -e {app_path}")
bench.run(f"{bench.python} -m pip install -U -e {app_path}")
def update_node_packages(bench_path="."):
@ -117,13 +116,12 @@ def install_python_dev_dependencies(bench_path=".", apps=None):
elif apps is None:
apps = [app for app in bench.apps if app not in bench.excluded_apps]
env_py = get_env_cmd("python")
for app in apps:
app_path = os.path.join(bench_path, "apps", app)
dev_requirements_path = os.path.join(app_path, "dev-requirements.txt")
if os.path.exists(dev_requirements_path):
bench.run(f"{env_py} -m pip install -q -r {dev_requirements_path}")
bench.run(f"{bench.python} -m pip install -r {dev_requirements_path}")
def update_yarn_packages(bench_path="."):