Skip to content

Commit 4b42634

Browse files
committed
fix: remove the json fallbacks for orjson code
This needs installing orjson!
1 parent f1d6e6f commit 4b42634

File tree

1 file changed

+7
-28
lines changed

1 file changed

+7
-28
lines changed

refresh.template.py

+7-28
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@
3636
import time
3737
import types
3838
import typing # MIN_PY=3.9: Switch e.g. typing.List[str] -> list[str]
39-
39+
# orjson is much faster than the standard library's json module (1.9 seconds vs 6.6 seconds for a ~140 MB file).
40+
import orjson
4041

4142
@enum.unique
4243
class SGR(enum.Enum):
@@ -507,11 +508,7 @@ def _get_headers(compile_action, source_path: str):
507508
cache_last_modified = os.path.getmtime(cache_file_path) # Do before opening just as a basic hedge against concurrent write, even though we won't handle the concurrent delete case perfectly.
508509
try:
509510
with open(cache_file_path) as cache_file:
510-
try:
511-
from orjson import loads
512-
action_key, headers = loads(cache_file.read())
513-
except ImportError:
514-
action_key, headers = json.load(cache_file)
511+
action_key, headers = orjson.loads(cache_file.read())
515512
except json.JSONDecodeError:
516513
# Corrupted cache, which can happen if, for example, the user kills the program, since writes aren't atomic.
517514
# But if it is the result of a bug, we want to print it before it's overwritten, so it can be reported
@@ -562,13 +559,8 @@ def _get_headers(compile_action, source_path: str):
562559

563560
def _cache_compile_action(compile_action, cache_file_path, headers):
564561
cache = (compile_action.actionKey, list(headers))
565-
try:
566-
from orjson import dumps
567-
with open(cache_file_path, 'wb') as cache_file:
568-
cache_file.write(dumps(cache))
569-
except ImportError:
570-
with open(cache_file_path, 'w') as cache_file:
571-
json.dump(cache, cache_file)
562+
with open(cache_file_path, 'wb') as cache_file:
563+
cache_file.write(orjson.dumps(cache))
572564

573565
def _get_files(compile_action):
574566
"""Gets the ({source files}, {header files}) clangd should be told the command applies to."""
@@ -1063,21 +1055,8 @@ def _ensure_cwd_is_workspace_root():
10631055

10641056
def _write_compile_commands(compile_command_entries: typing.List[str]):
10651057
file_name = 'compile_commands.json'
1066-
try:
1067-
# orjson is much faster than the standard library's json module (1.9 seconds vs 6.6 seconds for a ~140 MB file).
1068-
from orjson import dumps
1069-
with open(file_name, 'wb') as output_file:
1070-
output_file.write(dumps(
1071-
compile_command_entries,
1072-
))
1073-
except ImportError:
1074-
with open(file_name, 'w') as output_file:
1075-
json.dump(
1076-
compile_command_entries,
1077-
output_file,
1078-
indent=2, # Yay, human readability!
1079-
check_circular=False # For speed.
1080-
)
1058+
with open(file_name, 'wb') as output_file:
1059+
output_file.write(orjson.dumps(compile_command_entries))
10811060

10821061
def main():
10831062
_ensure_cwd_is_workspace_root()

0 commit comments

Comments
 (0)