0
return func(*args, **kwargs)
99
^^^^^^^^^^^^^^^^^^^^^
98
File… "/home/frappe/frappe-bench/apps/frappe/frappe/apps.py", line 28, in get_apps
97
if has_permission_path and not frappe.get_attr(has_permission_path)():
96
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
95
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1726, in get_attr
94
return getattr(get_module(modulename), methodname)
93
^^^^^^^^^^^^^^^^^^^^^^
92
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1436, in get_module
91
return importlib.import_module(modulename)
90
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
89
File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
88
return _bootstrap._gcd_import(name[level:], package, level)
87
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
86
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
85
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
84
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
83
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
82
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
81
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
80
File "/home/frappe/frappe-bench/apps/crm/crm/api/__init__.py", line 6, in <module>
79
from frappe.utils.modules import get_modules_from_all_apps_for_user
78
ModuleNotFoundError: No module named 'frappe.utils.modules'
77
76
During handling of the above exception, another exception occurred:
75
74
Traceback (most recent call last):
73
File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/gunicorn/workers/gthread.py", line 307, in handle
72
keepalive = self.handle_request(req, conn)
71
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
70
File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/gunicorn/workers/gthread.py", line 359, in handle_request
69
respiter = self.wsgi(environ, resp.start_response)
68
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
67
File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 80, in application
66
app(environ, start_response),
65
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
64
File "/home/frappe/frappe-bench/env/lib/python3.11/site-packages/werkzeug/wrappers/request.py", line 190, in application
63
resp = f(*args[:-2] + (request,))
62
^^^^^^^^^^^^^^^^^^^^^^^^^^
61
File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 133, in application
60
response = handle_exception(e)
59
^^^^^^^^^^^^^^^^^^^
58
File "/home/frappe/frappe-bench/apps/frappe/frappe/permissions.py", line 870, in wrapper
57
return fn(e, *args, **kwargs)
56
^^^^^^^^^^^^^^^^^^^^^^
55
File "/home/frappe/frappe-bench/apps/frappe/frappe/app.py", line 397, in handle_exception
54
response = get_response("message", http_status_code=http_status_code)
53
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
52
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/serve.py", line 23, in get_response
51
return handle_exception(e, endpoint, path, http_status_code)
50
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
49
File "/home/frappe/frappe-bench/apps/frappe/frappe/permissions.py", line 870, in wrapper
48
return fn(e, *args, **kwargs)
47
^^^^^^^^^^^^^^^^^^^^^^
46
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/serve.py", line 37, in handle_exception
45
return ErrorPage(exception=e).render()
44
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
43
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py", line 84, in render
42
html = self.get_html()
41
^^^^^^^^^^^^^^^
40
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/utils.py", line 534, in cache_html_decorator
39
html = func(*args, **kwargs)
38
^^^^^^^^^^^^^^^^^^^^^
37
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/template_page.py", line 92, in get_html
36
self.init_context()
35
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/error_page.py", line 14, in init_context
34
super().init_context()
33
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/page_renderers/base_template_page.py", line 15, in init_context
32
self.context.update(get_website_settings())
31
^^^^^^^^^^^^^^^^^^^^^^
30
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/doctype/website_settings/website_settings.py", line 263, in get_website_settings
29
context.boot = get_boot_data()
28
^^^^^^^^^^^^^^^
27
File "/home/frappe/frappe-bench/apps/frappe/frappe/website/utils.py", line 171, in get_boot_data
26
apps = get_apps() or []
25
^^^^^^^^^^
24
File "/home/frappe/frappe-bench/apps/frappe/frappe/utils/typing_validations.py", line 31, in wrapper
23
return func(*args, **kwargs)
22
^^^^^^^^^^^^^^^^^^^^^
21
File "/home/frappe/frappe-bench/apps/frappe/frappe/apps.py", line 28, in get_apps
20
if has_permission_path and not frappe.get_attr(has_permission_path)():
19
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
18
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1726, in get_attr
17
return getattr(get_module(modulename), methodname)
16
^^^^^^^^^^^^^^^^^^^^^^
15
File "/home/frappe/frappe-bench/apps/frappe/frappe/__init__.py", line 1436, in get_module
14
return importlib.import_module(modulename)
13
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12
File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
11
return _bootstrap._gcd_import(name[level:], package, level)
10
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
9
File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
8
File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
7
File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
6
File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
5
File "<frozen importlib._bootstrap_external>", line 940, in exec_module
4
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
3
File "/home/frappe/frappe-bench/apps/crm/crm/api/__init__.py", line 6, in <module>
2
from frappe.utils.modules import get_modules_from_all_apps_for_user
1
ModuleNotFoundError: No module named 'frappe.utils.modules'