Skip to content
Snippets Groups Projects
app.py 2.26 KiB
Newer Older
  • Learn to ignore specific revisions
  • Maryshca's avatar
    v1
    Maryshca committed
    import re
    import ctypes
    
    Maryshca's avatar
    v2  
    Maryshca committed
    import sys
    
    Maryshca's avatar
    v1
    Maryshca committed
    
    import dearpygui.dearpygui as dpg
    
    Maryshca's avatar
    Maryshca committed
    import numpy as np
    
    Maryshca's avatar
    Maryshca committed
    from dotenv import load_dotenv
    
    Maryshca's avatar
    v1
    Maryshca committed
    
    
    Maryshca's avatar
    Maryshca committed
    import config_ui
    import remote_run_ui
    import map_edit_ui
    from style import setup_fonts, setup_themes
    from handlers import setup_handlers
    from paths import ICON_PATH
    from remote_run_constants import LOMONOSOV
    
    
    def exit_callback():
        connections = dpg.get_item_user_data('run_window').get('connections', [])
        builds = dpg.get_item_user_data('run_window').get('builds', [])
    
        # with open('credentials.txt', 'a+', encoding='utf-8') as log:
        #     for host in connections:
        #         conn = connections[host]
        #         if conn.host == LOMONOSOV:
        #             if conn.id_rsa_path:
        #                 desc = f'{conn.host};{conn.username};{conn.id_rsa_path}'
        #             else:
        #                 desc = f'{conn.host};{conn.username}'
        #         else:
        #             desc = f'{conn.host};{conn.username};{conn.password}'
        #         log.write(desc + '\n')
    
        # with open('builds.txt', 'a+', encoding='utf-8') as log:
        #     for machine, model in builds:
        #         log.write(f'{machine};{model};{builds[(machine, model)]}\n')
    
        # with open('sessions.txt', 'a+', encoding='utf-8') as log:
        #     for row in dpg.get_item_children('models_table', 1):
        #         running_session_id = dpg.get_item_alias(row)
        #         model = dpg.get_value(f'{running_session_id}_model')
        #         machine = dpg.get_value(f'{running_session_id}_machine')
        #         log.write(f'{running_session_id};{machine};{model}\n')
    
        for conn in connections:
            connections[conn].close()
    
    def construct_ui():
    
    Maryshca's avatar
    Maryshca committed
        config_ui.construct_ui()
    
    Maryshca's avatar
    Maryshca committed
        remote_run_ui.construct_ui()
        map_edit_ui.construct_ui()
    
        setup_handlers()
        setup_fonts()
        setup_themes()
    
    Maryshca's avatar
    v1
    Maryshca committed
    
    
    Maryshca's avatar
    Maryshca committed
    load_dotenv()
    
    Maryshca's avatar
    v1
    Maryshca committed
    
    
    Maryshca's avatar
    Maryshca committed
    if sys.platform.startswith('win'):
        ctypes.windll.shcore.SetProcessDpiAwareness(1)
    
    Maryshca's avatar
    v1
    Maryshca committed
    
    
    Maryshca's avatar
    Maryshca committed
    if __name__ == '__main__':
    
    Maryshca's avatar
    Maryshca committed
        dpg.create_context()
        dpg.create_viewport(
            title='config file editor',
            small_icon=ICON_PATH,
            large_icon=ICON_PATH
        )
        dpg.setup_dearpygui()
        dpg.show_viewport()
    
        construct_ui()
    
    Maryshca's avatar
    Maryshca committed
        dpg.set_exit_callback(exit_callback)
    
    Maryshca's avatar
    Maryshca committed
        
        dpg.set_primary_window('main', True)
        dpg.start_dearpygui()
    
    Maryshca's avatar
    Maryshca committed
        dpg.destroy_context()