in 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