-
Notifications
You must be signed in to change notification settings - Fork 0
/
app_helpers.py
32 lines (21 loc) · 1.06 KB
/
app_helpers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import json
import re
# helpers for interpreting/handling routes and request data
def string_object_to_dict(string_object: str) -> dict:
# TODO: convert to dict
if not is_string_object(string_object):
raise ValueError('string_object_to_dict requires a string object')
return json.loads(string_object)
def string_json_object_to_dict(string_object: str) -> dict:
if not is_string_json_object(string_object):
raise ValueError('string_object_to_dict requires a string object')
return json.loads(string_object)
def is_string_object(source_string: str) -> bool:
# TODO: extend to nested objects (Note: you did this in node for CIV Team)
optional_json_object_regex: str = '^{( ?[\'\"]?.+[\'\"]? ?: ?[\'\"]?.+[\'\"]?,? ?)+}$'
result = re.search(optional_json_object_regex, source_string)
return result is not None
def is_string_json_object(source_string: str) -> bool:
json_object_regex: str = '^{( ?\".+\" ?: ?[\'\"]?.+[\'\"]?,? ?)+}$'
result = re.search(json_object_regex, source_string)
return result is not None