def id_structure()

in nl2sql/datasets/base.py [0:0]


    def id_structure(cls, ids: list[str]) -> list[str]:
        """
        Validates incoming IDs
        """
        for curr_id in ids:
            assert curr_id != "*.*.*", '"*.*.*" is not allowed'
            assert (
                len(id_parts := curr_id.split(".")) == 3
            ), f"Malformed Entity ID {curr_id}"
            for id_part, part_type in zip(id_parts, ["database", "table", "column"]):
                assert id_part == "*" or re.match(
                    "^[a-zA-Z0-9_-]+$", id_part
                ), f"Malformed {part_type} '{id_part}' in {curr_id}"
        return ids