-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
Copy path__main__.py
31 lines (24 loc) · 1.55 KB
/
__main__.py
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
from argparse import ArgumentParser
from mimic_utils.transpile import transpile_file, transpile_folder
def main():
parser = ArgumentParser(description="Convert SQL to different dialects.")
subparsers = parser.add_subparsers()
file_parser = subparsers.add_parser('convert_file', help='Transpile a single SQL file.')
file_parser.add_argument("source_file", help="Source file.")
file_parser.add_argument("destination_file", help="Destination file.")
file_parser.add_argument("--source_dialect", choices=["bigquery", "postgres", "duckdb"], default='bigquery', help="SQL dialect to transpile.")
file_parser.add_argument("--destination_dialect", choices=["postgres", "duckdb"], default='postgres', help="SQL dialect to transpile.")
file_parser.set_defaults(func=transpile_file)
folder_parser = subparsers.add_parser('convert_folder', help='Transpile all SQL files in a folder.')
folder_parser.add_argument("source_folder", help="Source folder.")
folder_parser.add_argument("destination_folder", help="Destination folder.")
folder_parser.add_argument("--source_dialect", choices=["bigquery", "postgres", "duckdb"], default='bigquery', help="SQL dialect to transpile.")
folder_parser.add_argument("--destination_dialect", choices=["bigquery", "postgres", "duckdb"], default="postgres", help="SQL dialect to transpile.")
folder_parser.set_defaults(func=transpile_folder)
args = parser.parse_args()
# pop func from args
args = vars(args)
func = args.pop("func")
func(**args)
if __name__ == '__main__':
main()