Use of extract_table_column_map has moved to sqlhelpers.
This commit is contained in:
		
							parent
							
								
									b88d577ddd
								
							
						
					
					
						commit
						92f3569971
					
				
					 2 changed files with 4 additions and 40 deletions
				
			
		|  | @ -8,6 +8,7 @@ import string | ||||||
| import traceback | import traceback | ||||||
| import warnings | import warnings | ||||||
| 
 | 
 | ||||||
|  | from voussoirkit import sqlhelpers | ||||||
| from voussoirkit import winwhich | from voussoirkit import winwhich | ||||||
| 
 | 
 | ||||||
| # FFmpeg ########################################################################################### | # FFmpeg ########################################################################################### | ||||||
|  | @ -190,45 +191,8 @@ CREATE INDEX IF NOT EXISTS index_tag_synonyms_name on tag_synonyms(name); | ||||||
| COMMIT; | COMMIT; | ||||||
| ''' | ''' | ||||||
| 
 | 
 | ||||||
| def _extract_table_statements(script): | SQL_COLUMNS = sqlhelpers.extract_table_column_map(DB_INIT) | ||||||
|     for statement in script.split(';'): | SQL_INDEX = sqlhelpers.reverse_table_column_map(SQL_COLUMNS) | ||||||
|         if 'create table' in statement.lower(): |  | ||||||
|             yield statement |  | ||||||
| 
 |  | ||||||
| def _extract_table_name(create_table_statement): |  | ||||||
|     # CREATE TABLE table_name(...) |  | ||||||
|     table_name = create_table_statement.split('(')[0].strip() |  | ||||||
|     table_name = table_name.split()[-1] |  | ||||||
|     return table_name |  | ||||||
| 
 |  | ||||||
| def _extract_columns_from_table(create_table_statement): |  | ||||||
|     # CREATE TABLE table_name(column_name TYPE MODIFIERS, ...) |  | ||||||
|     column_names = create_table_statement.split('(')[1].rsplit(')', 1)[0] |  | ||||||
|     column_names = column_names.split(',') |  | ||||||
|     column_names = [x.strip() for x in column_names] |  | ||||||
|     column_names = [x.split(' ')[0] for x in column_names] |  | ||||||
|     column_names = [c for c in column_names if c.lower() != 'foreign'] |  | ||||||
|     return column_names |  | ||||||
| 
 |  | ||||||
| def _extract_table_column_map(script): |  | ||||||
|     columns = {} |  | ||||||
|     table_statements = _extract_table_statements(script) |  | ||||||
|     for table_statement in table_statements: |  | ||||||
|         table_name = _extract_table_name(table_statement) |  | ||||||
|         columns[table_name] = _extract_columns_from_table(table_statement) |  | ||||||
|     return columns |  | ||||||
| 
 |  | ||||||
| def _reverse_index(columns): |  | ||||||
|     ''' |  | ||||||
|     Given an iterable, return a dictionary where the key is the item and the |  | ||||||
|     value is the index. Used to convert a stringy name into the correct number |  | ||||||
|     to then index into an sql row. |  | ||||||
|     ['test', 'toast'] -> {'test': 0, 'toast': 1} |  | ||||||
|     ''' |  | ||||||
|     return {column: index for (index, column) in enumerate(columns)} |  | ||||||
| 
 |  | ||||||
| SQL_COLUMNS = _extract_table_column_map(DB_INIT) |  | ||||||
| SQL_INDEX = {table: _reverse_index(columns) for (table, columns) in SQL_COLUMNS.items()} |  | ||||||
| 
 | 
 | ||||||
| ALLOWED_ORDERBY_COLUMNS = [ | ALLOWED_ORDERBY_COLUMNS = [ | ||||||
|     'extension', |     'extension', | ||||||
|  |  | ||||||
|  | @ -15,4 +15,4 @@ git+https://github.com/senko/python-video-converter.git | ||||||
| zipstream | zipstream | ||||||
| 
 | 
 | ||||||
| # My own variety toolkit. | # My own variety toolkit. | ||||||
| voussoirkit>=0.0.45 | voussoirkit>=0.0.46 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue