Exemplo n.º 1
0
def MolecularToolsMainMenu(DataUser):
    """
        Menu and Prompt screens for menu driven user interface
        Main Menu String
            Current Options:
            A - Update Status:  provides user with what the number of compounds in 
                                a group that have been completed for a particular
                                level of theory and basis set combination.
            B - Compare Methods: allows user to compare various computed properties
                                such as energy and coordinates for different methods
              - Query Data:     pulls data from database for later use.
            C - Model Data:     uses machine learning to construct a data model using
                                neural networks.
            D - Test Query:     Test connection to database.
            U - Update Data:    Allows users with the priviledge to create or insert
                                data the option to do so.
    """

    import MenuTools

    MMName = 'MAIN MENU'
    MMOptions = [['A', 'Update Status'], ['B', 'Compare Methods'],
                 ['C', 'Model Molecular Data'], ['D', 'Model Health Data'],
                 ['Q', 'Quit']]
    if DataUser.Update:
        MMOptions.append(['U', 'Update Molecule Database'])
        MMOptions.append(['V', 'Update Health Database'])
    MMString = MenuTools.CreateMenu(MMName, MMOptions)

    # User prompt string connected to Main Menu
    PromptString = 'Please select an option from Main Menu: '

    # Control code for Main Menu
    Option = ''
    while (Option != 'Q') and (Option != 'q'):
        # Output menu and prompt
        print(MMString)
        Option = input(PromptString)
        # Option A: Update status
        if Option == 'A':
            UpdateStatus.UpdateStatus(DataUser)
        elif Option == 'B':
            CompareMethods.CompareMethods(DataUser)
        elif Option == 'C':
            MolecularModelData.ModelData(DataUser)
        elif Option == 'D':
            HealthModelData.ModelData(DataUser)
        elif (Option == 'Q') or (Option == 'q'):
            print('Exiting Data Tools')
        elif (Option == 'U') and DataUser.Update:
            MolecularDatabase.UpdateMenu(DataUser)
        elif (Option == 'V') and DataUser.Update:
            HealthDatabase.UpdateMenu(DataUser)
        # if the user does not select a valid option, a warning is
        # printed and the menu and command prompt is reprinted.
        else:
            print('Input not recognized.')