Skip to content

omnipy.components.json.helpers

FUNCTION DESCRIPTION
is_json_dict
is_json_list
is_json_scalar
parse_line_as_elements_of_dict
parse_line_as_elements_of_list
parse_str_as_json

is_json_dict

is_json_dict(json_val: Json) -> TypeIs[JsonDict]
Source code in src/omnipy/components/json/helpers.py
def is_json_dict(json_val: Json) -> TypeIs[JsonDict]:
    match json_val:
        case dict():
            return True
        case _:
            return False

is_json_list

is_json_list(json_val: Json) -> TypeIs[JsonList]
Source code in src/omnipy/components/json/helpers.py
def is_json_list(json_val: Json) -> TypeIs[JsonList]:
    match json_val:
        case list():
            return True
        case _:
            return False

is_json_scalar

is_json_scalar(json_val: Json) -> TypeIs[JsonScalar]
Source code in src/omnipy/components/json/helpers.py
def is_json_scalar(json_val: Json) -> TypeIs[JsonScalar]:
    match json_val:
        case str() | int() | float() | bool() | None:
            return True
        case _:
            return False

parse_line_as_elements_of_dict

parse_line_as_elements_of_dict(_line: str) -> JsonDict | pyd.UndefinedType
Source code in src/omnipy/components/json/helpers.py
def parse_line_as_elements_of_dict(_line: str) -> JsonDict | pyd.UndefinedType:
    if _line.startswith('"'):
        try:
            return json.loads(f'{{{_line}}}')
        except json.JSONDecodeError:
            pass
    return pyd.Undefined

parse_line_as_elements_of_list

parse_line_as_elements_of_list(_line: str) -> JsonList | pyd.UndefinedType
Source code in src/omnipy/components/json/helpers.py
def parse_line_as_elements_of_list(_line: str) -> JsonList | pyd.UndefinedType:
    try:
        return json.loads(f'[{_line}]')
    except json.JSONDecodeError:
        return pyd.Undefined

parse_str_as_json

parse_str_as_json(_line: str) -> Json | pyd.UndefinedType
Source code in src/omnipy/components/json/helpers.py
def parse_str_as_json(_line: str) -> Json | pyd.UndefinedType:
    try:
        return json.loads(_line)
    except json.JSONDecodeError:
        return pyd.Undefined