fix!: meaningful error messages over KeyError
This commit is contained in:
parent
076eb593e3
commit
1e64abe9a5
2 changed files with 22 additions and 12 deletions
|
|
@ -1258,8 +1258,10 @@ def get_module_path(module, *joins):
|
|||
|
||||
:param module: Module name.
|
||||
:param *joins: Join additional path elements using `os.path.join`."""
|
||||
module = scrub(module)
|
||||
return get_pymodule_path(local.module_app[module] + "." + module, *joins)
|
||||
from frappe.modules.utils import get_module_app
|
||||
|
||||
app = get_module_app(module)
|
||||
return get_pymodule_path(app + "." + scrub(module), *joins)
|
||||
|
||||
|
||||
def get_app_path(app_name, *joins):
|
||||
|
|
|
|||
|
|
@ -207,13 +207,18 @@ def export_doc(doctype, name, module=None):
|
|||
write_document_file(frappe.get_doc(doctype, name), module)
|
||||
|
||||
|
||||
def get_doctype_module(doctype):
|
||||
def get_doctype_module(doctype) -> str:
|
||||
"""Returns **Module Def** name of given doctype."""
|
||||
|
||||
def make_modules_dict():
|
||||
return dict(frappe.db.sql("select name, module from tabDocType"))
|
||||
|
||||
return frappe.cache().get_value("doctype_modules", make_modules_dict)[doctype]
|
||||
doctype_module_map = frappe.cache().get_value("doctype_modules", make_modules_dict)
|
||||
|
||||
if module_name := doctype_module_map.get(doctype):
|
||||
return module_name
|
||||
else:
|
||||
frappe.throw(_("DocType {} not found").format(doctype), exc=frappe.DoesNotExistError)
|
||||
|
||||
|
||||
doctype_python_modules = {}
|
||||
|
|
@ -234,9 +239,9 @@ def load_doctype_module(doctype, module=None, prefix="", suffix=""):
|
|||
if key not in doctype_python_modules:
|
||||
doctype_python_modules[key] = frappe.get_module(module_name)
|
||||
except ImportError as e:
|
||||
raise ImportError(
|
||||
"Module import failed for {0} ({1})".format(doctype, module_name + " Error: " + str(e))
|
||||
)
|
||||
msg = f"Module import failed for {doctype}, the DocType you're trying to open might be deleted."
|
||||
msg += f"<br> Error: {e}"
|
||||
raise ImportError(msg) from e
|
||||
|
||||
return doctype_python_modules[key]
|
||||
|
||||
|
|
@ -251,12 +256,15 @@ def get_module_name(doctype, module, prefix="", suffix="", app=None):
|
|||
)
|
||||
|
||||
|
||||
def get_module_app(module):
|
||||
return frappe.local.module_app[scrub(module)]
|
||||
def get_module_app(module: str) -> str:
|
||||
app = frappe.local.module_app.get(scrub(module))
|
||||
if app is None:
|
||||
frappe.throw(_("Module {} not found").format(module), exc=frappe.DoesNotExistError)
|
||||
return app
|
||||
|
||||
|
||||
def get_app_publisher(module):
|
||||
app = frappe.local.module_app[scrub(module)]
|
||||
def get_app_publisher(module: str) -> str:
|
||||
app = get_module_app(module)
|
||||
if not app:
|
||||
frappe.throw(_("App not found"))
|
||||
app_publisher = frappe.get_hooks(hook="app_publisher", app_name=app)[0]
|
||||
|
|
@ -321,7 +329,7 @@ def make_boilerplate(template, doc, opts=None):
|
|||
base_class=base_class,
|
||||
doctype=doc.name,
|
||||
**opts,
|
||||
custom_controller=custom_controller
|
||||
custom_controller=custom_controller,
|
||||
)
|
||||
)
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue