| | import re |
| |
|
| |
|
| | def _process_name(name: str): |
| | |
| | name = re.sub("([a-z])([A-Z])", "\g<1> \g<2>", name) |
| | return name.replace("-", " ").replace("_", " ").lower() |
| |
|
| | def _prompt_table(table_name, prompt_user=True): |
| | table_name = _process_name(table_name) |
| | print(f"Current table name: {table_name}") |
| | new_name = ( |
| | input("Type new name (empty to keep previous name): ") if prompt_user else "" |
| | ) |
| | return new_name if new_name != "" else table_name |
| |
|
| |
|
| | def _prompt_column(column_name, table_name, prompt_user=True): |
| | column_name = _process_name(column_name) |
| | print(f"Table {table_name}. Current col name: {column_name}") |
| | new_name = ( |
| | input("Type new name (empty to keep previous name): ") if prompt_user else "" |
| | ) |
| | return new_name if new_name != "" else column_name |
| |
|
| | def refine_schema_names(schema): |
| | new_schema = { |
| | "column_names": [], |
| | "column_names_original": schema["column_names_original"], |
| | "column_types": schema["column_types"], |
| | "db_id": schema["db_id"], |
| | "foreign_keys": schema["foreign_keys"], |
| | "primary_keys": schema["primary_keys"], |
| | "table_names": [], |
| | "table_names_original": schema["table_names_original"], |
| | } |
| | for table in schema["table_names_original"]: |
| | corrected = _prompt_table(table) |
| | new_schema["table_names"].append(corrected) |
| | for col in schema["column_names_original"]: |
| | t_id = col[0] |
| | column_name = col[1] |
| | corrected = _prompt_column(column_name, new_schema["table_names"][t_id]) |
| | new_schema["column_names"].append([t_id, corrected]) |
| | return new_schema |