def generateCommandLineOptionsDict(self):
    '\n        This function generates a dictionary mapping COMPAS options to their specified \n        values (or empty strings for boolean options). These can be combined into a string\n        and run directly as a terminal command, or passed to the stroopwafel interface\n        where some of them may be overwritten. Options not to be included in the command \n        line should be set to pythons None (except booleans, which should be set to False)\n\n        Parameters\n        -----------\n        self : pythonProgramOptions\n            Contains program options\n\n        Returns\n        --------\n        commands : str or list of strs\n        '
    booleanChoices = self.booleanChoices()
    booleanCommands = self.booleanCommands()
    nBoolean = len(booleanChoices)
    assert (len(booleanCommands) == nBoolean)
    numericalChoices = self.numericalChoices()
    numericalCommands = self.numericalCommands()
    nNumerical = len(numericalChoices)
    assert (len(numericalCommands) == nNumerical)
    stringChoices = self.stringChoices()
    stringCommands = self.stringCommands()
    nString = len(stringChoices)
    assert (len(stringCommands) == nString)
    listChoices = self.listChoices()
    listCommands = self.listCommands()
    nList = len(listChoices)
    assert (len(listCommands) == nList)
    command = {'compas_executable': self.compas_executable}
    for i in range(nBoolean):
        if (booleanChoices[i] == True):
            command.update({booleanCommands[i]: ''})
        elif (booleanChoices[i] == False):
            command.update({booleanCommands[i]: 'False'})
    for i in range(nNumerical):
        if (not (numericalChoices[i] == None)):
            command.update({numericalCommands[i]: str(numericalChoices[i])})
    for i in range(nString):
        if (not (stringChoices[i] == None)):
            command.update({stringCommands[i]: cleanStringParameter(stringChoices[i])})
    for i in range(nList):
        if listChoices[i]:
            command.update({listCommands[i]: ' '.join(map(str, listChoices[i]))})
    return command
This function generates a dictionary mapping COMPAS options to their specified 
values (or empty strings for boolean options). These can be combined into a string
and run directly as a terminal command, or passed to the stroopwafel interface
where some of them may be overwritten. Options not to be included in the command 
line should be set to pythons None (except booleans, which should be set to False)

Parameters
-----------
self : pythonProgramOptions
    Contains program options

Returns
--------
commands : str or list of strs
def generateCommandLineOptionsDict(self):
    '\n        This function generates a dictionary mapping COMPAS options to their specified \n        values (or empty strings for boolean options). These can be combined into a string\n        and run directly as a terminal command, or passed to the stroopwafel interface\n        where some of them may be overwritten. Options not to be included in the command \n        line should be set to pythons None (except booleans, which should be set to False)\n\n        Parameters\n        -----------\n        self : pythonProgramOptions\n            Contains program options\n\n        Returns\n        --------\n        commands : str or list of strs\n        '
    booleanChoices = self.booleanChoices()
    booleanCommands = self.booleanCommands()
    nBoolean = len(booleanChoices)
    assert (len(booleanCommands) == nBoolean)
    numericalChoices = self.numericalChoices()
    numericalCommands = self.numericalCommands()
    nNumerical = len(numericalChoices)
    assert (len(numericalCommands) == nNumerical)
    stringChoices = self.stringChoices()
    stringCommands = self.stringCommands()
    nString = len(stringChoices)
    assert (len(stringCommands) == nString)
    listChoices = self.listChoices()
    listCommands = self.listCommands()
    nList = len(listChoices)
    assert (len(listCommands) == nList)
    command = {'compas_executable': self.compas_executable}
    for i in range(nBoolean):
        if (booleanChoices[i] == True):
            command.update({booleanCommands[i]: })
        elif (booleanChoices[i] == False):
            command.update({booleanCommands[i]: 'False'})
    for i in range(nNumerical):
        if (not (numericalChoices[i] == None)):
            command.update({numericalCommands[i]: str(numericalChoices[i])})
    for i in range(nString):
        if (not (stringChoices[i] == None)):
            command.update({stringCommands[i]: cleanStringParameter(stringChoices[i])})
    for i in range(nList):
        if listChoices[i]:
            command.update({listCommands[i]: ' '.join(map(str, listChoices[i]))})
    return command