Ejemplo n.º 1
0
    def parse(self, infile):
        """Parse a ZincAnalysis instance from an open text file."""
        def parse_element(cls):
            parsed_sections = [
                self._parse_section(infile, header) for header in cls.headers
            ]
            return cls(parsed_sections)

        self._verify_version(infile)
        compile_setup = parse_element(CompileSetup)
        relations = parse_element(Relations)
        stamps = parse_element(Stamps)
        apis = parse_element(APIs)
        source_infos = parse_element(SourceInfos)
        compilations = parse_element(Compilations)
        return ZincAnalysis(compile_setup, relations, stamps, apis,
                            source_infos, compilations)