def __init__(self, data, proj_docs, project, pagetree): self.project = project self.data = data self.pagetree = [] self.lists = [] self.docs = [] self.njobs = int(self.data['parallel']) self.parallel = self.njobs > 0 self.index = IndexPage(data, project, proj_docs) self.search = SearchPage(data, project) if not graphviz_installed and data['graph'].lower() == 'true': print( "Warning: Will not be able to generate graphs. Graphviz not installed." ) if self.data['relative']: graphparent = '../' else: graphparent = '' print("Creating HTML documentation...") try: if data['incl_src'] == 'true': for item in project.allfiles: self.docs.append(FilePage(data, project, item)) for item in project.types: self.docs.append(TypePage(data, project, item)) for item in project.absinterfaces: self.docs.append(AbsIntPage(data, project, item)) for item in project.procedures: self.docs.append(ProcPage(data, project, item)) for item in project.submodprocedures: self.docs.append(ProcPage(data, project, item)) for item in project.modules: self.docs.append(ModulePage(data, project, item)) for item in project.submodules: self.docs.append(ModulePage(data, project, item)) for item in project.programs: self.docs.append(ProgPage(data, project, item)) for item in project.blockdata: self.docs.append(BlockPage(data, project, item)) if len(project.procedures) > 0: self.lists.append(ProcList(data, project)) if data['incl_src'] == 'true': if len(project.files) + len(project.extra_files) > 1: self.lists.append(FileList(data, project)) if len(project.modules) + len(project.submodules) > 0: self.lists.append(ModList(data, project)) if len(project.programs) > 1: self.lists.append(ProgList(data, project)) if len(project.types) > 0: self.lists.append(TypeList(data, project)) if len(project.absinterfaces) > 0: self.lists.append(AbsIntList(data, project)) if len(project.blockdata) > 1: self.lists.append(BlockList(data, project)) if pagetree: for item in pagetree: self.pagetree.append(PagetreePage(data, project, item)) except Exception as e: if data['dbg']: traceback.print_exc() sys.exit('Error encountered.') else: sys.exit( 'Error encountered. Run with "--debug" flag for traceback.' ) if graphviz_installed and data['graph'].lower() == 'true': print('Generating graphs...') self.graphs = GraphManager( self.data['project_url'], self.data['output_dir'], self.data.get('graph_dir', ''), graphparent, self.data['coloured_edges'].lower() == 'true') for item in project.types: self.graphs.register(item) for item in project.procedures: self.graphs.register(item) for item in project.submodprocedures: self.graphs.register(item) for item in project.modules: self.graphs.register(item) for item in project.submodules: self.graphs.register(item) for item in project.programs: self.graphs.register(item) for item in project.files: self.graphs.register(item) for item in project.blockdata: self.graphs.register(item) self.graphs.graph_all() project.callgraph = self.graphs.callgraph project.typegraph = self.graphs.typegraph project.usegraph = self.graphs.usegraph project.filegraph = self.graphs.filegraph else: self.graphs = GraphManager( self.data['project_url'], self.data['output_dir'], self.data.get('graph_dir', ''), graphparent, self.data['coloured_edges'].lower() == 'true') project.callgraph = '' project.typegraph = '' project.usegraph = '' project.filegraph = '' if data['search'].lower() == 'true': print('Creating search index...') if data['relative']: self.tipue = ford.tipue_search.Tipue_Search_JSON_Generator( data['output_dir'], '') else: self.tipue = ford.tipue_search.Tipue_Search_JSON_Generator( data['output_dir'], data['project_url']) self.tipue.create_node(self.index.html, 'index.html', {'category': 'home'}) jobs = len(self.docs) + len(self.pagetree) progbar = tqdm(chain(iter(self.docs), iter(self.pagetree)), total=jobs, unit='', file=sys.stdout) for i, p in enumerate(progbar): self.tipue.create_node(p.html, p.loc, p.meta) print('')
def __init__(self, data, proj_docs, project, pagetree): env.globals[ "projectData" ] = data # This lets us use meta data anywhere within the template. # Also, in future for other template, we may not need to # pass the data obj. self.project = project self.data = data self.pagetree = [] self.lists = [] self.docs = [] self.njobs = int(self.data["parallel"]) self.parallel = self.njobs > 0 self.index = IndexPage(data, project, proj_docs) self.search = SearchPage(data, project) if not graphviz_installed and data["graph"].lower() == "true": print( "Warning: Will not be able to generate graphs. Graphviz not installed." ) if self.data["relative"]: graphparent = "../" else: graphparent = "" print("Creating HTML documentation...") try: if data["incl_src"] == "true": for item in project.allfiles: self.docs.append(FilePage(data, project, item)) for item in project.types: self.docs.append(TypePage(data, project, item)) for item in project.absinterfaces: self.docs.append(AbsIntPage(data, project, item)) for item in project.procedures: self.docs.append(ProcPage(data, project, item)) for item in project.submodprocedures: self.docs.append(ProcPage(data, project, item)) for item in project.modules: self.docs.append(ModulePage(data, project, item)) for item in project.submodules: self.docs.append(ModulePage(data, project, item)) for item in project.programs: self.docs.append(ProgPage(data, project, item)) for item in project.blockdata: self.docs.append(BlockPage(data, project, item)) if len(project.procedures) > 0: self.lists.append(ProcList(data, project)) if data["incl_src"] == "true": if len(project.files) + len(project.extra_files) > 1: self.lists.append(FileList(data, project)) if len(project.modules) + len(project.submodules) > 0: self.lists.append(ModList(data, project)) if len(project.programs) > 1: self.lists.append(ProgList(data, project)) if len(project.types) > 0: self.lists.append(TypeList(data, project)) if len(project.absinterfaces) > 0: self.lists.append(AbsIntList(data, project)) if len(project.blockdata) > 1: self.lists.append(BlockList(data, project)) if pagetree: for item in pagetree: self.pagetree.append(PagetreePage(data, project, item)) except Exception: if data["dbg"]: traceback.print_exc() sys.exit("Error encountered.") else: sys.exit('Error encountered. Run with "--debug" flag for traceback.') if graphviz_installed and data["graph"].lower() == "true": print("Generating graphs...") self.graphs = GraphManager( self.data["project_url"], self.data["output_dir"], self.data.get("graph_dir", ""), graphparent, self.data["coloured_edges"].lower() == "true", ) for item in project.types: self.graphs.register(item) for item in project.procedures: self.graphs.register(item) for item in project.submodprocedures: self.graphs.register(item) for item in project.modules: self.graphs.register(item) for item in project.submodules: self.graphs.register(item) for item in project.programs: self.graphs.register(item) for item in project.files: self.graphs.register(item) for item in project.blockdata: self.graphs.register(item) self.graphs.graph_all() project.callgraph = self.graphs.callgraph project.typegraph = self.graphs.typegraph project.usegraph = self.graphs.usegraph project.filegraph = self.graphs.filegraph else: self.graphs = GraphManager( self.data["project_url"], self.data["output_dir"], self.data.get("graph_dir", ""), graphparent, self.data["coloured_edges"].lower() == "true", ) project.callgraph = "" project.typegraph = "" project.usegraph = "" project.filegraph = "" if data["search"].lower() == "true": print("Creating search index...") if data["relative"]: self.tipue = ford.tipue_search.Tipue_Search_JSON_Generator( data["output_dir"], "" ) else: self.tipue = ford.tipue_search.Tipue_Search_JSON_Generator( data["output_dir"], data["project_url"] ) self.tipue.create_node(self.index.html, "index.html", {"category": "home"}) jobs = len(self.docs) + len(self.pagetree) progbar = tqdm( chain(iter(self.docs), iter(self.pagetree)), total=jobs, unit="", file=sys.stdout, ) for i, p in enumerate(progbar): self.tipue.create_node(p.html, p.loc, p.meta) print("")
def __init__(self, data, proj_docs, project, pagetree): self.project = project self.data = data self.pagetree = [] self.lists = [] self.docs = [] if data['relative']: ford.sourceform.set_base_url('.') ford.pagetree.set_base_url('.') data['project_url'] = '.' self.index = IndexPage(data, project, proj_docs) self.search = SearchPage(data, project) if data['relative']: ford.sourceform.set_base_url('..') ford.pagetree.set_base_url('..') data['project_url'] = '..' if not graphviz_installed and data['graph'].lower() == 'true': print( "Warning: Will not be able to generate graphs. Graphviz not installed." ) if graphviz_installed and data['graph'].lower() == 'true': print('Generating graphs...') self.graphs = GraphManager( self.data['project_url'], self.data['output_dir'], self.data.get('graph_dir', ''), self.data['coloured_edges'].lower() == 'true') for item in project.types: self.graphs.register(item) for item in project.procedures + project.submodprocedures: self.graphs.register(item) for item in project.modules + project.submodules: self.graphs.register(item) for item in project.programs: self.graphs.register(item) for item in project.files: self.graphs.register(item) for item in project.blockdata: self.graphs.register(item) self.graphs.graph_all() project.callgraph = self.graphs.callgraph project.typegraph = self.graphs.typegraph project.usegraph = self.graphs.usegraph project.filegraph = self.graphs.filegraph else: self.graphs = GraphManager( self.data['project_url'], self.data['output_dir'], self.data.get('graph_dir', ''), self.data['coloured_edges'].lower() == 'true') project.callgraph = '' project.typegraph = '' project.usegraph = '' project.filegraph = '' print("Creating HTML documentation...") try: for item in project.allfiles: self.docs.append(FilePage(data, project, item)) for item in project.types: self.docs.append(TypePage(data, project, item)) for item in project.absinterfaces: self.docs.append(AbsIntPage(data, project, item)) for item in project.procedures + project.submodprocedures: self.docs.append(ProcPage(data, project, item)) for item in project.modules + project.submodules: self.docs.append(ModulePage(data, project, item)) for item in project.programs: self.docs.append(ProgPage(data, project, item)) for item in project.blockdata: self.docs.append(BlockPage(data, project, item)) if len(project.procedures) > 0: self.lists.append(ProcList(data, project)) if len(project.allfiles) > 1: self.lists.append(FileList(data, project)) if len(project.modules + project.submodules) > 0: self.lists.append(ModList(data, project)) if len(project.programs) > 1: self.lists.append(ProgList(data, project)) if len(project.types) > 0: self.lists.append(TypeList(data, project)) if len(project.absinterfaces) > 0: self.lists.append(AbsIntList(data, project)) if len(project.blockdata) > 1: self.lists.append(BlockList(data, project)) if pagetree: for item in pagetree: self.pagetree.append(PagetreePage(data, project, item)) except Exception as e: if data['dbg']: traceback.print_exc() sys.exit('Error encountered.') else: sys.exit( 'Error encountered. Run with "--debug" flag for traceback.' ) if data['search'].lower() == 'true': print('Creating search index...') if data['relative']: self.tipue = ford.tipue_search.Tipue_Search_JSON_Generator( data['output_dir'], '') else: self.tipue = ford.tipue_search.Tipue_Search_JSON_Generator( data['output_dir'], data['project_url']) self.tipue.create_node(self.index.html, 'index.html', {'categroy': 'home'}) for p in self.docs: self.tipue.create_node(p.html, p.loc, p.obj.meta) for p in self.pagetree: self.tipue.create_node(p.html, p.loc)
def __init__(self, data, proj_docs, project, pagetree): self.project = project self.data = data self.pagetree = [] self.lists = [] self.docs = [] if data['relative']: ford.sourceform.set_base_url('.') ford.pagetree.set_base_url('.') data['project_url'] = '.' self.index = IndexPage(data, project, proj_docs) self.search = SearchPage(data, project) if data['relative']: ford.sourceform.set_base_url('..') ford.pagetree.set_base_url('..') data['project_url'] = '..' self.graphs = GraphManager(data['project_url'], self.data['output_dir'], 'graphs') for item in project.types: self.graphs.register(item) for item in project.procedures + project.submodprocedures: self.graphs.register(item) for item in project.modules + project.submodules: self.graphs.register(item) for item in project.programs: self.graphs.register(item) self.graphs.graph_all() project.callgraph = self.graphs.callgraph project.typegraph = self.graphs.typegraph project.usegraph = self.graphs.usegraph try: for item in project.files: self.docs.append(FilePage(data, project, item)) for item in project.types: self.docs.append(TypePage(data, project, item)) for item in project.absinterfaces: self.docs.append(AbsIntPage(data, project, item)) for item in project.procedures + project.submodprocedures: self.docs.append(ProcPage(data, project, item)) for item in project.modules + project.submodules: self.docs.append(ModulePage(data, project, item)) for item in project.programs: self.docs.append(ProgPage(data, project, item)) if len(project.procedures) > 0: self.lists.append(ProcList(data, project)) if len(project.files) > 1: self.lists.append(FileList(data, project)) if len(project.modules + project.submodules) > 0: self.lists.append(ModList(data, project)) if len(project.programs) > 1: self.lists.append(ProgList(data, project)) if len(project.types) > 0: self.lists.append(TypeList(data, project)) if len(project.absinterfaces) > 0: self.lists.append(AbsIntList(data, project)) if pagetree: for item in pagetree: self.pagetree.append(PagetreePage(data, project, item)) except Exception as e: if data['dbg']: traceback.print_exc() sys.exit('Error encountered.') else: sys.exit( 'Error encountered. Run with "--debug" flag for traceback.' ) if data['search'].lower() == 'true': if data['relative']: self.tipue = ford.tipue_search.Tipue_Search_JSON_Generator( data['output_dir'], '') else: self.tipue = ford.tipue_search.Tipue_Search_JSON_Generator( data['output_dir'], data['project_url']) self.tipue.create_node(self.index.html, 'index.html', {'categroy': 'home'}) for p in self.docs: self.tipue.create_node(p.html, p.loc, p.obj.meta) for p in self.pagetree: self.tipue.create_node(p.html, p.loc)