def kh_dbLoadRecords(self, arg0, tokens, ref): local_macros = macros.Macros(**self.env.db) full_line = reconstruct_line(tokens).strip() tokenLog = TokenLog() tokenLog.tokenList = tokens tokenLog.token_pointer = 1 args = parse_bracketed_macro_definitions(tokenLog) nargs = len(args) if nargs not in (1, 2, 3,): msg = str(ref) + full_line raise UnhandledTokenPattern, msg utils.logMessage(arg0 + full_line, utils.LOGGING_DETAIL__NOISY) dbFileName = local_macros.replace(utils.strip_quotes(args[0])) if nargs in (2, 3,): # accumulate additional macro definitions local_macros = self.parse_macro_args(args[1], ref, tokens, local_macros) if nargs in (3,): path = args[2] # msg = str(ref) + full_line if self.symbols.exists(path): # substitute from symbol table path = self.symbols.get(path).value if os.path.exists(path): dbFileName = os.path.join(path, dbFileName) try: obj = database.Database(self, dbFileName, ref, **local_macros.db) self.database_list.append(obj) self.kh_shell_command(arg0, tokens, ref) except text_file.FileNotFound, _exc: msg = 'Could not find database file: ' + dbFileName utils.detailedExceptionLog(msg) return
def kh_loadCommandFile(self, arg0, tokens, ref): fname = utils.strip_parentheses(reconstruct_line(tokens).strip()) # fname is given relative to current working directory fname_expanded = self.env.replace(fname) self.kh_shell_command('<', tokens, ref) try: obj = CommandFile(self, fname_expanded, ref, self.env, self.symbols) self.includedCommandFile_list.append(obj) except FileNotFound, _exc: msg = 'File not found: ' + fname_expanded utils.detailedExceptionLog(msg) return