예제 #1
0
    def __get_parser(self):
        if self.__parser:
            return self.__parser

        if "parser" in self.conf:
            parser = self.__inst_parser(self.conf["parser"])()
        else:
            parser = PropertiesParser()

        options_regex = re.compile("^parser\.options\.(.+)$")

        for key, value in self.conf.items():
            match = options_regex.search(key)

            if match:
                if not parser.options:
                    parser.options = {}

                opt = match.group(1)
                parser.options[opt] = value

        self.__parser = parser

        return parser