def getModules(self, expDesc, hsVersion='<STR_LIT>'):
<EOL>shutil.rmtree(g_myEnv.testOutDir, ignore_errors=True)<EOL>args = [<EOL>"<STR_LIT>" % (json.dumps(expDesc)),<EOL>"<STR_LIT>" % (g_myEnv.testOutDir),<EOL>"<STR_LIT>" % (hsVersion)<EOL>]<EOL>self.addExtraLogItem({'<STR_LIT:args>':args})<EOL>experiment_generator.expGenerator(args)<EOL>descriptionPyPath = os.path.join(g_myEnv.testOutDir, "<STR_LIT>")<EOL>permutationsPyPath = os.path.join(g_myEnv.testOutDir, "<STR_LIT>")<EOL>return (self.checkPythonScript(descriptionPyPath),<EOL>self.checkPythonScript(permutationsPyPath))<EOL>
This does the following:

        1.) Calls ExpGenerator to generate a base description file and permutations
        file from expDescription.

        2.) Verifies that description.py and permutations.py are valid python
        modules that can be loaded

        3.) Returns the loaded base description module and permutations module

        Parameters:
        -------------------------------------------------------------------
        expDesc:       JSON format experiment description
        hsVersion:     which version of hypersearch to use ('v2'; 'v1' was dropped)
        retval:        (baseModule, permutationsModule)