Simple schema which maps table&column to a unique identifier
| 2 | |
| 3 | |
| 4 | class Schema: |
| 5 | """ |
| 6 | Simple schema which maps table&column to a unique identifier |
| 7 | """ |
| 8 | def __init__(self, schema, table): |
| 9 | self._schema = schema |
| 10 | self._table = table |
| 11 | self._idMap = self._map(self._schema, self._table) |
| 12 | |
| 13 | @property |
| 14 | def schema(self): |
| 15 | return self._schema |
| 16 | |
| 17 | @property |
| 18 | def idMap(self): |
| 19 | return self._idMap |
| 20 | |
| 21 | def _map(self, schema, table): |
| 22 | column_names_original = table['column_names_original'] |
| 23 | table_names_original = table['table_names_original'] |
| 24 | #print 'column_names_original: ', column_names_original |
| 25 | #print 'table_names_original: ', table_names_original |
| 26 | for i, (tab_id, col) in enumerate(column_names_original): |
| 27 | if tab_id == -1: |
| 28 | idMap = {'*': i} |
| 29 | else: |
| 30 | key = table_names_original[tab_id].lower() |
| 31 | val = col.lower() |
| 32 | idMap[key + "." + val] = i |
| 33 | |
| 34 | for i, tab in enumerate(table_names_original): |
| 35 | key = tab.lower() |
| 36 | idMap[key] = i |
| 37 | |
| 38 | return idMap |
| 39 | |
| 40 | def get_schemas_from_json(fpath): |
| 41 | with open(fpath) as f: |