-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRaportGenerator.py
executable file
·43 lines (36 loc) · 1.51 KB
/
RaportGenerator.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
import os
from DataCollector import get_file_to_analyze, analyze_files, prepare_files_to_analyze, get_dir_to_analyze
from xlsxGenerator import generate_excel_workbook
import ArgumentManager
from sys import argv
def single_file_analysis():
global file, analyze_unit, data_from_files, data
file = get_file_to_analyze()
analyze_unit = prepare_files_to_analyze(parser.recurrent, file)
data_from_files = analyze_files(analyze_unit)
path = os.path.normpath(file).split(os.path.sep)
data = [[os.path.basename(file), data_from_files]]
# noinspection SpellCheckingInspection
generate_excel_workbook(str(path[-2]) + '.xlsx', data)
def directory_analysis():
global file, data, analyze_unit, data_from_files
directory = get_dir_to_analyze()
all_files = os.listdir(directory)
files = []
extensions = ['.cpp', '.C', '.c', '.h', '.hpp']
for file in all_files:
if any(x in file for x in extensions):
files.append(file)
data = []
for base_file in files:
analyze_unit = prepare_files_to_analyze(parser.recurrent, os.path.join(directory, base_file))
data_from_files = analyze_files(analyze_unit)
data.append([base_file, data_from_files])
# noinspection SpellCheckingInspection
generate_excel_workbook(str(os.path.basename(directory)) + '.xlsx', data)
if __name__ == '__main__':
parser = ArgumentManager.generate_argument_parser(argv[1:])
if parser.single_file:
single_file_analysis()
else:
directory_analysis()