コード例 #1
0
ファイル: output.py プロジェクト: zstresearch/ford
    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('')
コード例 #2
0
ファイル: output.py プロジェクト: kc9jud/ford
    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("")
コード例 #3
0
ファイル: output.py プロジェクト: szaghi/ford
 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)
コード例 #4
0
ファイル: output.py プロジェクト: pheibarrass/ford
 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)