def add_key_values()

in src-python/trp/trp2.py [0:0]


    def add_key_values(self, key_name: str, values: List[TBlock], page_block: TBlock):
        if not key_name:
            raise ValueError("need values and key_name")
        if not values:
            logger.debug(f"add_key_values: empty values for key: {key_name}, will create virtual empty block")
            values = [self.add_virtual_block(text="", page_block=page_block)]
        for value_block in values:
            if not value_block.id or not self.get_block_by_id(value_block.id):
                raise ValueError("value blocks to add have to already exist. Use add_word_block for new ones.")

        if values[0].page:
            page_block = self.pages[values[0].page - 1]
        else:
            page_block = self.pages[0]

        value_block = TDocument.create_value_block(values=values)
        self.add_block(value_block, page=page_block)

        virtual_block = self.add_virtual_block(text=key_name, page_block=page_block)
        id = str(uuid4())
        key_block = TBlock(
            id=id,
            block_type="KEY_VALUE_SET",
            entity_types=["KEY"],
            confidence=99,
            geometry=TGeometry(bounding_box=TBoundingBox(width=0, height=0, left=0, top=0),
                               polygon=[TPoint(x=0, y=0), TPoint(x=0, y=0)]),
        )
        key_block.add_ids_to_relationships(relationships_type="VALUE", ids=[value_block.id])
        key_block.add_ids_to_relationships(relationships_type="CHILD", ids=[virtual_block.id])
        logger.debug(f"add key with id: {id} and key_name: {key_name}")
        self.add_block(key_block, page=page_block)