o
    ॵi]                     @   s4   d dl Z d dlZd dlZh dZdd Zdd ZdS )    N>   geoatisimdbyelpacademicadvisingrestaurantsc              	   C   s  g }| d D ]{}|d d |d d |d d |d d f\}}}}d\}}z=| d  |}	| d  |}
t| d D ]\}\}}||
krL||krL|}q;|	|krV||krV|}q;|rb|rb|||g W q ty   t  td| d  td|| t  Y qw |S )	Nforeign_keysr      )NNtable_names_originalcolumn_names_originalztable_names_original: zfinding tab name: )	index	enumerateappend
ValueError	traceback	print_excprintsysexit)data	fk_holderfktncolref_tnref_colref_cidcidtidref_tiditab_idcol_org r$   a/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/preprocessors/ofa/utils/get_tables.pyconvert_fk_index
   s2   4
r&   c              	      s(  t | }|d |d}|g g dgdgdgg g d}g }t| D ]\}}|d  |d   |d   d	d
 |d  }|	 fdd|D  |d }	t|	 D ]\}
}|d ||d f |d ||d  d	d
f |d  }d|v s|dksd|v sd|v r|d d nOd|v sd|v sd|v sd|v sd|v sd|v sd|v sd|v r|d d n'd|v sd |v sd!|v r|d d  nd"|v r|d d" n|d d# |d$ dkr|d% t
|d d  qeq%||d&< t||d&< |S )'zread table and column infozpragma foreign_keys=ONz2SELECT name FROM sqlite_master WHERE type='table';)*text)db_idr   table_namesr   column_namescolumn_typesprimary_keysr	   r   r   r+   _ zPRAGMA foreign_key_list('{}') c                    s(   g | ]} |d  f|d |d fgqS )         r$   ).0r   
table_namer$   r%   
<listcomp><   s   ( z'dump_db_json_schema.<locals>.<listcomp>zPRAGMA table_info('{}') r   r
   r,   r2   char varr-   intnumericdecimalnumberidrealdoublefloatdatetimeyearbooleanothers   r.   r	   )sqlite3connectexecuter   fetchallr   lowerreplaceformatextendlenr&   )dbfconncursorr   r   r!   itemfkscurjr   col_typer$   r5   r%   dump_db_json_schema#   s`   


"r[   )rI   r   r   EXISTr&   r[   r$   r$   r$   r%   <module>   s   