sample_handler()   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 8
Bugs 3 Features 1
Metric Value
cc 2
c 8
b 3
f 1
dl 0
loc 14
rs 9.4285
1
from qpage import *
2
import sys
3
import gc
4
import doctest
5
def error_handler():
6
    """
7
    Close files and check errors and start again main
8
    :return:None
9
        call:
10
        -close_files
11
        -error_finder
12
        -Show_items
13
        -enter_to_exit
14
        -main_handler
15
    """
16
    close_files()  # Close all of the open files
17
    vector_2 = error_finder()  # load error and pass vector
18
    error_vector = vector_2[0]  # extract errors
19
    pass_vector = vector_2[1]  # extract pass
20
    print(str(len(error_vector)) + " Error")  # print  number of errors
21
    print("Please Check Following :\n")
22
    show_items(error_vector)  # print error
23
    for i, item in enumerate(pass_vector):
24
        print(str(i + len(error_vector) + 1) + "-" + item)
25
    enter_to_exit()  # get input from user to continue
26
    main_handler()
27
def file_handler():
28
    """
29
    Write files
30
    :return:None
31
        call:
32
        -html_init
33
        -contain
34
        -css_creator
35
        -icon_creator
36
        -robot_maker
37
        -close_files
38
    """
39
    for i in ACTUAL_NAME:
40
        html_init(i)  # create pages html files
41
    menu_writer()  # write menu for each html file
42
    for i in ACTUAL_NAME:
43
        contain(i)  # write contains of each page
44
        html_end(i)  # end tags of each page
45
    css_creator()  # create css file
46
    icon_creator()
47
    robot_maker()
48
    close_files()
49
def main_handler_2(time_1=0):
50
    """
51
    Second part of main handler
52
    :param time_1: time that passed but not counted in generation time
53
    :type time_1:float
54
    :return:None
55
    call:
56
        -file_handler
57
        -address_print
58
        -print_warning
59
        -file_size
60
        -internet
61
        -server
62
        -preview
63
        -close_files
64
    """
65
    file_handler()  # call file_handler
66
    total_perf_time = generation_time(time_1)
67
    print("HOMEPAGE is ready,generated in " + str(total_perf_time) + " sec")
68
    print("Upload output folder contains directly to your host")
69
    print("Please Don't Change HTML Files Name")
70
    address_print()  # print files location
71
    print_warning()  # print all of the detected warnings
72
    file_size()
73
    logger(True, perf_time=total_perf_time)  # add success run of qpage to local logger
74
    if internet():  # check internet connection
75
        server()  # send query to qpage server
76
    browse = int(input("Preview HOMEPAGE?[1] or Not[2]"))  # get input from user for preview of site
77
    if browse == 1:  # check browse status
78
        preview()  # call preview function
79
        close_files()  # close all of the open files
80
    gc.collect()
81
def response_handler(response):
82
    """
83
    Calculate the generation time
84
    :param response: response flag , if there was a response run main handler again
85
    :type response:bool
86
    :return:None
87
    call:
88
        -wait_func
89
        -main_handler
90
    """
91
    if response:  # check response status
92
        print(
93
            "At least one of the folders create for the first time ,\n"
94
            " please put your data in proper order and run program again\n Program Reboot Automatically in 3 Sec")
95
        wait_func(3)  # wait for 3 sec
96
        main_handler(False)  # call main_handler again with False VERSION control flag
97
        sys.exit()  # exit program
98
def sample_handler():
99
    """
100
    Ask for run sample website
101
    :return:None
102
        call:
103
        -sample_site_download
104
        -is_sample_downloaded
105
    """
106
    # Get Input form user for loading sample files or continue
107
    response = input(
108
        "Press [S] to enter sample site material running or other keys to continue with your data")
109
    print_line(70)  # print line
110
    if response.upper() == "S":  # check response status
111
        sample_site_download(is_sample_downloaded())  # Call sample download
112
def main_handler(control_flag=True):
113
    """
114
    Main Handler
115
    :param control_flag: Check if VERSION control passed in prev step then Check for new VERSION of qpage
116
    :type control_flag:bool
117
    :return:None
118
        call:
119
        -generation_time
120
        -create_folder
121
        -print_logo
122
        -address_print
123
        -version_control
124
        -sample_handler
125
        -response_handler
126
        -page_name_update
127
        -main_handler_2
128
        -error_log
129
        -logger
130
        -close_files
131
        -enter_to_exit
132
    """
133
    try:
134
        start_time = generation_time()
135
        response = create_folder()  # Check Folder and Files Status
136
        address_print()  # Print Files Location
137
        if control_flag:  # Check if VERSION control passed in prev step
138
            print("QPAGE By S.Haghighi & M.M.Rahimi")
139
            print("VERSION : " + VERSION)
140
            print_logo()
141
            version_control()  # Check for new VERSION of qpage
142
        response_handler(response)  # call response_handler
143
        sample_browser()
144
        sample_handler()  # run sample handler
145
        clear_folder(OUT_DIR)  # clear all of files in output directory
146
        page_name_update()  # update page names
147
        main_handler_2(time_1=start_time)  # call part_2 of main_handler
148
    except FileNotFoundError as e:  # error exception in FileNotFound ( When Something Missed)
149
        error_log(e)
150
        logger(False)  # Add Failed Run to local logger file
151
        error_handler()  # call error_handler
152
    except ValueError as e:
153
        error_log(e)
154
        print("Bad Input")
155
        logger(False)  # Add Failed Run to local logger file
156
        close_files()  # Close all of the opne files
157
        enter_to_exit()  # get input from user to continue
158
        main_handler()  # call part_1 of main_handler , restart from the first
159
    except PermissionError as e:
160
        error_log(e)
161
        logger(False)  # Add Failed Run to local logger file
162
        print("Files Is Open By Another Program")
163
        close_files()  # Close all of the open files
164
        enter_to_exit()  # get input from user to continue
165
        main_handler()  # call part_1 of main_handler , restart from the first
166
if __name__ == "__main__":
167
    args=sys.argv
168
    if len(args)>1:
169
        if args[1].upper()=="TEST":
170
            doctest.testfile("test.py",verbose=True)
171
        else:
172
            print("Bad Input")
173
    else:
174
        main_handler()
175