def model_post_init()

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


    def model_post_init(self, __context: object) -> None:
        stack = list(set(self.ids))
        resolved_ids: list[str] = []
        while stack:
            curr_id = stack.pop()
            database, table, column = curr_id.split(".")
            if database == "*":
                stack.extend(
                    [f"{db}.{table}.{column}"
                     for db in self.dataset_schema.keys()]
                )
            elif table == "*":
                stack.extend(
                    [
                        f"{database}.{tab}.{column}"
                        for tab in self.dataset_schema.get(database, {}).keys()
                    ]
                )
            elif column == "*":
                stack.extend(
                    [
                        f"{database}.{table}.{col}"
                        for col in self.dataset_schema.get(database, {})
                        .get(table, {})
                        .keys()
                    ]
                )
            elif (
                (database in self.dataset_schema.keys())
                and (table in self.dataset_schema[database].keys())
                and (column in self.dataset_schema[database][table].keys())
            ):
                resolved_ids.append(curr_id)
            else:
                logger.debug(
                    f"Invalid Filter Expression Found: {curr_id}. Skipping."
                    )
        self.ids = resolved_ids