def apply_text_offset()

in document-processing-workflows/src/functions/parse-results/main.py [0:0]


def apply_text_offset(json_input, text_offset):
    lookup_key = "textSegments"
    if isinstance(json_input, dict):
        for k, v in json_input.items():
            if k == lookup_key:
                for text_segment in v:
                    if "startIndex" in text_segment:
                        text_segment["startIndex"] = str(
                            int(text_segment["startIndex"]) + text_offset
                        )
                    if "endIndex" in text_segment:
                        text_segment["endIndex"] = str(
                            int(text_segment["endIndex"]) + text_offset
                        )
            else:
                apply_text_offset(v, text_offset)
    elif isinstance(json_input, list):
        for item in json_input:
            apply_text_offset(item, text_offset)