Exemplo n.º 1
0
    def __set_up_default_logger():
        """
        Set-up a default logger if it is not provided as parameter.
        :return: Instance of ColoredLogger
        """

        # Set-up the main logger instance.
        path_of_log_file = os.path.join(PATH_OF_FILE_DIR, "logs", "data_processor.log")
        return_logger = ColoredLogger(os.path.basename(__file__), log_file_path=path_of_log_file)
        return_logger.info("Default logger has been set-up in data_processor module.")

        return return_logger
Exemplo n.º 2
0
    def __set_up_default_logger():
        """
        Set-up a default logger if it is not provided as parameter.
        TODO: Make common method from it. It is used in more places.
        :return: Instance of ColoredLogger
        """

        # Set-up the main logger instance.
        path_of_log_file = os.path.join(PATH_OF_FILE_DIR, "..", "..", "logs",
                                        "report_tab_log.log")
        return_logger = ColoredLogger(os.path.basename(__file__),
                                      log_file_path=path_of_log_file)
        return_logger.info(
            "Default logger has been set-up in report_tab module.")

        return return_logger
Exemplo n.º 3
0
def main(c_logger=None):

    if not c_logger:
        # Set-up the main logger instance.
        path_of_log_file = os.path.join(PATH_OF_FILE_DIR, "..", "..", "logs",
                                        "main_log.log")
        c_logger = ColoredLogger(os.path.basename(__file__),
                                 log_file_path=path_of_log_file)
    if TEST_RUNNING:
        data_processor_instance = DataProcessor(config=TEST_CONFIG_FILE,
                                                c_logger=c_logger)
        graph_config_parser = set_up_graph_settings_config_parser(
            c_logger=c_logger, config_file=TEST_GRAPH_CONFIG_FILE)
        user_info_parser = set_up_user_info_config_parser(
            c_logger=c_logger, config_file=TEST_USER_INFO_CONFIG_FILE)
    else:
        data_processor_instance = DataProcessor(c_logger=c_logger)
        graph_config_parser = set_up_graph_settings_config_parser(
            c_logger=c_logger)
        user_info_parser = set_up_user_info_config_parser(c_logger=c_logger)

    window = tk.Tk()
    window.iconphoto(False, tk.PhotoImage(file=PATH_OF_WINDOW_ICON))
    window.title("Time reporting")

    # change ttk theme to 'clam' to fix issue with downarrow button
    style = ttk.Style()

    style.theme_create(
        "MyStyle",
        parent="alt",
        settings={
            "TNotebook": {
                "configure": {
                    "tabmargins": [2, 5, 2, 0]
                }
            },
            "TNotebook.Tab": {
                "configure": {
                    "padding": [50, 2]
                }
            },
        },
    )

    style.theme_use("MyStyle")
    note = ttk.Notebook(window)

    main_tab = tk.Frame(note)
    report_config_tab = tk.Frame(note)
    user_config_tab = tk.Frame(note)
    metrics_tab = tk.Frame(note)

    note.add(main_tab, text="Main")
    note.add(report_config_tab, text="Report")
    note.add(user_config_tab, text="User Config")
    note.add(metrics_tab, text="Metrics")

    note.pack(expand=True, fill=tk.BOTH)

    main_exit_button = tk.Button(
        window,
        width=30,
        text="EXIT",
        bg="grey60",
        activebackground="red",
        font="Helvetica 12 bold",
        command=lambda: quit_from_app(window),
    )

    main_exit_button.pack(fill=tk.X)

    main_tab_module.MainWindow(
        main_tab,
        c_logger=c_logger,
        data_processor=data_processor_instance,
        graph_settings=graph_config_parser,
        graph_settings_file_path=GRAPH_CONFIG_FILE,
    )

    report_tab_module.ReportConfigTab(report_config_tab,
                                      c_logger=c_logger,
                                      data_processor=data_processor_instance)

    user_tab_module.UserConfigTab(
        user_config_tab,
        c_logger=c_logger,
        user_info_parser=user_info_parser,
        user_info_config_file_path=USER_INFO_CONFIG_FILE,
    )

    metrics_tab_module.MetricsTab(
        metrics_tab,
        c_logger=c_logger,
        data_processor=data_processor_instance,
    )

    window.protocol("WM_DELETE_WINDOW", lambda: quit_from_app(window))

    window.mainloop()
Exemplo n.º 4
0
__author__ = "milanbalazs"
__version__ = "0.1"

# Get the path of the directory of the current file.
PATH_OF_FILE_DIR = os.path.join(os.path.realpath(os.path.dirname(__file__)))
# Append the required directories to PATH
sys.path.append(PATH_OF_FILE_DIR)
sys.path.append(os.path.join(PATH_OF_FILE_DIR, "gui"))

import main_gui  # noqa: E402
from color_logger import ColoredLogger  # noqa: E402

# Set-up the main logger instance.
PATH_OF_LOG_FILE = os.path.join(PATH_OF_FILE_DIR, "logs", "main_log.log")
MAIN_LOGGER = ColoredLogger(os.path.basename(__file__),
                            log_file_path=PATH_OF_LOG_FILE)

####
# ENTRY POINT
####

if __name__ == "__main__":

    import argparse

    parser = argparse.ArgumentParser(description=__doc__)

    parser.add_argument(
        "--test",
        dest="test_flag",
        help="If this flag is set, the tool uses test values.",