def generate_pydoc( module: str, article_id: str, article_title: str, target_dir: str, module_overview: str, func_prefix: Optional[str] = None, ) -> None: """ Args: module (str): The Python module to parse and generate docs for. article_id (str): The article ID. article_title (str): The article title. target_dir (str): The target directory to generate docs at. func_prefix (str): Prefix to add to function signature. module_overview (str): Module overview to add to the doc header. Returns: None: No data returned. """ pydocmd = PydocMarkdown() pydocmd.processors[0] = IgnoreDocstringProcessor() pydocmd.processors[1] = SmartProcessor( sphinx=CommonServerPythonProcessor()) pydocmd.renderer = DemistoMarkdownRenderer( insert_header_anchors=False, func_prefix=func_prefix, module_overview=module_overview, escape_html_in_docstring=True, classdef_code_block=False, descriptive_class_title=False, signature_with_decorators=False, signature_class_prefix=True, ) loader: PythonLoader = next( (ldr for ldr in pydocmd.loaders if isinstance(ldr, PythonLoader)), None) loader.modules = [module] modules = pydocmd.load_modules() pydocmd.process(modules) pydoc = pydocmd.renderer.render_to_string(modules) article_description = f'API reference documentation for {article_title}.' content = f'---\nid: {article_id}\ntitle: {article_title}\ndescription: {article_description}\n---\n\n{module_overview}\n\n{pydoc}' with open(f'{target_dir}/{article_id}.md', mode='w', encoding='utf-8') as f: f.write(content)
def generate_pydoc(module: str, article_id: str, article_title: str, target_dir: str, func_prefix: Optional[str], module_overview: Optional[str]) -> None: """ Args: module (str): The Python module to parse and generate docs for. article_id (str): The article ID. article_title (str): The article title. target_dir (str): The target directory to generate docs at. func_prefix (str): Prefix to add to function signature. module_overview (str): Module overview to add to the doc header. Returns: None: No data returned. """ pydocmd = PydocMarkdown() pydocmd.renderer = DemistoMarkdownRenderer(insert_header_anchors=False, func_prefix=func_prefix, module_overview=module_overview) loader: PythonLoader = next( (ldr for ldr in pydocmd.loaders if isinstance(ldr, PythonLoader)), None) loader.modules = [module] modules = pydocmd.load_modules() pydocmd.process(modules) stdout = sys.stdout sys.stdout = tmp_stdout = StringIO() pydocmd.render(modules) sys.stdout = stdout pydoc = tmp_stdout.getvalue() article_description = f'API reference documentation for {article_title}.' content = f'---\nid: {article_id}\ntitle: {article_title}\ndescription: {article_description}\n---\n\n{pydoc}' with open(f'{target_dir}/{article_id}.md', mode='w', encoding='utf-8') as f: f.write(content)