File size: 1,554 Bytes
d758c99
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import re


def _process_name(name: str):
  # camelCase to spaces
  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