]> git.phdru.name Git - sqlconvert.git/blob - demo/demo-group.py
Fix flake8 warning: remove unused import
[sqlconvert.git] / demo / demo-group.py
1 #! /usr/bin/env python
2 from __future__ import print_function
3
4 import argparse
5 from sqlconvert.print_tokens import print_tokens
6 from sqlconvert.process_tokens import find_error, StatementGrouper
7
8
9 def group_lines(*lines):
10     grouper = StatementGrouper(encoding='utf-8')
11     for line in lines:
12         grouper.process_line(line)
13         if grouper.statements:
14             for statement in grouper.get_statements():
15                 print("----- -----")
16                 if find_error(statement):
17                     print("ERRORS IN QUERY")
18                 print_tokens(statement, encoding='utf-8')
19                 print()
20                 statement._pprint_tree()
21             print("-----/-----")
22     tokens = grouper.close()
23     if tokens:
24         for token in tokens:
25             print_tokens(token, encoding='utf-8')
26             print(repr(token))
27
28
29 def group_test(_args):
30     group_lines(
31         "SELECT * FROM `mytable`; -- line-comment",
32         "INSERT into /* inline comment */ mytable VALUES (1, 'one');",
33         "/*! directive*/ INSERT INTO `MyTable` (`Id`, `Name`) "
34         "VALUES (1, 'one');"
35     )
36
37
38 def group_sql(args):
39     group_lines(*args.lines)
40
41
42 def group_file(args):
43     infile = open(args.filename, 'rt')
44     lines = infile.readlines()
45     infile.close()
46     group_lines(*lines)
47
48
49 if __name__ == '__main__':
50     main_parser = argparse.ArgumentParser(description='Group')
51     subparsers = main_parser.add_subparsers(help='Commands')
52
53     parser = subparsers.add_parser('sql', help='SQL from command line')
54     parser.add_argument('lines', nargs='+', help='SQL lines')
55     parser.set_defaults(func=group_sql)
56
57     parser = subparsers.add_parser('test', help='SQL from test data')
58     parser.set_defaults(func=group_test)
59
60     parser = subparsers.add_parser('file', help='SQL from a file')
61     parser.add_argument('filename', help='SQL file')
62     parser.set_defaults(func=group_file)
63
64     args = main_parser.parse_args()
65     args.func(args)