+ #Note that the module will be added at the END of the extant ones
+ def add_module(self, module):
+ i = find_token(self.header, "\\begin_modules", 0)
+ if i == -1:
+ #No modules yet included
+ i = find_token(self.header, "\\textclass", 0)
+ if i == -1:
+ self.warning("Malformed LyX document: No \\textclass!!")
+ return
+ modinfo = ["\\begin_modules", module, "\\end_modules"]
+ self.header[i + 1: i + 1] = modinfo
+ return
+ j = find_token(self.header, "\\end_modules", i)
+ if j == -1:
+ self.warning("(add_module)Malformed LyX document: No \\end_modules.")
+ return
+ k = find_token(self.header, module, i)
+ if k != -1 and k < j:
+ return
+ self.header.insert(j, module)
+
+
+ def get_module_list(self):
+ i = find_token(self.header, "\\begin_modules", 0)
+ if (i == -1):
+ return []
+ j = find_token(self.header, "\\end_modules", i)
+ return self.header[i + 1 : j]
+
+
+ def set_module_list(self, mlist):
+ modbegin = find_token(self.header, "\\begin_modules", 0)
+ newmodlist = ['\\begin_modules'] + mlist + ['\\end_modules']
+ if (modbegin == -1):
+ #No modules yet included
+ tclass = find_token(self.header, "\\textclass", 0)
+ if tclass == -1:
+ self.warning("Malformed LyX document: No \\textclass!!")
+ return
+ modbegin = tclass + 1
+ self.header[modbegin:modbegin] = newmodlist
+ return
+ modend = find_token(self.header, "\\end_modules", modbegin)
+ if modend == -1:
+ self.warning("(set_module_list)Malformed LyX document: No \\end_modules.")
+ return
+ newmodlist = ['\\begin_modules'] + mlist + ['\\end_modules']
+ self.header[modbegin:modend + 1] = newmodlist
+
+