def create_parser(self): # The DefTree and reader are not under test, but simple enough to use directly self.deftree = DefTree.new() self.parser = DefinitionParser.new(self.deftree, debug_mode=True) # The reader is not under test, but it provides a good way to feed strings to the parser self.reader = LineReader.new(self.parser)
def create_parser(self, configs = Util.Container()): # The manifest and reader are not under test, but simple enough to use directly self.manifest = Helpers.new_manifest() self.configs = Helpers.new_settings(configs) self.parser = ManifestParser.new(self.manifest, self.configs, debug_mode=True, validate_files=False) # The reader is not under test, but it provides a good way to feed strings to the parser self.reader = LineReader.new(self.parser)
def build_definition(in_fname): """ Build a definition """ def_tree = DefTree.new(in_fname) parser = DefinitionParser.new(def_tree) reader = LineReader.new(parser) reader.read_file_by_name(in_fname) return def_tree
def build_config(in_fname): """ Build a config """ config = Config.new(in_fname) parser = ConfigParser.new(config) reader = LineReader.new(parser) reader.read_file_by_name(in_fname) return config
def build_manifest(in_fname, settings, pkg_root, validate_files=True): """ Build a manifest with the given settings """ manifest = Manifest.new(in_fname, pkg_root) parser = ManifestParser.new(manifest, settings, validate_files=validate_files, def_parser=build_definition) reader = LineReader.new(parser) reader.read_file_by_name(in_fname) return manifest
def _include_file(self, filename): """ Include the contents of another file as if it was directly placed in this file """ abs_filename = Util.get_abs_path(filename, self.prj_root) # Save the project root so that files paths can be relative to the included file old_prj_root = self.prj_root self.prj_root = os.path.dirname(abs_filename) # Read the file using this object as the parser reader = LineReader.new(self, do_end=False) reader.read_file_by_name(abs_filename) # Restore the original project root self.prj_root = old_prj_root
def read_project(in_fname, out_dir): """ Read project @return Tuple containing (Project object with parsed result, Project directory, output directory) """ project = Project.new(in_fname, err_fatal=True) parser = ProjectParser.new(project) reader = LineReader.new(parser) reader.read_file_by_name(in_fname) cwd = os.getcwd() prj_dir = Util.get_abs_path(os.path.dirname(project.get_filename()), cwd) out_dir = Util.get_abs_path(out_dir, cwd) return (project, prj_dir, out_dir)
def _include_file(self, filename): """ Include the contents of another file as if it was directly placed in this file """ abs_filename = Util.get_abs_path(filename, self.pkg_root) if not self.validate_files: # For testing, just add the include file as a source self.debug("ADD_AUX: {}".format(abs_filename)) self.manifest.add_entry("aux_files", abs_filename) return # Save the package root so that files paths can be relative to the included file old_pkg_root = self.pkg_root self.pkg_root = os.path.dirname(abs_filename) # Read the file using this object as the parser reader = LineReader.new(self, do_end=False) reader.read_file_by_name(abs_filename) # Restore the original package root self.pkg_root = old_pkg_root
def setUp(self): self.parser = Helpers.new_parser() self.reader = LineReader.new(self.parser)
def create_parser(self): self.project = Project.new() self.parser = ProjectParser.new(self.project, debug_mode=True) # The reader is not under test, but it provides a good way to feed strings to the parser self.reader = LineReader.new(self.parser)