fix: Optimize imports

This commit is contained in:
Gavin D'souza 2020-09-09 13:55:06 +05:30
parent 2d96a2c4cc
commit 3ced26c3e5

View file

@ -1,29 +1,17 @@
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# MIT License. See license.txt
# called from wnf.py
# lib/wnf.py --install [rootpassword] [dbname] [source]
import json
import os
from __future__ import unicode_literals, print_function
from six.moves import input
import os, json, subprocess, shutil, sys
import click
import frappe
import frappe.database
import importlib
from frappe import _
from frappe.model.sync import sync_for
from frappe.utils.fixtures import sync_fixtures
from frappe.website import render
from frappe.modules.utils import sync_customizations
from frappe.database import setup_database
from frappe.core.doctype.scheduled_job_type.scheduled_job_type import sync_jobs
def install_db(root_login="root", root_password=None, db_name=None, source_sql=None,
admin_password=None, verbose=True, force=0, site_config=None, reinstall=False,
db_password=None, db_type=None, db_host=None, db_port=None, no_mariadb_socket=False):
import frappe.database
from frappe.database import setup_database
if not db_type:
db_type = frappe.conf.db_type or 'mariadb'
@ -46,6 +34,11 @@ def install_db(root_login="root", root_password=None, db_name=None, source_sql=N
frappe.flags.in_install_db = False
def install_app(name, verbose=False, set_as_patched=True):
from frappe.core.doctype.scheduled_job_type.scheduled_job_type import sync_jobs
from frappe.utils.fixtures import sync_fixtures
from frappe.model.sync import sync_for
from frappe.modules.utils import sync_customizations
frappe.flags.in_install = name
frappe.flags.ignore_in_install = False
@ -65,7 +58,7 @@ def install_app(name, verbose=False, set_as_patched=True):
raise Exception("App not in apps.txt")
if name in installed_apps:
frappe.msgprint(_("App {0} already installed").format(name))
frappe.msgprint(frappe._("App {0} already installed").format(name))
return
print("\nInstalling {0}...".format(name))
@ -122,6 +115,7 @@ def remove_from_installed_apps(app_name):
def remove_app(app_name, dry_run=False, yes=False, no_backup=False, force=False):
"""Remove app and all linked to the app's module with the app from a site."""
import click
# dont allow uninstall app if not installed unless forced
if not force:
@ -184,6 +178,8 @@ def remove_app(app_name, dry_run=False, yes=False, no_backup=False, force=False)
frappe.flags.in_uninstall = False
def post_install(rebuild_website=False):
from frappe.website import render
if rebuild_website:
render.clear_cache()
@ -305,6 +301,8 @@ def add_module_defs(app):
d.save(ignore_permissions=True)
def remove_missing_apps():
import importlib
apps = ('frappe_subscription', 'shopping_cart')
installed_apps = json.loads(frappe.db.get_global("installed_apps") or "[]")
for app in apps:
@ -317,6 +315,8 @@ def remove_missing_apps():
frappe.db.set_global("installed_apps", json.dumps(installed_apps))
def extract_sql_gzip(sql_gz_path):
import subprocess
try:
# dvf - decompress, verbose, force
original_file = sql_gz_path
@ -329,6 +329,9 @@ def extract_sql_gzip(sql_gz_path):
return decompressed_file
def extract_tar_files(site_name, file_path, folder_name):
import subprocess
import shutil
# Need to do frappe.init to maintain the site locals
frappe.init(site=site_name)
abs_site_path = os.path.abspath(frappe.get_site_path())