Skip to content

Commit d9fe072

Browse files
committed
Added string input support to data.json.read()
1 parent f829481 commit d9fe072

2 files changed

Lines changed: 16 additions & 10 deletions

File tree

  • remove-json-keys/src/remove_json_keys/lib/data
  • translate-messages/src/translate_messages/lib/data

remove-json-keys/src/remove_json_keys/lib/data/json.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import json, re
22
from pathlib import Path
3-
from typing import Dict, Any
3+
from typing import Any, Dict, Union
44

55
import json5
66

@@ -27,11 +27,14 @@ def is_valid(file_path, format='json'):
2727
try : json5.loads(file_text) ; return True
2828
except Exception : return False
2929
else:
30-
raise ValueError(f"Unsupported format {format!r}. Expected 'json' or 'json5'")
30+
raise ValueError(f"Unsupported format {format!r}. Expected 'json' or 'json5'")
3131

32-
def read(file_path, encoding='utf-8'):
33-
with open(file_path, 'r', encoding=encoding) as file:
34-
return json5.load(file)
32+
def read(input: Union[str, Path], encoding: str = 'utf-8') -> Any:
33+
input_str = str(input)
34+
if input_str.endswith(('.json', '.json5')):
35+
with open(input_str, 'r', encoding=encoding) as file:
36+
return json5.load(file)
37+
else : return json5.loads(input_str)
3538

3639
def remove_keys(json_path, keys):
3740
keys_removed, keys_skipped, files_processed_cnt = [], [], 0

translate-messages/src/translate_messages/lib/data/json.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import json
22
from pathlib import Path
3-
from typing import Dict, Any
3+
from typing import Any, Dict, Union
44

55
import json5
66

@@ -25,11 +25,14 @@ def is_valid(file_path, format='json'):
2525
try : json5.loads(file_text) ; return True
2626
except Exception : return False
2727
else:
28-
raise ValueError(f"Unsupported format {format!r}. Expected 'json' or 'json5'")
28+
raise ValueError(f"Unsupported format {format!r}. Expected 'json' or 'json5'")
2929

30-
def read(file_path, encoding='utf-8'):
31-
with open(file_path, 'r', encoding=encoding) as file:
32-
return json5.load(file)
30+
def read(input: Union[str, Path], encoding: str = 'utf-8') -> Any:
31+
input_str = str(input)
32+
if input_str.endswith(('.json', '.json5')):
33+
with open(input_str, 'r', encoding=encoding) as file:
34+
return json5.load(file)
35+
else : return json5.loads(input_str)
3336

3437
def write(file_path, data, encoding='utf-8', ensure_ascii=False, style='pretty', atomic=True):
3538
from . import file

0 commit comments

Comments
 (0)