c ¤
C handler for mkdocstrings.
Classes:
-
CConfig
–C handler configuration.
-
CHandler
–The C handler class.
-
CInputConfig
–C handler configuration.
-
CInputOptions
–Accepted input options.
-
COptions
–Final options passed as template context.
-
CodeDoc
–A parsed C source file.
-
Comment
–A comment extracted from the source code.
-
DocFunc
–A parsed function.
-
DocGlobalVar
–A parsed global variable.
-
DocMacro
–A parsed macro.
-
DocType
–A parsed typedef.
-
Docstring
–A parsed docstring.
-
FuncParam
–A parameter in a function signature.
-
InOut
–Enumeration for parameter direction.
-
Macro
–A macro extracted from the source code.
-
Param
–A parameter in a function signature.
-
SupportsQualsAndType
–A protocol for types that can have qualifiers and a type.
-
TypeDecl
–Enumeration for type declarations.
-
TypeRef
–A reference to a type in C.
Functions:
-
ast_to_decl
–Convert a pycparser AST node to a TypeRef.
-
desc
–Get the description from a docstring.
-
extract_comments
–Extract comments from the source code.
-
extract_macros
–Extract macros from the source code.
-
get_handler
–Simply return an instance of
CHandler
. -
lookup_type_html
–Lookup a type and return an HTML representation.
-
parse_docstring
–Parse a docstring.
-
tp_ref_to_str
–Convert a TypeRef to a string.
-
typedef_to_str
–Convert a typedef to a string.
CConfig dataclass
¤
Bases: CInputConfig
C handler configuration.
Methods:
Attributes:
options class-attribute
instance-attribute
¤
Global options in mkdocs.yml.
CHandler ¤
Bases: BaseHandler
The C handler class.
Parameters:
-
config
(Mapping[str, Any]
) –The handler configuration.
-
base_dir
(Path
) –The base directory of the project.
-
**kwargs
(Any
, default:{}
) –Arguments passed to the parent constructor.
Methods:
-
collect
–Collect data given an identifier and selection configuration.
-
do_convert_markdown
–Render Markdown text; for use inside templates.
-
do_heading
–Render an HTML heading and register it for the table of contents. For use inside templates.
-
get_aliases
–Return the possible aliases for a given identifier.
-
get_extended_templates_dirs
–Load template extensions for the given handler, return their templates directories.
-
get_headings
–Return and clear the headings gathered so far.
-
get_inventory_urls
–Return the URLs (and configuration options) of the inventory files to download.
-
get_options
–Combine configuration options.
-
get_templates_dir
–Return the path to the handler's templates directory.
-
load_inventory
–Yield items and their URLs from an inventory file streamed from
in_file
. -
render
–Render a template using provided data and configuration options.
-
render_backlinks
–Render backlinks.
-
teardown
–Teardown the handler.
-
update_env
–Update the Jinja environment with any custom settings/filters/options for this handler.
Attributes:
-
base_dir
–The base directory of the project.
-
config
–The handler configuration.
-
custom_templates
–The path to custom templates.
-
domain
(str
) –The cross-documentation domain/language for this handler.
-
enable_inventory
(bool
) –Whether this handler is interested in enabling the creation of the
objects.inv
Sphinx inventory file. -
env
–The Jinja environment.
-
extra_css
(str
) –Extra CSS.
-
fallback_config
(dict
) –Fallback configuration when searching anchors for identifiers.
-
fallback_theme
(str
) –The theme to fallback to.
-
global_options
–The global options for the handler.
-
md
(Markdown
) –The Markdown instance.
-
mdx
–The Markdown extensions to use.
-
mdx_config
–The configuration for the Markdown extensions.
-
name
(str
) –The handler's name.
-
outer_layer
(bool
) –Whether we're in the outer Markdown conversion layer.
-
theme
–The selected theme.
custom_templates instance-attribute
¤
custom_templates = custom_templates
The path to custom templates.
domain class-attribute
¤
domain: str = 'c'
The cross-documentation domain/language for this handler.
enable_inventory class-attribute
¤
enable_inventory: bool = False
Whether this handler is interested in enabling the creation of the objects.inv
Sphinx inventory file.
env instance-attribute
¤
env = Environment(
autoescape=True,
loader=FileSystemLoader(paths),
auto_reload=False,
)
The Jinja environment.
fallback_config class-attribute
¤
fallback_config: dict = {}
Fallback configuration when searching anchors for identifiers.
global_options instance-attribute
¤
global_options = get('options', {})
The global options for the handler.
md property
¤
md: Markdown
mdx_config instance-attribute
¤
mdx_config = mdx_config
The configuration for the Markdown extensions.
collect ¤
collect(
identifier: str, options: COptions
) -> CollectorItem
Collect data given an identifier and selection configuration.
In the implementation, you typically call a subprocess that returns JSON, and load that JSON again into a Python dictionary for example, though the implementation is completely free.
Parameters:
-
identifier
(str
) –An identifier that was found in a markdown document for which to collect data. For example, in Python, it would be 'mkdocstrings.handlers' to collect documentation about the handlers module. It can be anything that you can feed to the tool of your choice.
-
options
(COptions
) –All configuration options for this handler either defined globally in
mkdocs.yml
or locally overridden in an identifier block by the user.
Returns:
-
CollectorItem
–Anything you want, as long as you can feed it to the
render
method.
do_convert_markdown ¤
do_convert_markdown(
text: str,
heading_level: int,
html_id: str = "",
*,
strip_paragraph: bool = False,
autoref_hook: AutorefsHookInterface | None = None,
) -> Markup
Render Markdown text; for use inside templates.
Parameters:
-
text
(str
) –The text to convert.
-
heading_level
(int
) –The base heading level to start all Markdown headings from.
-
html_id
(str
, default:''
) –The HTML id of the element that's considered the parent of this element.
-
strip_paragraph
(bool
, default:False
) –Whether to exclude the
<p>
tag from around the whole output.
Returns:
-
Markup
–An HTML string.
do_heading ¤
do_heading(
content: Markup,
heading_level: int,
*,
role: str | None = None,
hidden: bool = False,
toc_label: str | None = None,
**attributes: str,
) -> Markup
Render an HTML heading and register it for the table of contents. For use inside templates.
Parameters:
-
content
(Markup
) –The HTML within the heading.
-
heading_level
(int
) –The level of heading (e.g. 3 ->
h3
). -
role
(str | None
, default:None
) –An optional role for the object bound to this heading.
-
hidden
(bool
, default:False
) –If True, only register it for the table of contents, don't render anything.
-
toc_label
(str | None
, default:None
) –The title to use in the table of contents ('data-toc-label' attribute).
-
**attributes
(str
, default:{}
) –Any extra HTML attributes of the heading.
Returns:
-
Markup
–An HTML string.
get_aliases ¤
get_extended_templates_dirs ¤
get_headings ¤
get_inventory_urls ¤
Return the URLs (and configuration options) of the inventory files to download.
get_options ¤
Combine configuration options.
get_templates_dir ¤
Return the path to the handler's templates directory.
Override to customize how the templates directory is found.
Parameters:
-
handler
(str | None
, default:None
) –The name of the handler to get the templates directory of.
Raises:
-
ModuleNotFoundError
–When no such handler is installed.
-
FileNotFoundError
–When the templates directory cannot be found.
Returns:
-
Path
–The templates directory path.
load_inventory classmethod
¤
load_inventory(
in_file: BinaryIO,
url: str,
base_url: str | None = None,
**kwargs: Any,
) -> Iterator[tuple[str, str]]
Yield items and their URLs from an inventory file streamed from in_file
.
Parameters:
-
in_file
(BinaryIO
) –The binary file-like object to read the inventory from.
-
url
(str
) –The URL that this file is being streamed from (used to guess
base_url
). -
base_url
(str | None
, default:None
) –The URL that this inventory's sub-paths are relative to.
-
**kwargs
(Any
, default:{}
) –Ignore additional arguments passed from the config.
Yields:
render ¤
Render a template using provided data and configuration options.
Parameters:
-
data
(CodeDoc
) –The data to render that was collected above in
collect()
. -
options
(COptions
) –All configuration options for this handler either defined globally in
mkdocs.yml
or locally overridden in an identifier block by the user.
Returns:
-
str
–The rendered template as HTML.
render_backlinks ¤
Render backlinks.
teardown ¤
teardown() -> None
Teardown the handler.
This method should be implemented to, for example, terminate a subprocess that was started when creating the handler instance.
update_env ¤
update_env(config: dict) -> None
Update the Jinja environment with any custom settings/filters/options for this handler.
Parameters:
-
config
(dict
) –Configuration options for
mkdocs
andmkdocstrings
, read frommkdocs.yml
. See the source code of mkdocstrings.MkdocstringsPlugin.on_config to see what's in this dictionary.
CInputConfig dataclass
¤
CInputConfig(
options: Annotated[
CInputOptions,
_Field(
description="Configuration options for collecting and rendering objects."
),
] = CInputOptions(),
)
C handler configuration.
Methods:
Attributes:
-
options
(Annotated[CInputOptions, _Field(description='Configuration options for collecting and rendering objects.')]
) –Configuration options for collecting and rendering objects.
options class-attribute
instance-attribute
¤
options: Annotated[
CInputOptions,
_Field(
description="Configuration options for collecting and rendering objects."
),
] = field(default_factory=CInputOptions)
Configuration options for collecting and rendering objects.
CInputOptions dataclass
¤
CInputOptions(
extra: Annotated[
dict[str, Any],
_Field(
group="general", description="Extra options."
),
] = dict(),
heading: Annotated[
str,
_Field(
group="headings",
description="A custom string to override the autogenerated heading of the root object.",
),
] = "",
heading_level: Annotated[
int,
_Field(
group="headings",
description="The initial heading level to use.",
),
] = 2,
show_symbol_type_heading: Annotated[
bool,
_Field(
group="headings",
description="Show the symbol type in headings (e.g. mod, class, meth, func and attr).",
),
] = False,
show_symbol_type_toc: Annotated[
bool,
_Field(
group="headings",
description="Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).",
),
] = False,
toc_label: Annotated[
str,
_Field(
group="headings",
description="A custom string to override the autogenerated toc label of the root object.",
),
] = "",
)
Accepted input options.
Methods:
Attributes:
-
extra
(Annotated[dict[str, Any], _Field(group='general', description='Extra options.')]
) –Extra options.
-
heading
(Annotated[str, _Field(group='headings', description='A custom string to override the autogenerated heading of the root object.')]
) –A custom string to override the autogenerated heading of the root object.
-
heading_level
(Annotated[int, _Field(group='headings', description='The initial heading level to use.')]
) –The initial heading level to use.
-
show_symbol_type_heading
(Annotated[bool, _Field(group='headings', description='Show the symbol type in headings (e.g. mod, class, meth, func and attr).')]
) –Show the symbol type in headings (e.g. mod, class, meth, func and attr).
-
show_symbol_type_toc
(Annotated[bool, _Field(group='headings', description='Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).')]
) –Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
-
toc_label
(Annotated[str, _Field(group='headings', description='A custom string to override the autogenerated toc label of the root object.')]
) –A custom string to override the autogenerated toc label of the root object.
extra class-attribute
instance-attribute
¤
extra: Annotated[
dict[str, Any],
_Field(group="general", description="Extra options."),
] = field(default_factory=dict)
Extra options.
heading class-attribute
instance-attribute
¤
heading: Annotated[
str,
_Field(
group="headings",
description="A custom string to override the autogenerated heading of the root object.",
),
] = ""
A custom string to override the autogenerated heading of the root object.
heading_level class-attribute
instance-attribute
¤
heading_level: Annotated[
int,
_Field(
group="headings",
description="The initial heading level to use.",
),
] = 2
The initial heading level to use.
show_symbol_type_heading class-attribute
instance-attribute
¤
show_symbol_type_heading: Annotated[
bool,
_Field(
group="headings",
description="Show the symbol type in headings (e.g. mod, class, meth, func and attr).",
),
] = False
Show the symbol type in headings (e.g. mod, class, meth, func and attr).
show_symbol_type_toc class-attribute
instance-attribute
¤
show_symbol_type_toc: Annotated[
bool,
_Field(
group="headings",
description="Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).",
),
] = False
Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
COptions dataclass
¤
COptions(
extra: Annotated[
dict[str, Any],
_Field(
group="general", description="Extra options."
),
] = dict(),
heading: Annotated[
str,
_Field(
group="headings",
description="A custom string to override the autogenerated heading of the root object.",
),
] = "",
heading_level: Annotated[
int,
_Field(
group="headings",
description="The initial heading level to use.",
),
] = 2,
show_symbol_type_heading: Annotated[
bool,
_Field(
group="headings",
description="Show the symbol type in headings (e.g. mod, class, meth, func and attr).",
),
] = False,
show_symbol_type_toc: Annotated[
bool,
_Field(
group="headings",
description="Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).",
),
] = False,
toc_label: Annotated[
str,
_Field(
group="headings",
description="A custom string to override the autogenerated toc label of the root object.",
),
] = "",
)
Bases: CInputOptions
Final options passed as template context.
Methods:
Attributes:
-
extra
(Annotated[dict[str, Any], _Field(group='general', description='Extra options.')]
) –Extra options.
-
heading
(Annotated[str, _Field(group='headings', description='A custom string to override the autogenerated heading of the root object.')]
) –A custom string to override the autogenerated heading of the root object.
-
heading_level
(Annotated[int, _Field(group='headings', description='The initial heading level to use.')]
) –The initial heading level to use.
-
show_symbol_type_heading
(Annotated[bool, _Field(group='headings', description='Show the symbol type in headings (e.g. mod, class, meth, func and attr).')]
) –Show the symbol type in headings (e.g. mod, class, meth, func and attr).
-
show_symbol_type_toc
(Annotated[bool, _Field(group='headings', description='Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).')]
) –Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
-
toc_label
(Annotated[str, _Field(group='headings', description='A custom string to override the autogenerated toc label of the root object.')]
) –A custom string to override the autogenerated toc label of the root object.
extra class-attribute
instance-attribute
¤
extra: Annotated[
dict[str, Any],
_Field(group="general", description="Extra options."),
] = field(default_factory=dict)
Extra options.
heading class-attribute
instance-attribute
¤
heading: Annotated[
str,
_Field(
group="headings",
description="A custom string to override the autogenerated heading of the root object.",
),
] = ""
A custom string to override the autogenerated heading of the root object.
heading_level class-attribute
instance-attribute
¤
heading_level: Annotated[
int,
_Field(
group="headings",
description="The initial heading level to use.",
),
] = 2
The initial heading level to use.
show_symbol_type_heading class-attribute
instance-attribute
¤
show_symbol_type_heading: Annotated[
bool,
_Field(
group="headings",
description="Show the symbol type in headings (e.g. mod, class, meth, func and attr).",
),
] = False
Show the symbol type in headings (e.g. mod, class, meth, func and attr).
show_symbol_type_toc class-attribute
instance-attribute
¤
show_symbol_type_toc: Annotated[
bool,
_Field(
group="headings",
description="Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).",
),
] = False
Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
toc_label class-attribute
instance-attribute
¤
toc_label: Annotated[
str,
_Field(
group="headings",
description="A custom string to override the autogenerated toc label of the root object.",
),
] = ""
A custom string to override the autogenerated toc label of the root object.
coerce classmethod
¤
coerce(**data: Any) -> MutableMapping[str, Any]
Create an instance from a dictionary.
CodeDoc dataclass
¤
CodeDoc(
macros: list[DocMacro],
functions: list[DocFunc],
global_vars: list[DocGlobalVar],
typedefs: dict[str, DocType],
)
A parsed C source file.
Attributes:
-
functions
(list[DocFunc]
) –"List of functions in the source file.
-
global_vars
(list[DocGlobalVar]
) –List of global variables in the source file.
-
macros
(list[DocMacro]
) –List of macros in the source file.
-
typedefs
(dict[str, DocType]
) –List of typedefs in the source file.
global_vars instance-attribute
¤
global_vars: list[DocGlobalVar]
List of global variables in the source file.
Comment dataclass
¤
A comment extracted from the source code.
Attributes:
-
last_line_number
(int
) –The last line number of the comment in the source code.
-
text
(str
) –The text of the comment.
DocFunc dataclass
¤
A parsed function.
Attributes:
DocGlobalVar dataclass
¤
DocMacro dataclass
¤
A parsed macro.
Attributes:
DocType dataclass
¤
A parsed typedef.
Attributes:
Docstring dataclass
¤
A parsed docstring.
Attributes:
FuncParam dataclass
¤
InOut ¤
Enumeration for parameter direction.
Attributes:
-
IN
–The parameter is an input.
-
OUT
–The parameter is an output.
-
UNSPECIFIED
–The direction is unspecified.
Macro dataclass
¤
A macro extracted from the source code.
Attributes:
-
line_number
(int
) –The line number of the macro in the source code.
-
text
(str
) –The text of the macro.
Param dataclass
¤
A parameter in a function signature.
Attributes:
SupportsQualsAndType ¤
Bases: Protocol
A protocol for types that can have qualifiers and a type.
Attributes:
-
quals
(list[str]
) –The qualifiers of the type.
-
type
(SupportsQualsAndType | TypeDecl | IdentifierType
) –The type of the node.
type instance-attribute
¤
type: SupportsQualsAndType | TypeDecl | IdentifierType
The type of the node.
TypeDecl ¤
TypeRef dataclass
¤
TypeRef(
name: TypeRef | str,
decl: TypeDecl,
quals: list[str],
params: list[TypeRef] | None = None,
)
A reference to a type in C.
Attributes:
-
decl
(TypeDecl
) –The type declaration of the type reference.
-
name
(TypeRef | str
) –The name of the type reference.
-
params
(list[TypeRef] | None
) –The parameters of the type reference.
-
quals
(list[str]
) –The qualifiers of the type reference.
params class-attribute
instance-attribute
¤
The parameters of the type reference.
ast_to_decl ¤
ast_to_decl(
node: SupportsQualsAndType, types: dict[str, DocType]
) -> TypeRef
Convert a pycparser AST node to a TypeRef.
desc ¤
extract_comments ¤
extract_macros ¤
get_handler ¤
get_handler(
handler_config: MutableMapping[str, Any],
tool_config: MkDocsConfig,
**kwargs: Any,
) -> CHandler
Simply return an instance of CHandler
.
Parameters:
-
handler_config
(MutableMapping[str, Any]
) –The handler configuration.
-
tool_config
(MkDocsConfig
) –The tool (SSG) configuration.
Returns:
-
CHandler
–An instance of
CHandler
.