def set_config(self, path0, val0): self.expect(path0, dict, val0) for key, v in val0.items(): p = path0 + [key] if key == u"search-ignore-case": self.expect(p, bool, v) self.search_flags = re.IGNORECASE if v else 0 elif key == u"tag-ignore-case": self.expect(p, bool, v) self.tag_flags = re.IGNORECASE if v else 0 elif key == u"word-ignore-case": self.expect(p, bool, v) self.word_flags = re.IGNORECASE if v else 0 for key, v in val0.items(): p = path0 + [key] if key in (u"search-ignore-case", u"tag-ignore-case", u"word-ignore-case"): pass elif key == u"source": self.set_source(p, v) elif key == u"output-dir": self.expect(p, unicode, v) self.output_dir = v elif key == u"encoding": self.expect(p, unicode, v) self.encoding = v elif key == u"context": self.expect(p, int, v) self.context = v elif key == u"server-port": self.expect(p, int, v) self.server_port = v elif key == u"search": self.set_search(p, v) elif key == u"skip-files": self.expect_string_list(p, v) self.skip_files += v elif key == u"tag-breaks-word": self.expect(p, bool, v) self.tag_breaks_word = v elif key == u"separators-in-compound": self.expect(p, bool, v) self.separators_in_compound = v elif key == u"delete": self.set_delete(p, v) elif key == u"compound": self.set_compound(p, v) elif key == u"text": self.expect(p, unicode, v) self.text = kutil.safe_regex(v, self.tag_flags) elif key == u"sample": self.expect(p, unicode, v) self.sample = kutil.safe_regex(v, self.tag_flags) elif key == u"tag": self.expect(p, unicode, v) self.tag = kutil.safe_regex(v, self.tag_flags) elif key == u"word": self.expect(p, unicode, v) self.word = kutil.safe_regex(v, self.word_flags) else: self.key_error(path0, key)
def set_compound_one(self, path, v): self.expect_string_list(path, v) l = [kutil.safe_regex(x, self.tag_flags) for x in v] if len(l) == 2: self.compound_pair.append(l) else: self.error(path, u"expected 2 elements")
def set_search(self, path, v): self.expect(path, dict, v) for key, val in sorted(v.items()): p = path + [key] self.expect(p, unicode, val) re = kutil.safe_regex(val, self.search_flags) self.search.append((key, re))
def set_delete_one(self, path, v): self.expect_string_list(path, v) l = [kutil.safe_regex(x, self.tag_flags) for x in v] if len(l) == 1: self.delete.append(l[0]) elif len(l) == 2: self.delete_pair.append(l) else: self.error(path, u"expected 1 or 2 elements")