def convertValues(self): # Before any interpolation and conversion, convert essential # local and global dir to absolut paths! # important, because its more safe! self.interpolation.setSkipping(False) # turn interpolation on self.config["Job"]["localDir"] = cF.expandEnvVar( self.config["Job"]["localDir"], self.envRegexPattern, errorIfNotFullyExpanded=False ) # allow Job:localDir to contain '$VAR' variables, are expanded by shell if "$" in self.config["Job"]["localDir"]: CE.printWarning( "Your Job:localDir: %s contains '$' character, which are only expanded in Bash!" % self.config["Job"]["localDir"] ) self.config["Job"]["globalDir"] = os.path.abspath( cF.expandEnvVar(self.config["Job"]["globalDir"], self.envRegexPattern, errorIfNotFullyExpanded=True) ) # Job:globalDir is made absolute to execution dir when configuring # convert and interpolate all values in base class super(GeneratorMPI, self).convertValues() # do some other conversion for this generator values self.__convertValues()
def makeDirectory(path,interact=True, name="Directory", defaultCreate=True, defaultMakeEmpty=False): if not os.path.exists(path) : CE.printInfo("%s : %s" % (name,path) + " does not exist!") default = 'y' if defaultCreate else 'n' r='' if interact: r = input(CE.makePrompt("Do you want to create directory [y|n, default(%s)]: " % default)).strip() r = r or default if r == 'n': raise CE.MyValueError("Aborted due to not created directory!") else: os.makedirs(path) CE.printInfo("Created %s : %s" % (name,path)) else: mess = "%s : %s" % (name,path) + " does already exist!" if interact: CE.printWarning(mess) else: CE.printInfo(mess) # dir exists default='y' if defaultMakeEmpty else 'n' r='' if interact: r = input(CE.makePrompt("Do you want to remove and recreate the directory [y|n, default(%s)]: " % default) ).strip() r = r or default if r == 'y': shutil.rmtree(path) os.makedirs(path) CE.printInfo("Removed and created %s : %s" % (name,path))