From 951ad3f8441c3129259a05e59a1e9c0aeac6e0ea Mon Sep 17 00:00:00 2001 From: Sagar Vora Date: Sun, 6 Feb 2022 02:17:35 +0530 Subject: [PATCH] chore(deps): bump werkzeug to latest version --- frappe/app.py | 21 ---------- frappe/desk/page/setup_wizard/setup_wizard.py | 42 ++++++++++++------- requirements.txt | 3 +- 3 files changed, 30 insertions(+), 36 deletions(-) diff --git a/frappe/app.py b/frappe/app.py index 609a8535d7..975a2e2002 100644 --- a/frappe/app.py +++ b/frappe/app.py @@ -294,7 +294,6 @@ def serve(port=8000, profile=False, no_reload=False, no_threading=False, site=No _sites_path = sites_path from werkzeug.serving import run_simple - patch_werkzeug_reloader() if profile or os.environ.get('USE_PROFILER'): application = ProfilerMiddleware(application, sort_by=('cumtime', 'calls')) @@ -325,23 +324,3 @@ def serve(port=8000, profile=False, no_reload=False, no_threading=False, site=No use_debugger=not in_test_env, use_evalex=not in_test_env, threaded=not no_threading) - -def patch_werkzeug_reloader(): - """ - This function monkey patches Werkzeug reloader to ignore reloading files in - the __pycache__ directory. - - To be deprecated when upgrading to Werkzeug 2. - """ - - from werkzeug._reloader import WatchdogReloaderLoop - - trigger_reload = WatchdogReloaderLoop.trigger_reload - - def custom_trigger_reload(self, filename): - if os.path.basename(os.path.dirname(filename)) == "__pycache__": - return - - return trigger_reload(self, filename) - - WatchdogReloaderLoop.trigger_reload = custom_trigger_reload diff --git a/frappe/desk/page/setup_wizard/setup_wizard.py b/frappe/desk/page/setup_wizard/setup_wizard.py index b42d8c58b7..8dc010e420 100755 --- a/frappe/desk/page/setup_wizard/setup_wizard.py +++ b/frappe/desk/page/setup_wizard/setup_wizard.py @@ -6,7 +6,7 @@ from frappe.utils import strip, cint from frappe.translate import (set_default_language, get_dict, send_translations) from frappe.geo.country_info import get_country_info from frappe.utils.password import update_password -from werkzeug.useragents import UserAgent +from ua_parser import user_agent_parser from . import install_fixtures def get_setup_stages(args): @@ -315,17 +315,10 @@ def prettify_args(args): return pretty_args def email_setup_wizard_exception(traceback, args): - if not frappe.local.conf.setup_wizard_exception_email: + if not frappe.conf.setup_wizard_exception_email: return pretty_args = prettify_args(args) - - if frappe.local.request: - user_agent = UserAgent(frappe.local.request.headers.get('User-Agent', '')) - - else: - user_agent = frappe._dict() - message = """ #### Traceback @@ -350,22 +343,43 @@ def email_setup_wizard_exception(traceback, args): - **Site:** {site} - **User:** {user} -- **Browser:** {user_agent.platform} {user_agent.browser} version: {user_agent.version} language: {user_agent.language} +- **Browser:** {browser} - **Browser Languages**: `{accept_languages}`""".format( site=frappe.local.site, traceback=traceback, args="\n".join(pretty_args), user=frappe.session.user, - user_agent=user_agent, - headers=frappe.local.request.headers, - accept_languages=", ".join(frappe.local.request.accept_languages.values())) + browser=get_browser_string(), + headers=frappe.request.headers, + accept_languages=", ".join(frappe.request.accept_languages.values())) - frappe.sendmail(recipients=frappe.local.conf.setup_wizard_exception_email, + frappe.sendmail(recipients=frappe.conf.setup_wizard_exception_email, sender=frappe.session.user, subject="Setup failed: {}".format(frappe.local.site), message=message, delayed=False) +def get_browser_string(): + if not frappe.request: + return "" + + user_agent = user_agent_parser.ParseUserAgent( + frappe.request.headers.get('User-Agent', '') + ) + + browser = user_agent["family"] + + if user_agent["major"]: + browser += " " + user_agent["major"] + + if user_agent["minor"]: + browser += "." + user_agent["minor"] + + if user_agent["patch"]: + browser += "." + user_agent["patch"] + + return browser + def log_setup_wizard_exception(traceback, args): with open('../logs/setup-wizard.log', 'w+') as setup_log: setup_log.write(traceback) diff --git a/requirements.txt b/requirements.txt index 114ab5f61d..4426ef54be 100644 --- a/requirements.txt +++ b/requirements.txt @@ -62,8 +62,9 @@ semantic-version~=2.8.5 sqlparse~=0.4.1 stripe~=2.56.0 terminaltables~=3.1.0 +ua-parser~=0.10.0 urllib3~=1.26.4 -Werkzeug~=0.16.1 +Werkzeug~=2.0.2 Whoosh~=2.7.4 wrapt~=1.12.1 xlrd~=2.0.1