def execute_controlfile(self, name): """ Execute controlfile or agenda on workspace. This method looks recursively for a controlfile with the given name in the current directory and the arts include path. If such a file has been found it will be parsed and executed on the workspace. Args: name(str): Name of the controlfile Raises: Exception: If parsing of the controlfile fails. Returns: The controlfile as parsed Agenda object. """ if not name in imports: agenda = Agenda.parse(name) imports[name] = agenda else: agenda = imports[name] self.execute_agenda(agenda) return agenda
def execute_controlfile(self, name): """ Execute a given controlfile on the workspace. This method looks recursively for a controlfile with the given name in the current directory and the arts include path. If such a file has been found it will be parsed and executed on the workspace. Args: name(str): Name of the controlfile Raises: Exception: If parsing of the controlfile fails. """ if not name in imports: imports[name] = Agenda.parse(name) include_path_push(os.getcwd()) data_path_push(os.getcwd()) imports[name].execute(self) include_path_pop() data_path_pop()
def __init__(self, agenda): """ Create include from argument. Args: agenda (str, Agenda): Argument to the INCLUDE statement. This can either be a string or an Agenda object. """ if type(agenda) == str: if not agenda in imports: self.agenda = Agenda.parse(agenda) imports[agenda] = self.agenda else: self.agenda = imports[agenda] elif type(agenda) == Agenda: self.agenda = agenda else: raise Exception("agenda argument must be either a controlfile" " name or a typhon.arts.workspace.agenda.Agenda object.")