Module pdocs.render
View Source
import os.path import re import typing from mako.exceptions import TopLevelLookupException from mako.lookup import TemplateLookup import pdocs.doc html_module_suffix = ".html" html_package_name = "index.html" """ The file name to use for a package's `__init__.py` module. """ _template_path = [os.path.join(os.path.dirname(__file__), "templates")] """ A list of paths to search for Mako templates used to produce the plain text and HTML output. Each path is tried until a template is found. """ tpl_lookup = TemplateLookup( directories=_template_path, cache_args={"cached": True, "cache_type": "memory"} ) """ A `mako.lookup.TemplateLookup` object that knows how to load templates from the file system. You may add additional paths by modifying the object's `directories` attribute. """ def _get_tpl(name): """ Returns the Mako template with the given name. If the template cannot be found, a nicer error message is displayed. """ try: t = tpl_lookup.get_template(name) except TopLevelLookupException: locs = [os.path.join(p, name.lstrip("/")) for p in _template_path] raise IOError(2, "No template at any of: %s" % ", ".join(locs)) return t def html_index(roots: typing.Sequence[pdocs.doc.Module], link_prefix: str = "/") -> str: """ Render an HTML module index. """ t = _get_tpl("/html_index.mako") t = t.render(roots=roots, link_prefix=link_prefix) return t.strip() def html_module( mod: pdocs.doc.Module, external_links: bool = False, link_prefix: str = "/", source: bool = True ) -> str: """ Returns the documentation for the module `module_name` in HTML format. The module must be importable. If `external_links` is `True`, then identifiers to external modules are always turned into links. If `link_prefix` is `True`, then all links will have that prefix. Otherwise, links are always relative. If `source` is `True`, then source code will be retrieved for every Python object whenever possible. This can dramatically decrease performance when documenting large modules. """ t = _get_tpl("/html_module.mako") t = t.render( module=mod, external_links=external_links, link_prefix=link_prefix, show_source_code=source ) return t.strip() def text(mod: pdocs.doc.Module, source: bool = True) -> str: """Returns the documentation for the module `module_name` in plain text format. The module must be importable. *source* - If set to True (the default) source will be included in the produced output. """ t = _get_tpl("/text.mako") text, _ = re.subn("\n\n\n+", "\n\n", t.render(module=mod, show_source_code=source).strip()) return text
Variables
html_module_suffix
html_package_name
The file name to use for a package's __init__.py
module.
tpl_lookup
A mako.lookup.TemplateLookup
object that knows how to load templates
from the file system. You may add additional paths by modifying the
object's directories
attribute.
Functions
html_index
def ( roots: Sequence[pdocs.doc.Module], link_prefix: str = '/' ) -> str
Render an HTML module index.
View Source
def html_index(roots: typing.Sequence[pdocs.doc.Module], link_prefix: str = "/") -> str: """ Render an HTML module index. """ t = _get_tpl("/html_index.mako") t = t.render(roots=roots, link_prefix=link_prefix) return t.strip()
html_module
def ( mod: pdocs.doc.Module, external_links: bool = False, link_prefix: str = '/', source: bool = True ) -> str
Returns the documentation for the module module_name
in HTML
format. The module must be importable.
If external_links
is True
, then identifiers to external modules
are always turned into links.
If link_prefix
is True
, then all links will have that prefix.
Otherwise, links are always relative.
If source
is True
, then source code will be retrieved for
every Python object whenever possible. This can dramatically
decrease performance when documenting large modules.
View Source
def html_module( mod: pdocs.doc.Module, external_links: bool = False, link_prefix: str = "/", source: bool = True ) -> str: """ Returns the documentation for the module `module_name` in HTML format. The module must be importable. If `external_links` is `True`, then identifiers to external modules are always turned into links. If `link_prefix` is `True`, then all links will have that prefix. Otherwise, links are always relative. If `source` is `True`, then source code will be retrieved for every Python object whenever possible. This can dramatically decrease performance when documenting large modules. """ t = _get_tpl("/html_module.mako") t = t.render( module=mod, external_links=external_links, link_prefix=link_prefix, show_source_code=source ) return t.strip()
text
def ( mod: pdocs.doc.Module, source: bool = True ) -> str
Returns the documentation for the module module_name
in plain
text format. The module must be importable.
source - If set to True (the default) source will be included in the produced output.
View Source
def text(mod: pdocs.doc.Module, source: bool = True) -> str: """Returns the documentation for the module `module_name` in plain text format. The module must be importable. *source* - If set to True (the default) source will be included in the produced output. """ t = _get_tpl("/text.mako") text, _ = re.subn("\n\n\n+", "\n\n", t.render(module=mod, show_source_code=source).strip()) return text