perf: use orjson in utils
This commit is contained in:
parent
b857a4099a
commit
cda7699187
1 changed files with 7 additions and 6 deletions
|
|
@ -21,6 +21,7 @@ from email.header import decode_header, make_header
|
|||
from email.utils import formataddr, parseaddr
|
||||
from typing import Any, Generic, TypeAlias, TypedDict
|
||||
|
||||
import orjson
|
||||
from werkzeug.test import Client
|
||||
|
||||
from frappe.deprecation_dumpster import gzip_compress, gzip_decompress, make_esc
|
||||
|
|
@ -830,7 +831,7 @@ def get_site_info():
|
|||
site_info.update(frappe.get_attr(method_name)(site_info) or {})
|
||||
|
||||
# dumps -> loads to prevent datatype conflicts
|
||||
return json.loads(frappe.as_json(site_info))
|
||||
return orjson.loads(frappe.as_json(site_info))
|
||||
|
||||
|
||||
def parse_json(val: str):
|
||||
|
|
@ -838,7 +839,7 @@ def parse_json(val: str):
|
|||
Parses json if string else return
|
||||
"""
|
||||
if isinstance(val, str):
|
||||
val = json.loads(val)
|
||||
val = orjson.loads(val)
|
||||
if isinstance(val, dict):
|
||||
val = frappe._dict(val)
|
||||
return val
|
||||
|
|
@ -862,7 +863,7 @@ def get_db_count(*args):
|
|||
for doctype in args:
|
||||
db_count[doctype] = frappe.db.count(doctype)
|
||||
|
||||
return json.loads(frappe.as_json(db_count))
|
||||
return orjson.loads(frappe.as_json(db_count))
|
||||
|
||||
|
||||
def call(fn, *args, **kwargs):
|
||||
|
|
@ -878,12 +879,12 @@ def call(fn, *args, **kwargs):
|
|||
via terminal:
|
||||
bench --site erpnext.local execute frappe.utils.call --args '''["frappe.get_all", "Activity Log"]''' --kwargs '''{"fields": ["user", "creation", "full_name"], "filters":{"Operation": "Login", "Status": "Success"}, "limit": "10"}'''
|
||||
"""
|
||||
return json.loads(frappe.as_json(frappe.call(fn, *args, **kwargs)))
|
||||
return orjson.loads(frappe.as_json(frappe.call(fn, *args, **kwargs)))
|
||||
|
||||
|
||||
def get_safe_filters(filters):
|
||||
try:
|
||||
filters = json.loads(filters)
|
||||
filters = orjson.loads(filters)
|
||||
|
||||
if isinstance(filters, int | float):
|
||||
filters = frappe.as_unicode(filters)
|
||||
|
|
@ -1043,7 +1044,7 @@ def safe_json_loads(*args):
|
|||
|
||||
for arg in args:
|
||||
try:
|
||||
arg = json.loads(arg)
|
||||
arg = orjson.loads(arg)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue