-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmdc.py
52 lines (43 loc) · 2.6 KB
/
mdc.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# !/usr/bin/env python
def main():
from app import azure, convert, io
from colorama import Fore
import argparse
import colorama
# Parse arguments
input_pathname = 'data/input/*.xml'
output_directory = 'data/output'
parser = argparse.ArgumentParser()
parser.add_argument('--input', default=input_pathname, help=f'Input pathname (default: {input_pathname})')
parser.add_argument('--output', default=output_directory, help=f'Output directory (default: {output_directory})')
parser.add_argument('--encoding', default='utf-8', help='File encoding (default: utf-8)')
parser.add_argument('--ensure_ascii', action='store_true', help='Ensure ASCII encoding (default: False)')
parser.add_argument('--indent', default='\t', help='Indentation (default: \\t)')
parser.add_argument('--mode', default='w', help='File mode (default: w)')
parser.add_argument('--convert', action='store_true', help='Convert data from XML to JSON (default: False)')
parser.add_argument('--sql', action='store_true', help='Import JSON data to Azure SQL database (default: False)')
parser.add_argument('--export', action='store_true', help='Export SQL queries to HTML tables (default: False)')
parser.add_argument('--verbose', action='store_true', help='Verbose (default: False)')
parser.add_argument('--test', action='store_true', help='Skip import process (default: False)')
arguments = parser.parse_args()
# Initialise colorama
colorama.init()
# Convert XML data to JSON
if arguments.convert:
convert.convert_to_json(arguments.input, arguments.output, arguments.encoding, arguments.ensure_ascii,
arguments.indent, arguments.mode, arguments.verbose, test=arguments.test)
# Import JSON files in Azure SQL database
if arguments.sql:
azure.import_json_in_azure(arguments.output, 'conf/sql.json', encoding=arguments.encoding,
ensure_ascii=arguments.ensure_ascii, verbose=arguments.verbose, test=arguments.test)
# Execute and export SQL queries to HTML tables
if arguments.export:
azure.export_table('sql/*.sql', f'{arguments.output}/table', arguments.verbose)
azure.export_chart(['sql/employeeSalaries.sql'], 'template/pie.htm', f'{arguments.output}/chart/pie',
arguments.verbose)
azure.export_chart(['sql/employeeSalaries.sql'], 'template/line.htm', f'{arguments.output}/chart/line',
arguments.verbose)
if arguments.verbose:
io.print_colored('** DONE **', Fore.GREEN)
if __name__ == '__main__':
main()