perf: num2words, babel, gettext, sentry imports (#26475)
num2words - 260KB - Used frequently on ERPNext sites. babel - 1.1MB Gets imported because of dates, localization sentry - 2.8MB should be loaded only if envvar is set gettext - required for reading translations
This commit is contained in:
parent
c8a276b477
commit
445e1dbd6b
4 changed files with 17 additions and 11 deletions
|
|
@ -36,7 +36,12 @@ _sites_path = os.environ.get("SITES_PATH", ".")
|
||||||
|
|
||||||
# If gc.freeze is done then importing modules before forking allows us to share the memory
|
# If gc.freeze is done then importing modules before forking allows us to share the memory
|
||||||
if frappe._tune_gc:
|
if frappe._tune_gc:
|
||||||
|
import gettext
|
||||||
|
|
||||||
|
import babel
|
||||||
|
import babel.messages
|
||||||
import bleach
|
import bleach
|
||||||
|
import num2words
|
||||||
import pydantic
|
import pydantic
|
||||||
|
|
||||||
import frappe.boot
|
import frappe.boot
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@
|
||||||
bootstrap client session
|
bootstrap client session
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
import frappe
|
import frappe
|
||||||
import frappe.defaults
|
import frappe.defaults
|
||||||
import frappe.desk.desk_page
|
import frappe.desk.desk_page
|
||||||
|
|
@ -110,6 +112,9 @@ def get_bootinfo():
|
||||||
bootinfo.marketplace_apps = get_marketplace_apps()
|
bootinfo.marketplace_apps = get_marketplace_apps()
|
||||||
bootinfo.changelog_feed = get_changelog_feed_items()
|
bootinfo.changelog_feed = get_changelog_feed_items()
|
||||||
|
|
||||||
|
if sentry_dsn := get_sentry_dsn():
|
||||||
|
bootinfo.sentry_dsn = sentry_dsn
|
||||||
|
|
||||||
return bootinfo
|
return bootinfo
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -470,3 +475,10 @@ def add_subscription_conf():
|
||||||
return frappe.conf.subscription
|
return frappe.conf.subscription
|
||||||
except Exception:
|
except Exception:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
|
||||||
|
def get_sentry_dsn():
|
||||||
|
if not frappe.get_system_settings("enable_telemetry"):
|
||||||
|
return
|
||||||
|
|
||||||
|
return os.getenv("FRAPPE_SENTRY_DSN")
|
||||||
|
|
|
||||||
|
|
@ -442,7 +442,6 @@ after_job = [
|
||||||
extend_bootinfo = [
|
extend_bootinfo = [
|
||||||
"frappe.utils.telemetry.add_bootinfo",
|
"frappe.utils.telemetry.add_bootinfo",
|
||||||
"frappe.core.doctype.user_permission.user_permission.send_user_permissions",
|
"frappe.core.doctype.user_permission.user_permission.send_user_permissions",
|
||||||
"frappe.utils.sentry.add_bootinfo",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
get_changelog_feed = "frappe.desk.doctype.changelog_feed.changelog_feed.get_feed"
|
get_changelog_feed = "frappe.desk.doctype.changelog_feed.changelog_feed.get_feed"
|
||||||
|
|
|
||||||
|
|
@ -140,13 +140,3 @@ def capture_exception(message: str | None = None) -> None:
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
frappe.logger().error("Failed to capture exception", exc_info=True)
|
frappe.logger().error("Failed to capture exception", exc_info=True)
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def add_bootinfo(bootinfo):
|
|
||||||
"""Called from hook, sends DSN so client side can setup error monitoring."""
|
|
||||||
if not frappe.get_system_settings("enable_telemetry"):
|
|
||||||
return
|
|
||||||
|
|
||||||
if sentry_dsn := os.getenv("FRAPPE_SENTRY_DSN"):
|
|
||||||
bootinfo.sentry_dsn = sentry_dsn
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue