import inspect import os, re def LineNumber(): return inspect.currentframe().f_back.f_lineno def ReConvert(expression): classes = [ '[:alnum:]', '[:alpha:]', '[:digit:]', '[:word:]', '[:xdigit:]', '[:upper:]', '[:space:]', '[:lower:]', '[:blank:]'] equivs = [ 'a-zA-Z0-9', 'a-zA-Z', '0-9', 'A-Za-z0-9_', 'A-Fa-f0-9', 'A-Z', ' \t\r\n\v\f', 'a-z', ' \t'] for i in range(len(classes)): expression = expression.replace(classes[i], equivs[i]) return expression def FileExists(file): if file == None: return False return os.path.exists(file) def Matches(pattern, value): pattern = ReConvert(pattern) p = re.compile(pattern) m = p.search(value) if m == None: return False return True def CoerseBool(val): true_values = ['True', 'true', 't', '1', 1, True] for v in true_values: if val == v: return True return False