diff --git a/.copier-answers.yml b/.copier-answers.yml
deleted file mode 100644
index 76531124..00000000
--- a/.copier-answers.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# Changes here will be overwritten by Copier.
-_commit: 1.4.5
-_src_path: gh:mkdocstrings/handler-template
-author_email: dev@pawamoy.fr
-author_fullname: Timothée Mazzucotelli
-author_username: pawamoy
-copyright_date: '2021'
-copyright_holder: Timothée Mazzucotelli
-copyright_holder_email: dev@pawamoy.fr
-copyright_license: ISC
-insiders: true
-insiders_email: insiders@pawamoy.fr
-insiders_repository_name: mkdocstrings-python
-language: Python
-project_description: A Python handler for mkdocstrings.
-project_name: mkdocstrings-python
-public_release: true
-python_package_distribution_name: mkdocstrings-python
-python_package_import_name: python
-repository_name: python
-repository_namespace: mkdocstrings
-repository_provider: github.com
-
diff --git a/.envrc b/.envrc
deleted file mode 100644
index f9d77ee3..00000000
--- a/.envrc
+++ /dev/null
@@ -1 +0,0 @@
-PATH_add scripts
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
deleted file mode 100644
index 812789e6..00000000
--- a/.github/FUNDING.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-github: pawamoy
-polar: pawamoy
diff --git a/.github/ISSUE_TEMPLATE/1-bug.md b/.github/ISSUE_TEMPLATE/1-bug.md
deleted file mode 100644
index a0e35e01..00000000
--- a/.github/ISSUE_TEMPLATE/1-bug.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-name: Bug report
-about: Create a bug report to help us improve.
-title: "bug: "
-labels: unconfirmed
-assignees: [pawamoy]
----
-
-### Description of the bug
-
-
-### To Reproduce
-
-
-```
-WRITE MRE / INSTRUCTIONS HERE
-```
-
-### Full traceback
-
-
-Full traceback
-
-```python
-PASTE TRACEBACK HERE
-```
-
-
A Python handler for mkdocstrings.
- -[](https://github.com/mkdocstrings/python/actions?query=workflow%3Aci) -[](https://mkdocstrings.github.io/python/) -[](https://pypi.org/project/mkdocstrings-python/) -[](https://app.gitter.im/#/room/#python:gitter.im) - ---- - -0&&i[i.length-1])&&(p[0]===6||p[0]===2)){r=0;continue}if(p[0]===3&&(!i||p[1]>i[0]&&p[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],s;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(a){s={error:a}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(s)throw s.error}}return i}function B(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning. Importing from submodules is now deprecated: the public API is fully exposed under the top-level Release Insiders features of the $500/month funding goal (bd30106 by Timothée Mazzucotelli). The features and projects related to mkdocstrings-python are: See the complete list of features and projects here: https://pawamoy.github.io/insiders/#500-plasmavac-user-guide. The signature of the You can see how to use the filter in this commit's changes: f686f4e4. We take this as an opportunity to go out of beta and bump the version to 1.0.0. This will allow users to rely on semantic versioning. We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. Examples of behavior that contributes to a positive environment for our community include: Examples of unacceptable behavior include: Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at dev@pawamoy.fr. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. Community Impact: A violation through a single incident or series of actions. Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. Community Impact: A serious violation of community standards, including sustained inappropriate behavior. Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. Consequence: A permanent ban from any sort of public interaction within the community. This Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder. For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations. Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given. Nothing easier! Fork and clone the repository, then: Note If it fails for some reason, you'll need to install uv manually. You can install it with: Now you can try running You now have the dependencies installed. Run The entry-point to run commands and tasks is the If you work in VSCode, we provide an action to configure VSCode for the project. As usual: Before committing: If you are unsure about how to fix or ignore a warning, just let the continuous integration fail, and we will help you during review. Don't bother updating the changelog, we will take care of this. Commit messages must follow our convention based on the Angular style or the Karma convention: Subject and body must be valid Markdown. Subject must have proper casing (uppercase for first letter if it makes sense), but no dot at the end, and no punctuation in general. Scope and body are optional. Type can be: If you write a body, please add trailers at the end (for example issues and PR references, or co-authors), without relying on GitHub's flavored Markdown: These "trailers" must appear at the end of the body, without any blank lines between them. The trailer title can contain any character except colons We do not enforce a line length on commit messages summary and body, but please avoid very long summaries, and very long lines in the body, unless they are part of code blocks that must not be wrapped. Link to any related issue in the Pull Request message. During the review, we recommend using fixups: Once all the changes are approved, you can squash your commits: And force-push: If this seems all too complicated, you can push or force-push each new commit, and we will squash them ourselves if needed, before merging. These projects were used to build mkdocstrings-python. Thank you! Class docstring. Examples: Class docstring. Initialize the instance. Examples: Class docstring. Parameters: Class docstring. Initialize a thing. Parameters: Hello. Hello. Hello. Hello. Summary. Attributes: Summary. Summary. Functions: Summary. Methods: Summary. Summary. Summary. Classes: Summary. Summary. Summary. Summary. Modules: Summary. Summary. Long description. Stop using this class. Attributes: Attributes: Print hello. Examples: Print hello. Do something. Other parameters: Do something. Do something. Parameters: Do something. Raise a runtime error. Raises: Raise a runtime error. Iterate and skip elements. Receives: Iterate and skip elements. Return a random number. Returns: Return a random number. Warn user. Warns: Warn user. Iterate and skip elements. Yields: Iterate and skip elements. Docstring of the class. Method docstring. Method docstring. Method docstring. Docstring of the class. Method docstring. Function docstring Docstring of your module. Docstring of their object. Docstring of your module. Bases: Docstring of the class. Docstring of the class. Docstring of the function. Docstring of the function. Docstring of the module. Docstring of class A. Docstring of class B. Docstring of the method. Docstring of the module. Docstring of class A. Docstring of class B. Docstring of the method. Docstring of class A. Docstring of the method. Docstring of class B. Docstring of the method. Docstring of class A. Docstring of the method. Docstring of class B. Docstring of the method. Docstring of the method. Docstring of the method. Docstring of the module. Docstring of the class. Docstring of the method. Docstring of the module. Docstring of the class. Docstring of the method. Docstring of the module. Docstring of the class. Docstring of the method. Docstring of the module. Docstring of the class. Docstring of the method. Docstring of the module. Docstring of the module attribute. Docstring of the class. Docstring of the class attribute. Docstring of the method. Docstring of the module. Docstring of the module attribute. Docstring of the class. Docstring of the class attribute. Docstring of the method. Docstring of the module. Docstring of the module attribute. Docstring of the function. Docstring of the class. Docstring of the method. Docstring of the module. Docstring of the module attribute. Docstring of the function. Docstring of the class. Docstring of the method. Module docstring. Function docstring. Class docstring. Method docstring. Attribute docstring. Module docstring. Module docstring. Class docstring. Method docstring. Module docstring. Base class. Base method. Main class. Base method. Main method. Module docstring. Base class. Base method. Main class. Main method. Module docstring. Function a. Function b. Function c. Module docstring. Function b. Function a. Function c. Module docstring. Function docstring. Function docstring. Module docstring. Function docstring. Module docstring. Function docstring. Module docstring. Attribute docstring. Class docstring. Function docstring. Function docstring. Module docstring. Function docstring. Class docstring. Attribute docstring. Function docstring. Subpackage docstring. Member docstring. Submodule docstring. Member docstring. Subpackage docstring. Member docstring. Class docstring. Methods: Attributes: Class docstring. Methods: Convert text to Markdown. Parameters: Returns: Convert text to Markdown. Parameters: Returns: Convert text to Markdown. Parameters: Returns: Function docstring. Function docstring. Function docstring. Function docstring. Function docstring. Function docstring. Function docstring. Function docstring.
- special
- private
- property
- read-only
-
- Try cycling through the themes to see the colors for each theme:
- A Python handler for mkdocstrings. The Python handler uses Griffe to collect documentation from Python source code. The word "griffe" can sometimes be used instead of "signature" in French. Griffe is able to visit the Abstract Syntax Tree (AST) of the source code to extract useful information. It is also able to execute the code (by importing it) and introspect objects in memory when source code is not available. Finally, it can parse docstrings following different styles. You can install this handler as a mkdocstrings extra: You can also explicitly depend on the handler: Data collection from source code: collection of the object-tree and the docstrings is done thanks to Griffe. Support for type annotations: Griffe collects your type annotations and mkdocstrings uses them to display parameter types or return types. It is even able to automatically add cross-references to other objects from your API, from the standard library or third-party libraries! See how to load inventories to enable it. Recursive documentation of Python objects: just use the module dotted-path as an identifier, and you get the full module docs. You don't need to inject documentation for each class, function, etc. Support for documented attributes: attributes (variables) followed by a docstring (triple-quoted string) will be recognized by Griffe in modules, classes and even in Multiple docstring-styles support: common support for Google-style, Numpydoc-style, and Sphinx-style docstrings. See Griffe's documentation on docstrings support. Admonition support in Google docstrings: blocks like Every object has a TOC entry: we render a heading for each object, meaning MkDocs picks them into the Table of Contents, which is nicely displayed by the Material theme. Thanks to mkdocstrings cross-reference ability, you can reference other objects within your docstrings, with the classic Markdown syntax: Source code display: mkdocstrings can add a collapsible div containing the highlighted source code of the Python object. mkdocstrings-python follows the sponsorware release strategy, which means that new features are first exclusively released to sponsors as part of Insiders. Read on to learn what sponsorships achieve, how to become a sponsor to get access to Insiders, and what's in it for you! mkdocstrings-python Insiders is a private fork of mkdocstrings-python, hosted as a private GitHub repository. Almost1 all new features are developed as part of this fork, which means that they are immediately available to all eligible sponsors, as they are granted access to this private repository. Every feature is tied to a funding goal in monthly subscriptions. When a funding goal is hit, the features that are tied to it are merged back into mkdocstrings-python and released for general availability, making them available to all users. Bugfixes are always released in tandem. Sponsorships start as low as $10 a month.2 Sponsorships make this project sustainable, as they buy the maintainers of this project time – a very scarce resource – which is spent on the development of new features, bug fixing, stability improvement, issue triage and general support. The biggest bottleneck in Open Source is time.3 If you're unsure if you should sponsor this project, check out the list of completed funding goals to learn whether you're already using features that were developed with the help of sponsorships. You're most likely using at least a handful of them, thanks to our awesome sponsors! The moment you become a sponsor, you'll get immediate access to 15 additional features that you can start using right away, and which are currently exclusively available to sponsors: These are just the features related to this project. See the complete feature list on the author's main Insiders page. Additionally, your sponsorship will give more weight to your upvotes on issues, helping us prioritize work items in our backlog. For more information on how we prioritize work, see this page: Backlog management. Thanks for your interest in sponsoring! In order to become an eligible sponsor with your GitHub account, visit pawamoy's sponsor profile, and complete a sponsorship of $10 a month or more. You can use your individual or organization GitHub account for sponsoring. Sponsorships lower than $10 a month are also very much appreciated, and useful. They won't grant you access to Insiders, but they will be counted towards reaching sponsorship goals. Every sponsorship helps us implementing new features and releasing them to the public. Important: By default, when you're sponsoring @pawamoy through a GitHub organization, all the publicly visible members of the organization will be invited to join our private repositories. If you wish to only grant access to a subset of users, please send a short email to insiders@pawamoy.fr with the name of your organization and the GitHub accounts of the users that should be granted access. Tip: to ensure that access is not tied to a particular individual GitHub account, you can create a bot account (i.e. a GitHub account that is not tied to a specific individual), and use this account for the sponsoring. After being granted access to our private repositories, the bot account can create private forks of our private repositories into your own organization, which all members of your organization will have access to. You can cancel your sponsorship anytime.4 If you sponsor publicly, you're automatically added here with a link to your profile and avatar to show your support for mkdocstrings-python. Alternatively, if you wish to keep your sponsorship private, you'll be a silent +1. You can select visibility during checkout and change it afterwards. The following section lists all funding goals. Each goal contains a list of features prefixed with a checkmark symbol, denoting whether a feature is already available or planned, but not yet implemented. When the funding goal is hit, the features are released for general availability. This section lists all funding goals that were previously completed, which means that those features were part of Insiders, but are now generally available and can be used by all users. We're building an open source project and want to allow outside collaborators to use mkdocstrings-python locally without having access to Insiders. Is this still possible? Yes. Insiders is compatible with mkdocstrings-python. Almost all new features and configuration options are either backward-compatible or implemented behind feature flags. Most Insiders features enhance the overall experience, though while these features add value for the users of your project, they shouldn't be necessary for previewing when making changes to content. We don't want to pay for sponsorship every month. Are there any other options? Yes. You can sponsor on a yearly basis by switching your GitHub account to a yearly billing cycle. If for some reason you cannot do that, you could also create a dedicated GitHub account with a yearly billing cycle, which you only use for sponsoring (some sponsors already do that). If you have any problems or further questions, please reach out to insiders@pawamoy.fr. Are we allowed to use Insiders under the same terms and conditions as mkdocstrings-python? Yes. Whether you're an individual or a company, you may use mkdocstrings-python Insiders precisely under the same terms as mkdocstrings-python, which are given by the ISC license. However, we kindly ask you to respect our fair use policy: In general, every new feature is first exclusively released to sponsors, but sometimes upstream dependencies enhance existing features that must be supported by mkdocstrings-python. ↩ Note that $10 a month is the minimum amount to become eligible for Insiders. While GitHub Sponsors also allows to sponsor lower amounts or one-time amounts, those can't be granted access to Insiders due to technical reasons. Such contributions are still very much welcome as they help ensuring the project's sustainability. ↩ Making an Open Source project sustainable is exceptionally hard: maintainers burn out, projects are abandoned. That's not great and very unpredictable. The sponsorware model ensures that if you decide to use mkdocstrings-python, you can be sure that bugs are fixed quickly and new features are added regularly. ↩ If you cancel your sponsorship, GitHub schedules a cancellation request which will become effective at the end of the billing cycle. This means that even though you cancel your sponsorship, you will keep your access to Insiders as long as your cancellation isn't effective. All charges are processed by GitHub through Stripe. As we don't receive any information regarding your payment, and GitHub doesn't offer refunds, sponsorships are non-refundable. ↩ mkdocstrings-python Insiders is a compatible drop-in replacement for mkdocstrings-python, and can be installed similarly using We kindly ask that you do not upload the distributions to public registries, as it is against our Terms of use. mkdocstrings-python Insiders can be installed with Or using HTTPS: The Note that the personal access token must be kept secret at all times, as it allows the owner to access your private repositories. Of course, you can use mkdocstrings-python Insiders directly using Git: When cloning with Git, the package must be installed: When upgrading Insiders, you should always check the version of mkdocstrings-python which makes up the first part of the version qualifier. For example, a version like If the major version increased, it's a good idea to consult the changelog and go through the steps to ensure your configuration is up to date and all necessary changes have been made. tag from around the whole output.
+
+Returns:
+
+- `Markup` – An HTML string.
+
+### do_heading
+
+```python
+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
+
+```python
+get_aliases(identifier: str) -> tuple[str, ...]
+
+```
+
+Get the aliases for the given identifier.
+
+Parameters:
+
+- #### **`identifier`**
+
+ (`str`) – The identifier to get the aliases for.
+
+Returns:
+
+- `tuple[str, ...]` – The aliases.
+
+### get_extended_templates_dirs
+
+```python
+get_extended_templates_dirs(handler: str) -> list[Path]
+
+```
+
+Load template extensions for the given handler, return their templates directories.
+
+Parameters:
+
+- #### **`handler`**
+
+ (`str`) – The name of the handler to get the extended templates directory of.
+
+Returns:
+
+- `list[Path]` – The extensions templates directories.
+
+### get_headings
+
+```python
+get_headings() -> Sequence[Element]
+
+```
+
+Return and clear the headings gathered so far.
+
+Returns:
+
+- `Sequence[Element]` – A list of HTML elements.
+
+### get_inventory_urls
+
+```python
+get_inventory_urls() -> list[tuple[str, dict[str, Any]]]
+
+```
+
+Return the URLs of the inventory files to download.
+
+### get_options
+
+```python
+get_options(local_options: Mapping[str, Any]) -> HandlerOptions
+
+```
+
+Get combined default, global and local options.
+
+Parameters:
+
+- #### **`local_options`**
+
+ (`Mapping[str, Any]`) – The local options.
+
+Returns:
+
+- `HandlerOptions` – The combined options.
+
+### get_templates_dir
+
+```python
+get_templates_dir(handler: str | None = None) -> Path
+
+```
+
+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
+
+```python
+load_inventory(
+ in_file: BinaryIO,
+ url: str,
+ base_url: str | None = None,
+ domains: list[str] | None = None,
+ **kwargs: Any
+) -> Iterator[tuple[str, str]]
+
+```
+
+Yield items and their URLs from an inventory file streamed from `in_file`.
+
+This implements mkdocstrings' `load_inventory` "protocol" (see mkdocstrings.plugin).
+
+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.
+
+- #### **`domains`**
+
+ (`list[str] | None`, default: `None` ) – A list of domain strings to filter the inventory by, when not passed, "py" will be used.
+
+- #### **`**kwargs`**
+
+ (`Any`, default: `{}` ) – Ignore additional arguments passed from the config.
+
+Yields:
+
+- `tuple[str, str]` – Tuples of (item identifier, item URL).
+
+### normalize_extension_paths
+
+```python
+normalize_extension_paths(extensions: Sequence) -> Sequence
+
+```
+
+Resolve extension paths relative to config file.
+
+Parameters:
+
+- #### **`extensions`**
+
+ (`Sequence`) – The extensions (configuration) to normalize.
+
+Returns:
+
+- `Sequence` – The normalized extensions.
+
+### render
+
+```python
+render(data: CollectorItem, options: PythonOptions) -> str
+
+```
+
+Render the collected data.
+
+Parameters:
+
+- #### **`data`**
+
+ (`CollectorItem`) – The collected data.
+
+- #### **`options`**
+
+ (`PythonOptions`) – The options to use for rendering.
+
+Returns:
+
+- `str` – The rendered data (HTML).
+
+### render_backlinks
+
+```python
+render_backlinks(backlinks: Mapping[str, Iterable[Backlink]]) -> str
+
+```
+
+Render the backlinks.
+
+Parameters:
+
+- #### **`backlinks`**
+
+ (`Mapping[str, Iterable[Backlink]]`) – The backlinks to render.
+
+Returns:
+
+- `str` – The rendered backlinks (HTML).
+
+### teardown
+
+```python
+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
+
+```python
+update_env(config: Any) -> None
+
+```
+
+Update the Jinja environment with custom filters and tests.
+
+Parameters:
+
+- #### **`config`**
+
+ (`Any`) – The SSG configuration.
+
+## PythonInputConfig
+
+```python
+PythonInputConfig(
+ inventories: list[str | Inventory] = list(),
+ paths: list[str] = lambda: ["."](),
+ load_external_modules: bool | None = None,
+ options: PythonInputOptions = PythonInputOptions(),
+ locale: str | None = None,
+)
+
+```
+
+Python handler configuration.
+
+Methods:
+
+- **`coerce`** – Coerce data.
+- **`from_data`** – Create an instance from a dictionary.
+
+Attributes:
+
+- **`inventories`** (`list[str | Inventory]`) – The inventories to load.
+- **`load_external_modules`** (`bool | None`) – Whether to always load external modules/packages.
+- **`locale`** (`str | None`) – The locale to use when translating template strings.
+- **`options`** (`PythonInputOptions`) – Configuration options for collecting and rendering objects.
+- **`paths`** (`list[str]`) – The paths in which to search for Python packages.
+
+### inventories
+
+```python
+inventories: list[str | Inventory] = field(default_factory=list)
+
+```
+
+The inventories to load.
+
+### load_external_modules
+
+```python
+load_external_modules: bool | None = None
+
+```
+
+Whether to always load external modules/packages.
+
+### locale
+
+```python
+locale: str | None = None
+
+```
+
+The locale to use when translating template strings.
+
+### options
+
+```python
+options: PythonInputOptions = field(default_factory=PythonInputOptions)
+
+```
+
+Configuration options for collecting and rendering objects.
+
+### paths
+
+```python
+paths: list[str] = field(default_factory=lambda: ['.'])
+
+```
+
+The paths in which to search for Python packages.
+
+### coerce
+
+```python
+coerce(**data: Any) -> MutableMapping[str, Any]
+
+```
+
+Coerce data.
+
+### from_data
+
+```python
+from_data(**data: Any) -> Self
+
+```
+
+Create an instance from a dictionary.
+
+## PythonInputOptions
+
+```python
+PythonInputOptions(
+ allow_inspection: bool = True,
+ force_inspection: bool = False,
+ annotations_path: Literal["brief", "source", "full"] = "brief",
+ backlinks: Literal["flat", "tree", False] = False,
+ docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+ ) = None,
+ docstring_section_style: Literal["table", "list", "spacy"] = "table",
+ docstring_style: Literal["auto", "google", "numpy", "sphinx"] | None = "google",
+ extensions: list[str | dict[str, Any]] = list(),
+ filters: list[str] | Literal["public"] = lambda: copy()(),
+ find_stubs_package: bool = False,
+ group_by_category: bool = True,
+ heading: str = "",
+ heading_level: int = 2,
+ inherited_members: bool | list[str] = False,
+ line_length: int = 60,
+ members: list[str] | bool | None = None,
+ members_order: Order | list[Order] = "alphabetical",
+ merge_init_into_class: bool = False,
+ modernize_annotations: bool = False,
+ parameter_headings: bool = False,
+ preload_modules: list[str] = list(),
+ relative_crossrefs: bool = False,
+ scoped_crossrefs: bool = False,
+ show_overloads: bool = True,
+ separate_signature: bool = False,
+ show_bases: bool = True,
+ show_category_heading: bool = False,
+ show_docstring_attributes: bool = True,
+ show_docstring_classes: bool = True,
+ show_docstring_description: bool = True,
+ show_docstring_examples: bool = True,
+ show_docstring_functions: bool = True,
+ show_docstring_modules: bool = True,
+ show_docstring_other_parameters: bool = True,
+ show_docstring_parameters: bool = True,
+ show_docstring_raises: bool = True,
+ show_docstring_receives: bool = True,
+ show_docstring_returns: bool = True,
+ show_docstring_warns: bool = True,
+ show_docstring_yields: bool = True,
+ show_if_no_docstring: bool = False,
+ show_inheritance_diagram: bool = False,
+ show_labels: bool = True,
+ show_object_full_path: bool = False,
+ show_root_full_path: bool = True,
+ show_root_heading: bool = False,
+ show_root_members_full_path: bool = False,
+ show_root_toc_entry: bool = True,
+ show_signature_annotations: bool = False,
+ show_signature: bool = True,
+ show_source: bool = True,
+ show_submodules: bool = False,
+ show_symbol_type_heading: bool = False,
+ show_symbol_type_toc: bool = False,
+ signature_crossrefs: bool = False,
+ summary: bool | SummaryOption = SummaryOption(),
+ toc_label: str = "",
+ unwrap_annotated: bool = False,
+ extra: dict[str, Any] = dict(),
+)
+
+```
+
+Accepted input options.
+
+Methods:
+
+- **`coerce`** – Coerce data.
+- **`from_data`** – Create an instance from a dictionary.
+
+Attributes:
+
+- **`allow_inspection`** (`bool`) – Whether to allow inspecting modules when visiting them is not possible.
+- **`annotations_path`** (`Literal['brief', 'source', 'full']`) – The verbosity for annotations path: brief (recommended), source (as written in the source), or full.
+- **`backlinks`** (`Literal['flat', 'tree', False]`) – Whether to render backlinks, and how.
+- **`docstring_options`** (`GoogleStyleOptions | NumpyStyleOptions | SphinxStyleOptions | AutoStyleOptions | None`) – The options for the docstring parser.
+- **`docstring_section_style`** (`Literal['table', 'list', 'spacy']`) – The style used to render docstring sections.
+- **`docstring_style`** (`Literal['auto', 'google', 'numpy', 'sphinx'] | None`) – The docstring style to use: auto, google, numpy, sphinx, or None.
+- **`extensions`** (`list[str | dict[str, Any]]`) – A list of Griffe extensions to load.
+- **`extra`** (`dict[str, Any]`) – Extra options.
+- **`filters`** (`list[str] | Literal['public']`) – A list of filters, or "public".
+- **`find_stubs_package`** (`bool`) – Whether to load stubs package (package-stubs) when extracting docstrings.
+- **`force_inspection`** (`bool`) – Whether to force using dynamic analysis when loading data.
+- **`group_by_category`** (`bool`) – Group the object's children by categories: attributes, classes, functions, and modules.
+- **`heading`** (`str`) – A custom string to override the autogenerated heading of the root object.
+- **`heading_level`** (`int`) – The initial heading level to use.
+- **`inherited_members`** (`bool | list[str]`) – A boolean, or an explicit list of inherited members to render.
+- **`line_length`** (`int`) – Maximum line length when formatting code/signatures.
+- **`members`** (`list[str] | bool | None`) – A boolean, or an explicit list of members to render.
+- **`members_order`** (`Order | list[Order]`) – The members ordering to use.
+- **`merge_init_into_class`** (`bool`) – Whether to merge the __init__ method into the class' signature and docstring.
+- **`modernize_annotations`** (`bool`) – Whether to modernize annotations, for example Optional[str] into str | None.
+- **`parameter_headings`** (`bool`) – Whether to render headings for parameters (therefore showing parameters in the ToC).
+- **`preload_modules`** (`list[str]`) – Pre-load modules that are not specified directly in autodoc instructions (::: identifier).
+- **`relative_crossrefs`** (`bool`) – Whether to enable the relative crossref syntax.
+- **`scoped_crossrefs`** (`bool`) – Whether to enable the scoped crossref ability.
+- **`separate_signature`** (`bool`) – Whether to put the whole signature in a code block below the heading.
+- **`show_bases`** (`bool`) – Show the base classes of a class.
+- **`show_category_heading`** (`bool`) – When grouped by categories, show a heading for each category.
+- **`show_docstring_attributes`** (`bool`) – Whether to display the 'Attributes' section in the object's docstring.
+- **`show_docstring_classes`** (`bool`) – Whether to display the 'Classes' section in the object's docstring.
+- **`show_docstring_description`** (`bool`) – Whether to display the textual block (including admonitions) in the object's docstring.
+- **`show_docstring_examples`** (`bool`) – Whether to display the 'Examples' section in the object's docstring.
+- **`show_docstring_functions`** (`bool`) – Whether to display the 'Functions' or 'Methods' sections in the object's docstring.
+- **`show_docstring_modules`** (`bool`) – Whether to display the 'Modules' section in the object's docstring.
+- **`show_docstring_other_parameters`** (`bool`) – Whether to display the 'Other Parameters' section in the object's docstring.
+- **`show_docstring_parameters`** (`bool`) – Whether to display the 'Parameters' section in the object's docstring.
+- **`show_docstring_raises`** (`bool`) – Whether to display the 'Raises' section in the object's docstring.
+- **`show_docstring_receives`** (`bool`) – Whether to display the 'Receives' section in the object's docstring.
+- **`show_docstring_returns`** (`bool`) – Whether to display the 'Returns' section in the object's docstring.
+- **`show_docstring_warns`** (`bool`) – Whether to display the 'Warns' section in the object's docstring.
+- **`show_docstring_yields`** (`bool`) – Whether to display the 'Yields' section in the object's docstring.
+- **`show_if_no_docstring`** (`bool`) – Show the object heading even if it has no docstring or children with docstrings.
+- **`show_inheritance_diagram`** (`bool`) – Show the inheritance diagram of a class using Mermaid.
+- **`show_labels`** (`bool`) – Whether to show labels of the members.
+- **`show_object_full_path`** (`bool`) – Show the full Python path of every object.
+- **`show_overloads`** (`bool`) – Show the overloads of a function or method.
+- **`show_root_full_path`** (`bool`) – Show the full Python path for the root object heading.
+- **`show_root_heading`** (`bool`) – Show the heading of the object at the root of the documentation tree.
+- **`show_root_members_full_path`** (`bool`) – Show the full Python path of the root members.
+- **`show_root_toc_entry`** (`bool`) – If the root heading is not shown, at least add a ToC entry for it.
+- **`show_signature`** (`bool`) – Show methods and functions signatures.
+- **`show_signature_annotations`** (`bool`) – Show the type annotations in methods and functions signatures.
+- **`show_source`** (`bool`) – Show the source code of this object.
+- **`show_submodules`** (`bool`) – When rendering a module, show its submodules recursively.
+- **`show_symbol_type_heading`** (`bool`) – Show the symbol type in headings (e.g. mod, class, meth, func and attr).
+- **`show_symbol_type_toc`** (`bool`) – Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
+- **`signature_crossrefs`** (`bool`) – Whether to render cross-references for type annotations in signatures.
+- **`summary`** (`bool | SummaryOption`) – Whether to render summaries of modules, classes, functions (methods) and attributes.
+- **`toc_label`** (`str`) – A custom string to override the autogenerated toc label of the root object.
+- **`unwrap_annotated`** (`bool`) – Whether to unwrap Annotated types to show only the type without the annotations.
+
+### allow_inspection
+
+```python
+allow_inspection: bool = True
+
+```
+
+Whether to allow inspecting modules when visiting them is not possible.
+
+### annotations_path
+
+```python
+annotations_path: Literal['brief', 'source', 'full'] = 'brief'
+
+```
+
+The verbosity for annotations path: `brief` (recommended), `source` (as written in the source), or `full`.
+
+### backlinks
+
+```python
+backlinks: Literal['flat', 'tree', False] = False
+
+```
+
+Whether to render backlinks, and how.
+
+### docstring_options
+
+```python
+docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+) = None
+
+```
+
+The options for the docstring parser.
+
+See [docstring parsers](https://mkdocstrings.github.io/griffe/reference/docstrings/) and their options in Griffe docs.
+
+### docstring_section_style
+
+```python
+docstring_section_style: Literal['table', 'list', 'spacy'] = 'table'
+
+```
+
+The style used to render docstring sections.
+
+### docstring_style
+
+```python
+docstring_style: Literal['auto', 'google', 'numpy', 'sphinx'] | None = 'google'
+
+```
+
+The docstring style to use: `auto`, `google`, `numpy`, `sphinx`, or `None`.
+
+### extensions
+
+```python
+extensions: list[str | dict[str, Any]] = field(default_factory=list)
+
+```
+
+A list of Griffe extensions to load.
+
+### extra
+
+```python
+extra: dict[str, Any] = field(default_factory=dict)
+
+```
+
+Extra options.
+
+### filters
+
+```python
+filters: list[str] | Literal['public'] = field(default_factory=lambda: copy())
+
+```
+
+A list of filters, or `"public"`.
+
+**List of filters**
+
+A filter starting with `!` will exclude matching objects instead of including them. The `members` option takes precedence over `filters` (filters will still be applied recursively to lower members in the hierarchy).
+
+**Filtering methods**
+
+[Sponsors only](../../insiders/) — [Insiders 1.11.0](../../insiders/changelog/#1.11.0)
+
+The `public` method will include only public objects: those added to `__all__` or not starting with an underscore (except for special methods/attributes).
+
+### find_stubs_package
+
+```python
+find_stubs_package: bool = False
+
+```
+
+Whether to load stubs package (package-stubs) when extracting docstrings.
+
+### force_inspection
+
+```python
+force_inspection: bool = False
+
+```
+
+Whether to force using dynamic analysis when loading data.
+
+### group_by_category
+
+```python
+group_by_category: bool = True
+
+```
+
+Group the object's children by categories: attributes, classes, functions, and modules.
+
+### heading
+
+```python
+heading: str = ''
+
+```
+
+A custom string to override the autogenerated heading of the root object.
+
+### heading_level
+
+```python
+heading_level: int = 2
+
+```
+
+The initial heading level to use.
+
+### inherited_members
+
+```python
+inherited_members: bool | list[str] = False
+
+```
+
+A boolean, or an explicit list of inherited members to render.
+
+If true, select all inherited members, which can then be filtered with `members`. If false or empty list, do not select any inherited member.
+
+### line_length
+
+```python
+line_length: int = 60
+
+```
+
+Maximum line length when formatting code/signatures.
+
+### members
+
+```python
+members: list[str] | bool | None = None
+
+```
+
+A boolean, or an explicit list of members to render.
+
+If true, select all members without further filtering. If false or empty list, do not render members. If none, select all members and apply further filtering with filters and docstrings.
+
+### members_order
+
+```python
+members_order: Order | list[Order] = 'alphabetical'
+
+```
+
+The members ordering to use.
+
+- `__all__`: order members according to `__all__` module attributes, if declared;
+- `alphabetical`: order members alphabetically;
+- `source`: order members as they appear in the source file.
+
+Since `__all__` is a module-only attribute, it can't be used to sort class members, therefore the `members_order` option accepts a list of ordering methods, indicating ordering preferences.
+
+### merge_init_into_class
+
+```python
+merge_init_into_class: bool = False
+
+```
+
+Whether to merge the `__init__` method into the class' signature and docstring.
+
+### modernize_annotations
+
+```python
+modernize_annotations: bool = False
+
+```
+
+Whether to modernize annotations, for example `Optional[str]` into `str | None`.
+
+### parameter_headings
+
+```python
+parameter_headings: bool = False
+
+```
+
+Whether to render headings for parameters (therefore showing parameters in the ToC).
+
+### preload_modules
+
+```python
+preload_modules: list[str] = field(default_factory=list)
+
+```
+
+Pre-load modules that are not specified directly in autodoc instructions (`::: identifier`).
+
+It is useful when you want to render documentation for a particular member of an object, and this member is imported from another package than its parent.
+
+For an imported member to be rendered, you need to add it to the `__all__` attribute of the importing module.
+
+The modules must be listed as an array of strings.
+
+### relative_crossrefs
+
+```python
+relative_crossrefs: bool = False
+
+```
+
+Whether to enable the relative crossref syntax.
+
+### scoped_crossrefs
+
+```python
+scoped_crossrefs: bool = False
+
+```
+
+Whether to enable the scoped crossref ability.
+
+### separate_signature
+
+```python
+separate_signature: bool = False
+
+```
+
+Whether to put the whole signature in a code block below the heading.
+
+If Black or Ruff are installed, the signature is also formatted using them.
+
+### show_bases
+
+```python
+show_bases: bool = True
+
+```
+
+Show the base classes of a class.
+
+### show_category_heading
+
+```python
+show_category_heading: bool = False
+
+```
+
+When grouped by categories, show a heading for each category.
+
+### show_docstring_attributes
+
+```python
+show_docstring_attributes: bool = True
+
+```
+
+Whether to display the 'Attributes' section in the object's docstring.
+
+### show_docstring_classes
+
+```python
+show_docstring_classes: bool = True
+
+```
+
+Whether to display the 'Classes' section in the object's docstring.
+
+### show_docstring_description
+
+```python
+show_docstring_description: bool = True
+
+```
+
+Whether to display the textual block (including admonitions) in the object's docstring.
+
+### show_docstring_examples
+
+```python
+show_docstring_examples: bool = True
+
+```
+
+Whether to display the 'Examples' section in the object's docstring.
+
+### show_docstring_functions
+
+```python
+show_docstring_functions: bool = True
+
+```
+
+Whether to display the 'Functions' or 'Methods' sections in the object's docstring.
+
+### show_docstring_modules
+
+```python
+show_docstring_modules: bool = True
+
+```
+
+Whether to display the 'Modules' section in the object's docstring.
+
+### show_docstring_other_parameters
+
+```python
+show_docstring_other_parameters: bool = True
+
+```
+
+Whether to display the 'Other Parameters' section in the object's docstring.
+
+### show_docstring_parameters
+
+```python
+show_docstring_parameters: bool = True
+
+```
+
+Whether to display the 'Parameters' section in the object's docstring.
+
+### show_docstring_raises
+
+```python
+show_docstring_raises: bool = True
+
+```
+
+Whether to display the 'Raises' section in the object's docstring.
+
+### show_docstring_receives
+
+```python
+show_docstring_receives: bool = True
+
+```
+
+Whether to display the 'Receives' section in the object's docstring.
+
+### show_docstring_returns
+
+```python
+show_docstring_returns: bool = True
+
+```
+
+Whether to display the 'Returns' section in the object's docstring.
+
+### show_docstring_warns
+
+```python
+show_docstring_warns: bool = True
+
+```
+
+Whether to display the 'Warns' section in the object's docstring.
+
+### show_docstring_yields
+
+```python
+show_docstring_yields: bool = True
+
+```
+
+Whether to display the 'Yields' section in the object's docstring.
+
+### show_if_no_docstring
+
+```python
+show_if_no_docstring: bool = False
+
+```
+
+Show the object heading even if it has no docstring or children with docstrings.
+
+### show_inheritance_diagram
+
+```python
+show_inheritance_diagram: bool = False
+
+```
+
+Show the inheritance diagram of a class using Mermaid.
+
+### show_labels
+
+```python
+show_labels: bool = True
+
+```
+
+Whether to show labels of the members.
+
+### show_object_full_path
+
+```python
+show_object_full_path: bool = False
+
+```
+
+Show the full Python path of every object.
+
+### show_overloads
+
+```python
+show_overloads: bool = True
+
+```
+
+Show the overloads of a function or method.
+
+### show_root_full_path
+
+```python
+show_root_full_path: bool = True
+
+```
+
+Show the full Python path for the root object heading.
+
+### show_root_heading
+
+```python
+show_root_heading: bool = False
+
+```
+
+Show the heading of the object at the root of the documentation tree.
+
+The root object is the object referenced by the identifier after `:::`.
+
+### show_root_members_full_path
+
+```python
+show_root_members_full_path: bool = False
+
+```
+
+Show the full Python path of the root members.
+
+### show_root_toc_entry
+
+```python
+show_root_toc_entry: bool = True
+
+```
+
+If the root heading is not shown, at least add a ToC entry for it.
+
+### show_signature
+
+```python
+show_signature: bool = True
+
+```
+
+Show methods and functions signatures.
+
+### show_signature_annotations
+
+```python
+show_signature_annotations: bool = False
+
+```
+
+Show the type annotations in methods and functions signatures.
+
+### show_source
+
+```python
+show_source: bool = True
+
+```
+
+Show the source code of this object.
+
+### show_submodules
+
+```python
+show_submodules: bool = False
+
+```
+
+When rendering a module, show its submodules recursively.
+
+### show_symbol_type_heading
+
+```python
+show_symbol_type_heading: bool = False
+
+```
+
+Show the symbol type in headings (e.g. mod, class, meth, func and attr).
+
+### show_symbol_type_toc
+
+```python
+show_symbol_type_toc: bool = False
+
+```
+
+Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
+
+### signature_crossrefs
+
+```python
+signature_crossrefs: bool = False
+
+```
+
+Whether to render cross-references for type annotations in signatures.
+
+### summary
+
+```python
+summary: bool | SummaryOption = field(default_factory=SummaryOption)
+
+```
+
+Whether to render summaries of modules, classes, functions (methods) and attributes.
+
+### toc_label
+
+```python
+toc_label: str = ''
+
+```
+
+A custom string to override the autogenerated toc label of the root object.
+
+### unwrap_annotated
+
+```python
+unwrap_annotated: bool = False
+
+```
+
+Whether to unwrap `Annotated` types to show only the type without the annotations.
+
+### coerce
+
+```python
+coerce(**data: Any) -> MutableMapping[str, Any]
+
+```
+
+Coerce data.
+
+### from_data
+
+```python
+from_data(**data: Any) -> Self
+
+```
+
+Create an instance from a dictionary.
+
+## PythonOptions
+
+```python
+PythonOptions(
+ allow_inspection: bool = True,
+ force_inspection: bool = False,
+ annotations_path: Literal["brief", "source", "full"] = "brief",
+ backlinks: Literal["flat", "tree", False] = False,
+ docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+ ) = None,
+ docstring_section_style: Literal["table", "list", "spacy"] = "table",
+ docstring_style: Literal["auto", "google", "numpy", "sphinx"] | None = "google",
+ extensions: list[str | dict[str, Any]] = list(),
+ filters: list[tuple[Pattern, bool]] | Literal["public"] = lambda: [
+ (compile(removeprefix("!")), startswith("!")) for filtr in _DEFAULT_FILTERS
+ ](),
+ find_stubs_package: bool = False,
+ group_by_category: bool = True,
+ heading: str = "",
+ heading_level: int = 2,
+ inherited_members: bool | list[str] = False,
+ line_length: int = 60,
+ members: list[str] | bool | None = None,
+ members_order: Order | list[Order] = "alphabetical",
+ merge_init_into_class: bool = False,
+ modernize_annotations: bool = False,
+ parameter_headings: bool = False,
+ preload_modules: list[str] = list(),
+ relative_crossrefs: bool = False,
+ scoped_crossrefs: bool = False,
+ show_overloads: bool = True,
+ separate_signature: bool = False,
+ show_bases: bool = True,
+ show_category_heading: bool = False,
+ show_docstring_attributes: bool = True,
+ show_docstring_classes: bool = True,
+ show_docstring_description: bool = True,
+ show_docstring_examples: bool = True,
+ show_docstring_functions: bool = True,
+ show_docstring_modules: bool = True,
+ show_docstring_other_parameters: bool = True,
+ show_docstring_parameters: bool = True,
+ show_docstring_raises: bool = True,
+ show_docstring_receives: bool = True,
+ show_docstring_returns: bool = True,
+ show_docstring_warns: bool = True,
+ show_docstring_yields: bool = True,
+ show_if_no_docstring: bool = False,
+ show_inheritance_diagram: bool = False,
+ show_labels: bool = True,
+ show_object_full_path: bool = False,
+ show_root_full_path: bool = True,
+ show_root_heading: bool = False,
+ show_root_members_full_path: bool = False,
+ show_root_toc_entry: bool = True,
+ show_signature_annotations: bool = False,
+ show_signature: bool = True,
+ show_source: bool = True,
+ show_submodules: bool = False,
+ show_symbol_type_heading: bool = False,
+ show_symbol_type_toc: bool = False,
+ signature_crossrefs: bool = False,
+ summary: SummaryOption = SummaryOption(),
+ toc_label: str = "",
+ unwrap_annotated: bool = False,
+ extra: dict[str, Any] = dict(),
+)
+
+```
+
+```
+
+ flowchart TD
+ mkdocstrings_handlers.python.PythonOptions[PythonOptions]
+ mkdocstrings_handlers.python._internal.config.PythonInputOptions[PythonInputOptions]
+
+ mkdocstrings_handlers.python._internal.config.PythonInputOptions --> mkdocstrings_handlers.python.PythonOptions
+
+
+
+ click mkdocstrings_handlers.python.PythonOptions href "" "mkdocstrings_handlers.python.PythonOptions"
+ click mkdocstrings_handlers.python._internal.config.PythonInputOptions href "" "mkdocstrings_handlers.python._internal.config.PythonInputOptions"
+
+```
+
+Final options passed as template context.
+
+Methods:
+
+- **`coerce`** – Create an instance from a dictionary.
+- **`from_data`** – Create an instance from a dictionary.
+
+Attributes:
+
+- **`allow_inspection`** (`bool`) – Whether to allow inspecting modules when visiting them is not possible.
+- **`annotations_path`** (`Literal['brief', 'source', 'full']`) – The verbosity for annotations path: brief (recommended), source (as written in the source), or full.
+- **`backlinks`** (`Literal['flat', 'tree', False]`) – Whether to render backlinks, and how.
+- **`docstring_options`** (`GoogleStyleOptions | NumpyStyleOptions | SphinxStyleOptions | AutoStyleOptions | None`) – The options for the docstring parser.
+- **`docstring_section_style`** (`Literal['table', 'list', 'spacy']`) – The style used to render docstring sections.
+- **`docstring_style`** (`Literal['auto', 'google', 'numpy', 'sphinx'] | None`) – The docstring style to use: auto, google, numpy, sphinx, or None.
+- **`extensions`** (`list[str | dict[str, Any]]`) – A list of Griffe extensions to load.
+- **`extra`** (`dict[str, Any]`) – Extra options.
+- **`filters`** (`list[tuple[Pattern, bool]] | Literal['public']`) – A list of filters, or "public".
+- **`find_stubs_package`** (`bool`) – Whether to load stubs package (package-stubs) when extracting docstrings.
+- **`force_inspection`** (`bool`) – Whether to force using dynamic analysis when loading data.
+- **`group_by_category`** (`bool`) – Group the object's children by categories: attributes, classes, functions, and modules.
+- **`heading`** (`str`) – A custom string to override the autogenerated heading of the root object.
+- **`heading_level`** (`int`) – The initial heading level to use.
+- **`inherited_members`** (`bool | list[str]`) – A boolean, or an explicit list of inherited members to render.
+- **`line_length`** (`int`) – Maximum line length when formatting code/signatures.
+- **`members`** (`list[str] | bool | None`) – A boolean, or an explicit list of members to render.
+- **`members_order`** (`Order | list[Order]`) – The members ordering to use.
+- **`merge_init_into_class`** (`bool`) – Whether to merge the __init__ method into the class' signature and docstring.
+- **`modernize_annotations`** (`bool`) – Whether to modernize annotations, for example Optional[str] into str | None.
+- **`parameter_headings`** (`bool`) – Whether to render headings for parameters (therefore showing parameters in the ToC).
+- **`preload_modules`** (`list[str]`) – Pre-load modules that are not specified directly in autodoc instructions (::: identifier).
+- **`relative_crossrefs`** (`bool`) – Whether to enable the relative crossref syntax.
+- **`scoped_crossrefs`** (`bool`) – Whether to enable the scoped crossref ability.
+- **`separate_signature`** (`bool`) – Whether to put the whole signature in a code block below the heading.
+- **`show_bases`** (`bool`) – Show the base classes of a class.
+- **`show_category_heading`** (`bool`) – When grouped by categories, show a heading for each category.
+- **`show_docstring_attributes`** (`bool`) – Whether to display the 'Attributes' section in the object's docstring.
+- **`show_docstring_classes`** (`bool`) – Whether to display the 'Classes' section in the object's docstring.
+- **`show_docstring_description`** (`bool`) – Whether to display the textual block (including admonitions) in the object's docstring.
+- **`show_docstring_examples`** (`bool`) – Whether to display the 'Examples' section in the object's docstring.
+- **`show_docstring_functions`** (`bool`) – Whether to display the 'Functions' or 'Methods' sections in the object's docstring.
+- **`show_docstring_modules`** (`bool`) – Whether to display the 'Modules' section in the object's docstring.
+- **`show_docstring_other_parameters`** (`bool`) – Whether to display the 'Other Parameters' section in the object's docstring.
+- **`show_docstring_parameters`** (`bool`) – Whether to display the 'Parameters' section in the object's docstring.
+- **`show_docstring_raises`** (`bool`) – Whether to display the 'Raises' section in the object's docstring.
+- **`show_docstring_receives`** (`bool`) – Whether to display the 'Receives' section in the object's docstring.
+- **`show_docstring_returns`** (`bool`) – Whether to display the 'Returns' section in the object's docstring.
+- **`show_docstring_warns`** (`bool`) – Whether to display the 'Warns' section in the object's docstring.
+- **`show_docstring_yields`** (`bool`) – Whether to display the 'Yields' section in the object's docstring.
+- **`show_if_no_docstring`** (`bool`) – Show the object heading even if it has no docstring or children with docstrings.
+- **`show_inheritance_diagram`** (`bool`) – Show the inheritance diagram of a class using Mermaid.
+- **`show_labels`** (`bool`) – Whether to show labels of the members.
+- **`show_object_full_path`** (`bool`) – Show the full Python path of every object.
+- **`show_overloads`** (`bool`) – Show the overloads of a function or method.
+- **`show_root_full_path`** (`bool`) – Show the full Python path for the root object heading.
+- **`show_root_heading`** (`bool`) – Show the heading of the object at the root of the documentation tree.
+- **`show_root_members_full_path`** (`bool`) – Show the full Python path of the root members.
+- **`show_root_toc_entry`** (`bool`) – If the root heading is not shown, at least add a ToC entry for it.
+- **`show_signature`** (`bool`) – Show methods and functions signatures.
+- **`show_signature_annotations`** (`bool`) – Show the type annotations in methods and functions signatures.
+- **`show_source`** (`bool`) – Show the source code of this object.
+- **`show_submodules`** (`bool`) – When rendering a module, show its submodules recursively.
+- **`show_symbol_type_heading`** (`bool`) – Show the symbol type in headings (e.g. mod, class, meth, func and attr).
+- **`show_symbol_type_toc`** (`bool`) – Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
+- **`signature_crossrefs`** (`bool`) – Whether to render cross-references for type annotations in signatures.
+- **`summary`** (`SummaryOption`) – Whether to render summaries of modules, classes, functions (methods) and attributes.
+- **`toc_label`** (`str`) – A custom string to override the autogenerated toc label of the root object.
+- **`unwrap_annotated`** (`bool`) – Whether to unwrap Annotated types to show only the type without the annotations.
+
+### allow_inspection
+
+```python
+allow_inspection: bool = True
+
+```
+
+Whether to allow inspecting modules when visiting them is not possible.
+
+### annotations_path
+
+```python
+annotations_path: Literal['brief', 'source', 'full'] = 'brief'
+
+```
+
+The verbosity for annotations path: `brief` (recommended), `source` (as written in the source), or `full`.
+
+### backlinks
+
+```python
+backlinks: Literal['flat', 'tree', False] = False
+
+```
+
+Whether to render backlinks, and how.
+
+### docstring_options
+
+```python
+docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+) = None
+
+```
+
+The options for the docstring parser.
+
+See [docstring parsers](https://mkdocstrings.github.io/griffe/reference/docstrings/) and their options in Griffe docs.
+
+### docstring_section_style
+
+```python
+docstring_section_style: Literal['table', 'list', 'spacy'] = 'table'
+
+```
+
+The style used to render docstring sections.
+
+### docstring_style
+
+```python
+docstring_style: Literal['auto', 'google', 'numpy', 'sphinx'] | None = 'google'
+
+```
+
+The docstring style to use: `auto`, `google`, `numpy`, `sphinx`, or `None`.
+
+### extensions
+
+```python
+extensions: list[str | dict[str, Any]] = field(default_factory=list)
+
+```
+
+A list of Griffe extensions to load.
+
+### extra
+
+```python
+extra: dict[str, Any] = field(default_factory=dict)
+
+```
+
+Extra options.
+
+### filters
+
+```python
+filters: list[tuple[Pattern, bool]] | Literal["public"] = field(
+ default_factory=lambda: [
+ (compile(removeprefix("!")), startswith("!")) for filtr in _DEFAULT_FILTERS
+ ]
+)
+
+```
+
+A list of filters, or `"public"`.
+
+### find_stubs_package
+
+```python
+find_stubs_package: bool = False
+
+```
+
+Whether to load stubs package (package-stubs) when extracting docstrings.
+
+### force_inspection
+
+```python
+force_inspection: bool = False
+
+```
+
+Whether to force using dynamic analysis when loading data.
+
+### group_by_category
+
+```python
+group_by_category: bool = True
+
+```
+
+Group the object's children by categories: attributes, classes, functions, and modules.
+
+### heading
+
+```python
+heading: str = ''
+
+```
+
+A custom string to override the autogenerated heading of the root object.
+
+### heading_level
+
+```python
+heading_level: int = 2
+
+```
+
+The initial heading level to use.
+
+### inherited_members
+
+```python
+inherited_members: bool | list[str] = False
+
+```
+
+A boolean, or an explicit list of inherited members to render.
+
+If true, select all inherited members, which can then be filtered with `members`. If false or empty list, do not select any inherited member.
+
+### line_length
+
+```python
+line_length: int = 60
+
+```
+
+Maximum line length when formatting code/signatures.
+
+### members
+
+```python
+members: list[str] | bool | None = None
+
+```
+
+A boolean, or an explicit list of members to render.
+
+If true, select all members without further filtering. If false or empty list, do not render members. If none, select all members and apply further filtering with filters and docstrings.
+
+### members_order
+
+```python
+members_order: Order | list[Order] = 'alphabetical'
+
+```
+
+The members ordering to use.
+
+- `__all__`: order members according to `__all__` module attributes, if declared;
+- `alphabetical`: order members alphabetically;
+- `source`: order members as they appear in the source file.
+
+Since `__all__` is a module-only attribute, it can't be used to sort class members, therefore the `members_order` option accepts a list of ordering methods, indicating ordering preferences.
+
+### merge_init_into_class
+
+```python
+merge_init_into_class: bool = False
+
+```
+
+Whether to merge the `__init__` method into the class' signature and docstring.
+
+### modernize_annotations
+
+```python
+modernize_annotations: bool = False
+
+```
+
+Whether to modernize annotations, for example `Optional[str]` into `str | None`.
+
+### parameter_headings
+
+```python
+parameter_headings: bool = False
+
+```
+
+Whether to render headings for parameters (therefore showing parameters in the ToC).
+
+### preload_modules
+
+```python
+preload_modules: list[str] = field(default_factory=list)
+
+```
+
+Pre-load modules that are not specified directly in autodoc instructions (`::: identifier`).
+
+It is useful when you want to render documentation for a particular member of an object, and this member is imported from another package than its parent.
+
+For an imported member to be rendered, you need to add it to the `__all__` attribute of the importing module.
+
+The modules must be listed as an array of strings.
+
+### relative_crossrefs
+
+```python
+relative_crossrefs: bool = False
+
+```
+
+Whether to enable the relative crossref syntax.
+
+### scoped_crossrefs
+
+```python
+scoped_crossrefs: bool = False
+
+```
+
+Whether to enable the scoped crossref ability.
+
+### separate_signature
+
+```python
+separate_signature: bool = False
+
+```
+
+Whether to put the whole signature in a code block below the heading.
+
+If Black or Ruff are installed, the signature is also formatted using them.
+
+### show_bases
+
+```python
+show_bases: bool = True
+
+```
+
+Show the base classes of a class.
+
+### show_category_heading
+
+```python
+show_category_heading: bool = False
+
+```
+
+When grouped by categories, show a heading for each category.
+
+### show_docstring_attributes
+
+```python
+show_docstring_attributes: bool = True
+
+```
+
+Whether to display the 'Attributes' section in the object's docstring.
+
+### show_docstring_classes
+
+```python
+show_docstring_classes: bool = True
+
+```
+
+Whether to display the 'Classes' section in the object's docstring.
+
+### show_docstring_description
+
+```python
+show_docstring_description: bool = True
+
+```
+
+Whether to display the textual block (including admonitions) in the object's docstring.
+
+### show_docstring_examples
+
+```python
+show_docstring_examples: bool = True
+
+```
+
+Whether to display the 'Examples' section in the object's docstring.
+
+### show_docstring_functions
+
+```python
+show_docstring_functions: bool = True
+
+```
+
+Whether to display the 'Functions' or 'Methods' sections in the object's docstring.
+
+### show_docstring_modules
+
+```python
+show_docstring_modules: bool = True
+
+```
+
+Whether to display the 'Modules' section in the object's docstring.
+
+### show_docstring_other_parameters
+
+```python
+show_docstring_other_parameters: bool = True
+
+```
+
+Whether to display the 'Other Parameters' section in the object's docstring.
+
+### show_docstring_parameters
+
+```python
+show_docstring_parameters: bool = True
+
+```
+
+Whether to display the 'Parameters' section in the object's docstring.
+
+### show_docstring_raises
+
+```python
+show_docstring_raises: bool = True
+
+```
+
+Whether to display the 'Raises' section in the object's docstring.
+
+### show_docstring_receives
+
+```python
+show_docstring_receives: bool = True
+
+```
+
+Whether to display the 'Receives' section in the object's docstring.
+
+### show_docstring_returns
+
+```python
+show_docstring_returns: bool = True
+
+```
+
+Whether to display the 'Returns' section in the object's docstring.
+
+### show_docstring_warns
+
+```python
+show_docstring_warns: bool = True
+
+```
+
+Whether to display the 'Warns' section in the object's docstring.
+
+### show_docstring_yields
+
+```python
+show_docstring_yields: bool = True
+
+```
+
+Whether to display the 'Yields' section in the object's docstring.
+
+### show_if_no_docstring
+
+```python
+show_if_no_docstring: bool = False
+
+```
+
+Show the object heading even if it has no docstring or children with docstrings.
+
+### show_inheritance_diagram
+
+```python
+show_inheritance_diagram: bool = False
+
+```
+
+Show the inheritance diagram of a class using Mermaid.
+
+### show_labels
+
+```python
+show_labels: bool = True
+
+```
+
+Whether to show labels of the members.
+
+### show_object_full_path
+
+```python
+show_object_full_path: bool = False
+
+```
+
+Show the full Python path of every object.
+
+### show_overloads
+
+```python
+show_overloads: bool = True
+
+```
+
+Show the overloads of a function or method.
+
+### show_root_full_path
+
+```python
+show_root_full_path: bool = True
+
+```
+
+Show the full Python path for the root object heading.
+
+### show_root_heading
+
+```python
+show_root_heading: bool = False
+
+```
+
+Show the heading of the object at the root of the documentation tree.
+
+The root object is the object referenced by the identifier after `:::`.
+
+### show_root_members_full_path
+
+```python
+show_root_members_full_path: bool = False
+
+```
+
+Show the full Python path of the root members.
+
+### show_root_toc_entry
+
+```python
+show_root_toc_entry: bool = True
+
+```
+
+If the root heading is not shown, at least add a ToC entry for it.
+
+### show_signature
+
+```python
+show_signature: bool = True
+
+```
+
+Show methods and functions signatures.
+
+### show_signature_annotations
+
+```python
+show_signature_annotations: bool = False
+
+```
+
+Show the type annotations in methods and functions signatures.
+
+### show_source
+
+```python
+show_source: bool = True
+
+```
+
+Show the source code of this object.
+
+### show_submodules
+
+```python
+show_submodules: bool = False
+
+```
+
+When rendering a module, show its submodules recursively.
+
+### show_symbol_type_heading
+
+```python
+show_symbol_type_heading: bool = False
+
+```
+
+Show the symbol type in headings (e.g. mod, class, meth, func and attr).
+
+### show_symbol_type_toc
+
+```python
+show_symbol_type_toc: bool = False
+
+```
+
+Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
+
+### signature_crossrefs
+
+```python
+signature_crossrefs: bool = False
+
+```
+
+Whether to render cross-references for type annotations in signatures.
+
+### summary
+
+```python
+summary: SummaryOption = field(default_factory=SummaryOption)
+
+```
+
+Whether to render summaries of modules, classes, functions (methods) and attributes.
+
+### toc_label
+
+```python
+toc_label: str = ''
+
+```
+
+A custom string to override the autogenerated toc label of the root object.
+
+### unwrap_annotated
+
+```python
+unwrap_annotated: bool = False
+
+```
+
+Whether to unwrap `Annotated` types to show only the type without the annotations.
+
+### coerce
+
+```python
+coerce(**data: Any) -> MutableMapping[str, Any]
+
+```
+
+Create an instance from a dictionary.
+
+### from_data
+
+```python
+from_data(**data: Any) -> Self
+
+```
+
+Create an instance from a dictionary.
+
+## SphinxStyleOptions
+
+```python
+SphinxStyleOptions()
+
+```
+
+Sphinx style docstring options.
+
+## SummaryOption
+
+```python
+SummaryOption(
+ attributes: bool = False,
+ functions: bool = False,
+ classes: bool = False,
+ modules: bool = False,
+)
+
+```
+
+Summary option.
+
+Attributes:
+
+- **`attributes`** (`bool`) – Whether to render summaries of attributes.
+- **`classes`** (`bool`) – Whether to render summaries of classes.
+- **`functions`** (`bool`) – Whether to render summaries of functions (methods).
+- **`modules`** (`bool`) – Whether to render summaries of modules.
+
+### attributes
+
+```python
+attributes: bool = False
+
+```
+
+Whether to render summaries of attributes.
+
+### classes
+
+```python
+classes: bool = False
+
+```
+
+Whether to render summaries of classes.
+
+### functions
+
+```python
+functions: bool = False
+
+```
+
+Whether to render summaries of functions (methods).
+
+### modules
+
+```python
+modules: bool = False
+
+```
+
+Whether to render summaries of modules.
+
+## do_as_attributes_section
+
+```python
+do_as_attributes_section(
+ context: Context, attributes: Sequence[Attribute], *, check_public: bool = True
+) -> DocstringSectionAttributes
+
+```
+
+Build an attributes section from a list of attributes.
+
+Parameters:
+
+- ### **`attributes`**
+
+ (`Sequence[Attribute]`) – The attributes to build the section from.
+
+- ### **`check_public`**
+
+ (`bool`, default: `True` ) – Whether to check if the attribute is public.
+
+Returns:
+
+- `DocstringSectionAttributes` – An attributes docstring section.
+
+## do_as_classes_section
+
+```python
+do_as_classes_section(
+ context: Context, classes: Sequence[Class], *, check_public: bool = True
+) -> DocstringSectionClasses
+
+```
+
+Build a classes section from a list of classes.
+
+Parameters:
+
+- ### **`classes`**
+
+ (`Sequence[Class]`) – The classes to build the section from.
+
+- ### **`check_public`**
+
+ (`bool`, default: `True` ) – Whether to check if the class is public.
+
+Returns:
+
+- `DocstringSectionClasses` – A classes docstring section.
+
+## do_as_functions_section
+
+```python
+do_as_functions_section(
+ context: Context, functions: Sequence[Function], *, check_public: bool = True
+) -> DocstringSectionFunctions
+
+```
+
+Build a functions section from a list of functions.
+
+Parameters:
+
+- ### **`functions`**
+
+ (`Sequence[Function]`) – The functions to build the section from.
+
+- ### **`check_public`**
+
+ (`bool`, default: `True` ) – Whether to check if the function is public.
+
+Returns:
+
+- `DocstringSectionFunctions` – A functions docstring section.
+
+## do_as_modules_section
+
+```python
+do_as_modules_section(
+ context: Context, modules: Sequence[Module], *, check_public: bool = True
+) -> DocstringSectionModules
+
+```
+
+Build a modules section from a list of modules.
+
+Parameters:
+
+- ### **`modules`**
+
+ (`Sequence[Module]`) – The modules to build the section from.
+
+- ### **`check_public`**
+
+ (`bool`, default: `True` ) – Whether to check if the module is public.
+
+Returns:
+
+- `DocstringSectionModules` – A modules docstring section.
+
+## do_backlink_tree
+
+```python
+do_backlink_tree(backlinks: list[Backlink]) -> Tree[BacklinkCrumb]
+
+```
+
+Build a tree of backlinks.
+
+Parameters:
+
+- ### **`backlinks`**
+
+ (`list[Backlink]`) – The list of backlinks.
+
+Returns:
+
+- `Tree[BacklinkCrumb]` – A tree of backlinks.
+
+## do_crossref
+
+```python
+do_crossref(path: str, *, brief: bool = True) -> Markup
+
+```
+
+Deprecated. Filter to create cross-references.
+
+Parameters:
+
+- ### **`path`**
+
+ (`str`) – The path to link to.
+
+- ### **`brief`**
+
+ (`bool`, default: `True` ) – Show only the last part of the path, add full path as hover.
+
+Returns:
+
+- `Markup` – Markup text.
+
+## do_filter_objects
+
+```python
+do_filter_objects(
+ objects_dictionary: dict[str, Object | Alias],
+ *,
+ filters: Sequence[tuple[Pattern, bool]] | Literal["public"] | None = None,
+ members_list: bool | list[str] | None = None,
+ inherited_members: bool | list[str] = False,
+ keep_no_docstrings: bool = True
+) -> list[Object | Alias]
+
+```
+
+Filter a dictionary of objects based on their docstrings.
+
+Parameters:
+
+- ### **`objects_dictionary`**
+
+ (`dict[str, Object | Alias]`) – The dictionary of objects.
+
+- ### **`filters`**
+
+ (`Sequence[tuple[Pattern, bool]] | Literal['public'] | None`, default: `None` ) – Filters to apply, based on members' names, or "public". Each element is a tuple: a pattern, and a boolean indicating whether to reject the object if the pattern matches.
+
+- ### **`members_list`**
+
+ (`bool | list[str] | None`, default: `None` ) – An optional, explicit list of members to keep. When given and empty, return an empty list. When given and not empty, ignore filters and docstrings presence/absence.
+
+- ### **`inherited_members`**
+
+ (`bool | list[str]`, default: `False` ) – Whether to keep inherited members or exclude them.
+
+- ### **`keep_no_docstrings`**
+
+ (`bool`, default: `True` ) – Whether to keep objects with no/empty docstrings (recursive check).
+
+Returns:
+
+- `list[Object | Alias]` – A list of objects.
+
+## do_format_attribute
+
+```python
+do_format_attribute(
+ context: Context,
+ attribute_path: Markup,
+ attribute: Attribute,
+ line_length: int,
+ *,
+ crossrefs: bool = False
+) -> str
+
+```
+
+Format an attribute.
+
+Parameters:
+
+- ### **`context`**
+
+ (`Context`) – Jinja context, passed automatically.
+
+- ### **`attribute_path`**
+
+ (`Markup`) – The path of the callable we render the signature of.
+
+- ### **`attribute`**
+
+ (`Attribute`) – The attribute we render the signature of.
+
+- ### **`line_length`**
+
+ (`int`) – The line length.
+
+- ### **`crossrefs`**
+
+ (`bool`, default: `False` ) – Whether to cross-reference types in the signature.
+
+Returns:
+
+- `str` – The same code, formatted.
+
+## do_format_code
+
+```python
+do_format_code(code: str, line_length: int) -> str
+
+```
+
+Format code.
+
+Parameters:
+
+- ### **`code`**
+
+ (`str`) – The code to format.
+
+- ### **`line_length`**
+
+ (`int`) – The line length.
+
+Returns:
+
+- `str` – The same code, formatted.
+
+## do_format_signature
+
+```python
+do_format_signature(
+ context: Context,
+ callable_path: Markup,
+ function: Function,
+ line_length: int,
+ *,
+ annotations: bool | None = None,
+ crossrefs: bool = False
+) -> str
+
+```
+
+Format a signature.
+
+Parameters:
+
+- ### **`context`**
+
+ (`Context`) – Jinja context, passed automatically.
+
+- ### **`callable_path`**
+
+ (`Markup`) – The path of the callable we render the signature of.
+
+- ### **`function`**
+
+ (`Function`) – The function we render the signature of.
+
+- ### **`line_length`**
+
+ (`int`) – The line length.
+
+- ### **`annotations`**
+
+ (`bool | None`, default: `None` ) – Whether to show type annotations.
+
+- ### **`crossrefs`**
+
+ (`bool`, default: `False` ) – Whether to cross-reference types in the signature.
+
+Returns:
+
+- `str` – The same code, formatted.
+
+## do_get_template
+
+```python
+do_get_template(env: Environment, obj: str | Object) -> str
+
+```
+
+Get the template name used to render an object.
+
+Parameters:
+
+- ### **`env`**
+
+ (`Environment`) – The Jinja environment, passed automatically.
+
+- ### **`obj`**
+
+ (`str | Object`) – A Griffe object, or a template name.
+
+Returns:
+
+- `str` – A template name.
+
+## do_multi_crossref
+
+```python
+do_multi_crossref(text: str, *, code: bool = True) -> Markup
+
+```
+
+Deprecated. Filter to create cross-references.
+
+Parameters:
+
+- ### **`text`**
+
+ (`str`) – The text to scan.
+
+- ### **`code`**
+
+ (`bool`, default: `True` ) – Whether to wrap the result in a code tag.
+
+Returns:
+
+- `Markup` – Markup text.
+
+## do_order_members
+
+```python
+do_order_members(
+ members: Sequence[Object | Alias],
+ order: Order | list[Order],
+ members_list: bool | list[str] | None,
+) -> Sequence[Object | Alias]
+
+```
+
+Order members given an ordering method.
+
+Parameters:
+
+- ### **`members`**
+
+ (`Sequence[Object | Alias]`) – The members to order.
+
+- ### **`order`**
+
+ (`Order | list[Order]`) – The ordering method.
+
+- ### **`members_list`**
+
+ (`bool | list[str] | None`) – An optional member list (manual ordering).
+
+Returns:
+
+- `Sequence[Object | Alias]` – The same members, ordered.
+
+## do_split_path
+
+```python
+do_split_path(path: str, full_path: str) -> Iterator[tuple[str, str, str, str]]
+
+```
+
+Split object paths for building cross-references.
+
+Parameters:
+
+- ### **`path`**
+
+ (`str`) – The path to split.
+
+- ### **`full_path`**
+
+ (`str`) – The full path, used to compute correct paths for each part of the path.
+
+Yields:
+
+- `tuple[str, str, str, str]` – 4-tuples: prefix, word, full path, suffix.
+
+## get_handler
+
+```python
+get_handler(
+ handler_config: MutableMapping[str, Any], tool_config: MkDocsConfig, **kwargs: Any
+) -> PythonHandler
+
+```
+
+Return an instance of `PythonHandler`.
+
+Parameters:
+
+- ### **`handler_config`**
+
+ (`MutableMapping[str, Any]`) – The handler configuration.
+
+- ### **`tool_config`**
+
+ (`MkDocsConfig`) – The tool (SSG) configuration.
+
+Returns:
+
+- `PythonHandler` – An instance of PythonHandler.
+
+## config
+
+Deprecated. Import from `mkdocstrings_handlers.python` directly.
+
+## handler
+
+Deprecated. Import from `mkdocstrings_handlers.python` directly.
+
+## rendering
+
+Deprecated. Import from `mkdocstrings_handlers.python` directly.
diff --git a/llms.txt b/llms.txt
new file mode 100644
index 00000000..8d6e85e4
--- /dev/null
+++ b/llms.txt
@@ -0,0 +1,12 @@
+# mkdocstrings-python
+
+> A Python handler for mkdocstrings.
+
+## Usage
+
+- [Overview](https://mkdocstrings.github.io/python/index.md)
+
+## API
+
+- [API reference](https://mkdocstrings.github.io/python/reference/api/index.md)
+
diff --git a/logo.png b/logo.png
deleted file mode 120000
index d9c1f0ca..00000000
--- a/logo.png
+++ /dev/null
@@ -1 +0,0 @@
-docs/logo.png
\ No newline at end of file
diff --git a/logo.png b/logo.png
new file mode 100644
index 00000000..5b42478c
Binary files /dev/null and b/logo.png differ
diff --git a/mkdocs.yml b/mkdocs.yml
deleted file mode 100644
index 0199ea9a..00000000
--- a/mkdocs.yml
+++ /dev/null
@@ -1,233 +0,0 @@
-site_name: "mkdocstrings-python"
-site_description: "A Python handler for mkdocstrings."
-site_url: "https://mkdocstrings.github.io/python"
-repo_url: "https://github.com/mkdocstrings/python"
-repo_name: "mkdocstrings/python"
-site_dir: "site"
-watch: [mkdocs.yml, README.md, CONTRIBUTING.md, CHANGELOG.md, src/mkdocstrings_handlers]
-copyright: Copyright © 2021 Timothée Mazzucotelli
-edit_uri: edit/main/docs/
-
-validation:
- omitted_files: warn
- absolute_links: warn
- unrecognized_links: warn
-
-hooks:
-- scripts/mkdocs_hooks.py
-
-nav:
-- Home:
- - Overview: index.md
- - Changelog: changelog.md
- - Credits: credits.md
- - License: license.md
-- Usage:
- - usage/index.md
- - Configuration options:
- - General: usage/configuration/general.md
- - Headings: usage/configuration/headings.md
- - Members: usage/configuration/members.md
- - Docstrings: usage/configuration/docstrings.md
- - Signatures: usage/configuration/signatures.md
- - Docstring styles:
- - Google: usage/docstrings/google.md
- - Numpy: usage/docstrings/numpy.md
- - Sphinx: usage/docstrings/sphinx.md
- - Advanced:
- - Customization: usage/customization.md
- - Extensions: usage/extensions.md
-- API reference: reference/api.md
-- Development:
- - Contributing: contributing.md
- - Code of Conduct: code_of_conduct.md
- # - Coverage report: coverage.md
-- Insiders:
- - insiders/index.md
- - Getting started:
- - Installation: insiders/installation.md
- - Changelog: insiders/changelog.md
-- mkdocstrings: https://mkdocstrings.github.io/
-
-theme:
- name: material
- custom_dir: docs/.overrides
- logo: logo.png
- features:
- - announce.dismiss
- - content.action.edit
- - content.action.view
- - content.code.annotate
- - content.code.copy
- - content.tooltips
- - navigation.footer
- - navigation.instant.preview
- - navigation.path
- - navigation.sections
- - navigation.tabs
- - navigation.tabs.sticky
- - navigation.top
- - search.highlight
- - search.suggest
- - toc.follow
- palette:
- - media: "(prefers-color-scheme)"
- toggle:
- icon: material/brightness-auto
- name: Switch to light mode
- - media: "(prefers-color-scheme: light)"
- scheme: default
- primary: teal
- accent: purple
- toggle:
- icon: material/weather-sunny
- name: Switch to dark mode
- - media: "(prefers-color-scheme: dark)"
- scheme: slate
- primary: black
- accent: lime
- toggle:
- icon: material/weather-night
- name: Switch to system preference
-
-extra_css:
-- css/material.css
-- css/mkdocstrings.css
-- css/insiders.css
-
-extra_javascript:
-- js/feedback.js
-
-markdown_extensions:
-- abbr
-- attr_list
-- admonition
-- callouts:
- strip_period: no
-- footnotes
-- md_in_html
-- pymdownx.blocks.admonition
-- pymdownx.blocks.details
-- pymdownx.blocks.tab:
- alternate_style: true
- slugify: !!python/object/apply:pymdownx.slugs.slugify
- kwds:
- case: lower
-- pymdownx.emoji:
- emoji_index: !!python/name:material.extensions.emoji.twemoji
- emoji_generator: !!python/name:material.extensions.emoji.to_svg
-- pymdownx.highlight:
- pygments_lang_class: true
-- pymdownx.magiclink
-- pymdownx.snippets:
- auto_append: [docs/.glossary.md]
- base_path: [!relative $config_dir]
- check_paths: true
-- pymdownx.superfences:
- custom_fences:
- - name: mermaid
- class: mermaid
- format: !!python/name:pymdownx.superfences.fence_code_format
-- pymdownx.tabbed:
- alternate_style: true
- slugify: !!python/object/apply:pymdownx.slugs.slugify
- kwds:
- case: lower
-- pymdownx.tasklist:
- custom_checkbox: true
-- toc:
- permalink: "¤"
-
-plugins:
-- search
-- autorefs
-- markdown-exec
-- section-index
-# - coverage
-- mkdocstrings:
- handlers:
- python:
- paths: [src, docs/snippets]
- inventories:
- - https://docs.python.org/3/objects.inv
- - https://mkdocstrings.github.io/objects.inv
- - https://mkdocstrings.github.io/autorefs/objects.inv
- - https://mkdocstrings.github.io/griffe/objects.inv
- - https://python-markdown.github.io/objects.inv
- options:
- backlinks: tree
- docstring_options:
- ignore_init_summary: true
- docstring_section_style: list
- extensions: [scripts/griffe_extensions.py]
- filters: public
- heading_level: 1
- inherited_members: true
- line_length: 88
- merge_init_into_class: true
- parameter_headings: true
- preload_modules: [mkdocstrings]
- relative_crossrefs: true
- scoped_crossrefs: true
- separate_signature: true
- show_bases: false
- show_inheritance_diagram: true
- show_root_heading: true
- show_root_full_path: false
- show_signature_annotations: true
- show_source: false
- show_symbol_type_heading: true
- show_symbol_type_toc: true
- signature_crossrefs: true
- summary: true
- unwrap_annotated: true
-- llmstxt:
- full_output: llms-full.txt
- sections:
- Usage:
- - index.md
- API:
- - reference/api.md
-- git-revision-date-localized:
- enabled: !ENV [DEPLOY, false]
- enable_creation_date: true
- type: timeago
-- minify:
- minify_html: !ENV [DEPLOY, false]
-- redirects:
- redirect_maps:
- reference/mkdocstrings_handlers/python/index.md: reference/api.md
- reference/mkdocstrings_handlers/python/config.md: reference/api.md#mkdocstrings_handlers.python.config
- reference/mkdocstrings_handlers/python/debug.md: reference/api.md#mkdocstrings_handlers.python.debug
- reference/mkdocstrings_handlers/python/handler.md: reference/api.md#mkdocstrings_handlers.python.handler
- reference/mkdocstrings_handlers/python/rendering.md: reference/api.md#mkdocstrings_handlers.python.rendering
-
-- group:
- enabled: !ENV [MATERIAL_INSIDERS, false]
- plugins:
- - typeset
-
-extra:
- social:
- - icon: fontawesome/brands/github
- link: https://github.com/pawamoy
- - icon: fontawesome/brands/mastodon
- link: https://fosstodon.org/@pawamoy
- - icon: fontawesome/brands/twitter
- link: https://twitter.com/pawamoy
- - icon: fontawesome/brands/gitter
- link: https://gitter.im/mkdocstrings/python
- - icon: fontawesome/brands/python
- link: https://pypi.org/project/mkdocstrings-python/
- analytics:
- feedback:
- title: Was this page helpful?
- ratings:
- - icon: material/emoticon-happy-outline
- name: This page was helpful
- data: 1
- note: Thanks for your feedback!
- - icon: material/emoticon-sad-outline
- name: This page could be improved
- data: 0
- note: Let us know how we can improve this page.
diff --git a/objects.inv b/objects.inv
new file mode 100644
index 00000000..ca9f4942
Binary files /dev/null and b/objects.inv differ
diff --git a/pyproject.toml b/pyproject.toml
deleted file mode 100644
index d93cb20c..00000000
--- a/pyproject.toml
+++ /dev/null
@@ -1,124 +0,0 @@
-[build-system]
-requires = ["pdm-backend"]
-build-backend = "pdm.backend"
-
-[project]
-name = "mkdocstrings-python"
-description = "A Python handler for mkdocstrings."
-authors = [{name = "Timothée Mazzucotelli", email = "dev@pawamoy.fr"}]
-license = "ISC"
-license-files = ["LICENSE"]
-readme = "README.md"
-requires-python = ">=3.9"
-keywords = []
-dynamic = ["version"]
-classifiers = [
- "Development Status :: 4 - Beta",
- "Intended Audience :: Developers",
- "Programming Language :: Python",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.9",
- "Programming Language :: Python :: 3.10",
- "Programming Language :: Python :: 3.11",
- "Programming Language :: Python :: 3.12",
- "Programming Language :: Python :: 3.13",
- "Programming Language :: Python :: 3.14",
- "Topic :: Documentation",
- "Topic :: Software Development",
- "Topic :: Software Development :: Documentation",
- "Topic :: Utilities",
- "Typing :: Typed",
-]
-dependencies = [
- "mkdocstrings>=0.28.3",
- "mkdocs-autorefs>=1.4",
- "griffe>=1.6.2",
- "typing-extensions>=4.0; python_version < '3.11'",
-]
-
-[project.urls]
-Homepage = "https://mkdocstrings.github.io/python"
-Documentation = "https://mkdocstrings.github.io/python"
-Changelog = "https://mkdocstrings.github.io/python/changelog"
-Repository = "https://github.com/mkdocstrings/python"
-Issues = "https://github.com/mkdocstrings/python/issues"
-Discussions = "https://github.com/mkdocstrings/python/discussions"
-Gitter = "https://gitter.im/mkdocstrings/python"
-Funding = "https://github.com/sponsors/pawamoy"
-
-[tool.pdm.version]
-source = "call"
-getter = "scripts.get_version:get_version"
-
-[tool.pdm.build]
-package-dir = "src"
-includes = ["src/mkdocstrings_handlers"]
-editable-backend = "editables"
-
-# Include as much as possible in the source distribution, to help redistributors.
-excludes = ["**/.pytest_cache", "**/.mypy_cache"]
-source-includes = [
- "config",
- "docs",
- "scripts",
- "share",
- "tests",
- "duties.py",
- "mkdocs.yml",
- "*.md",
- "LICENSE",
-]
-
-[tool.pdm.build.wheel-data]
-# Manual pages can be included in the wheel.
-# Depending on the installation tool, they will be accessible to users.
-# pipx supports it, uv does not yet, see https://github.com/astral-sh/uv/issues/4731.
-data = [
- {path = "share/**/*", relative-to = "."},
-]
-
-[dependency-groups]
-maintain = [
- "build>=1.2",
- "git-changelog>=2.5",
- "twine>=5.1",
- "yore>=0.3.3",
-]
-ci = [
- "black>=25.1",
- "duty>=1.6",
- "ruff>=0.4",
- "pytest>=8.2",
- "pytest-cov>=5.0",
- "pytest-randomly>=3.15",
- "pytest-xdist>=3.6",
- "beautifulsoup4>=4.12.3",
- "inline-snapshot>=0.18",
- "mypy>=1.10",
- "types-markdown>=3.6",
- "types-pyyaml>=6.0",
-]
- docs = [
- "markdown-callouts>=0.4",
- "markdown-exec>=1.8",
- "mkdocs>=1.6",
- "mkdocs-coverage>=1.0",
- "mkdocs-git-revision-date-localized-plugin>=1.2",
- "mkdocs-llmstxt>=0.2",
- "mkdocs-material>=9.5",
- "mkdocs-minify-plugin>=0.8",
- "mkdocs-redirects>=1.2",
- "mkdocs-section-index>=0.3",
- "mkdocstrings>=0.29",
- "pydantic>=2.10",
- # YORE: EOL 3.10: Remove line.
- "tomli>=2.0; python_version < '3.11'",
-]
-
-[tool.inline-snapshot]
-storage-dir = "tests/snapshots"
-format-command = "ruff format --config config/ruff.toml --stdin-filename {filename}"
-
-[tool.uv]
-default-groups = ["maintain", "ci", "docs"]
diff --git a/reference/api/index.html b/reference/api/index.html
new file mode 100644
index 00000000..1c5ac77c
--- /dev/null
+++ b/reference/api/index.html
@@ -0,0 +1,590 @@
+ Python handler for mkdocstrings. Modules: Deprecated. Import from Deprecated. Import from Deprecated. Import from Classes: Auto style docstring options. Autorefs hook. Google style docstring options. An inventory. Numpy style docstring options. Per style options. Python handler configuration. The Python handler class. Python handler configuration. Accepted input options. Final options passed as template context. Sphinx style docstring options. Summary option. Functions: Build an attributes section from a list of attributes. Build a classes section from a list of classes. Build a functions section from a list of functions. Build a modules section from a list of modules. Build a tree of backlinks. Deprecated. Filter to create cross-references. Filter a dictionary of objects based on their docstrings. Format an attribute. Format code. Format a signature. Get the template name used to render an object. Deprecated. Filter to create cross-references. Order members given an ordering method. Split object paths for building cross-references. Return an instance of Attributes: Ordering methods. A tree type. Each node holds a tuple of items. Filter to stash cross-references (and restore them after formatting and highlighting). Ordering methods. A tree type. Each node holds a tuple of items. Filter to stash cross-references (and restore them after formatting and highlighting). Auto style docstring options. Methods: Create an instance from a dictionary. Attributes: The default docstring style to use if no other style is detected. The method to use to determine the docstring style. Per-style options. The order of the docstring styles to try. The default docstring style to use if no other style is detected. The method to use to determine the docstring style. Per-style options. The order of the docstring styles to try. Autorefs hook. With this hook, we're able to add context to autorefs (cross-references), such as originating file path and line number, to improve error reporting. Parameters: The object being rendered. The configuration dictionary. Methods: Expand an identifier. Get the context for the current object. Attributes: The configuration options. The current object being rendered. The current object being rendered. Google style docstring options. Attributes: Whether to ignore the summary in Whether to parse multiple items in Whether to parse Whether to parse multiple items in Whether to parse Whether to parse the return type of properties at the beginning of their summary: Whether to remove doctest flags from Python example blocks. Warn about documented parameters not appearing in the signature. Whether to ignore the summary in Whether to parse multiple items in When true, each item's continuation lines must be indented. When false (single item), no further indentation is required. Whether to parse When true, type must be wrapped in parentheses: Whether to parse multiple items in When true, each item's continuation lines must be indented. When false (single item), no further indentation is required. Whether to parse When true, type must be wrapped in parentheses: Whether to parse the return type of properties at the beginning of their summary: An inventory. Attributes: Numpy style docstring options. Attributes: Whether to ignore the summary in Whether to remove doctest flags from Python example blocks. Warn about documented parameters not appearing in the signature. Whether to ignore the summary in Per style options. Methods: Create an instance from a dictionary. Attributes: Google-style options. Numpydoc-style options. Sphinx-style options. Google-style options. Numpydoc-style options. Sphinx-style options. Python handler configuration. Methods: Attributes: The object inventories to load. Whether to always load external modules/packages. The locale to use when translating template strings. Configuration options for collecting and rendering objects. The paths in which to search for Python packages. The object inventories to load. Whether to always load external modules/packages. The locale to use when translating template strings. Configuration options for collecting and rendering objects. The paths in which to search for Python packages. The Python handler class. Parameters: The handler configuration. The base directory of the project. Arguments passed to the parent constructor. Methods: Collect the documentation for the given identifier. Render Markdown text; for use inside templates. Render an HTML heading and register it for the table of contents. For use inside templates. Get the aliases for the given identifier. Load template extensions for the given handler, return their templates directories. Return and clear the headings gathered so far. Return the URLs of the inventory files to download. Get combined default, global and local options. Return the path to the handler's templates directory. Yield items and their URLs from an inventory file streamed from Resolve extension paths relative to config file. Render the collected data. Render the backlinks. Teardown the handler. Update the Jinja environment with custom filters and tests. Attributes: The base directory of the project. The handler configuration. The path to custom templates. The cross-documentation domain/language for this handler. Whether this handler is interested in enabling the creation of the The Jinja environment. Extra CSS. Fallback configuration when searching anchors for identifiers. The fallback theme. The global configuration options (in The Markdown instance. The Markdown extensions to use. The configuration for the Markdown extensions. The handler's name. Whether we're in the outer Markdown conversion layer. The selected theme. The path to custom templates. The cross-documentation domain/language for this handler. Whether this handler is interested in enabling the creation of the The Jinja environment. Fallback configuration when searching anchors for identifiers. The global configuration options (in The configuration for the Markdown extensions. Collect the documentation for the given identifier. Parameters: The identifier of the object to collect. The options to use for the collection. Returns: The collected item. Render Markdown text; for use inside templates. Parameters: The text to convert. The base heading level to start all Markdown headings from. The HTML id of the element that's considered the parent of this element. Whether to exclude the Returns: An HTML string. Render an HTML heading and register it for the table of contents. For use inside templates. Parameters: The HTML within the heading. The level of heading (e.g. 3 -> An optional role for the object bound to this heading. If True, only register it for the table of contents, don't render anything. The title to use in the table of contents ('data-toc-label' attribute). Any extra HTML attributes of the heading. Returns: An HTML string. Return the URLs of the inventory files to download. Get combined default, global and local options. Parameters: Returns: The combined options. Return the path to the handler's templates directory. Override to customize how the templates directory is found. Parameters: Raises: When no such handler is installed. When the templates directory cannot be found. Returns: The templates directory path. Yield items and their URLs from an inventory file streamed from This implements mkdocstrings' Parameters: The binary file-like object to read the inventory from. The URL that this file is being streamed from (used to guess The URL that this inventory's sub-paths are relative to. A list of domain strings to filter the inventory by, when not passed, "py" will be used. Ignore additional arguments passed from the config. Yields: Render the collected data. Parameters: The collected data. The options to use for rendering. Returns: The rendered data (HTML). Teardown the handler. This method should be implemented to, for example, terminate a subprocess that was started when creating the handler instance. Python handler configuration. Methods: Attributes: The inventories to load. Whether to always load external modules/packages. The locale to use when translating template strings. Configuration options for collecting and rendering objects. The paths in which to search for Python packages. The inventories to load. Whether to always load external modules/packages. The locale to use when translating template strings. Configuration options for collecting and rendering objects. The paths in which to search for Python packages. Accepted input options. Methods: Attributes: Whether to allow inspecting modules when visiting them is not possible. The verbosity for annotations path: Whether to render backlinks, and how. The options for the docstring parser. The style used to render docstring sections. The docstring style to use: A list of Griffe extensions to load. Extra options. A list of filters, or Whether to load stubs package (package-stubs) when extracting docstrings. Whether to force using dynamic analysis when loading data. Group the object's children by categories: attributes, classes, functions, and modules. A custom string to override the autogenerated heading of the root object. The initial heading level to use. A boolean, or an explicit list of inherited members to render. Maximum line length when formatting code/signatures. A boolean, or an explicit list of members to render. The members ordering to use. Whether to merge the Whether to modernize annotations, for example Whether to render headings for parameters (therefore showing parameters in the ToC). Pre-load modules that are not specified directly in autodoc instructions ( Whether to enable the relative crossref syntax. Whether to enable the scoped crossref ability. Whether to put the whole signature in a code block below the heading. Show the base classes of a class. When grouped by categories, show a heading for each category. Whether to display the 'Attributes' section in the object's docstring. Whether to display the 'Classes' section in the object's docstring. Whether to display the textual block (including admonitions) in the object's docstring. Whether to display the 'Examples' section in the object's docstring. Whether to display the 'Functions' or 'Methods' sections in the object's docstring. Whether to display the 'Modules' section in the object's docstring. Whether to display the 'Other Parameters' section in the object's docstring. Whether to display the 'Parameters' section in the object's docstring. Whether to display the 'Raises' section in the object's docstring. Whether to display the 'Receives' section in the object's docstring. Whether to display the 'Returns' section in the object's docstring. Whether to display the 'Warns' section in the object's docstring. Whether to display the 'Yields' section in the object's docstring. Show the object heading even if it has no docstring or children with docstrings. Show the inheritance diagram of a class using Mermaid. Whether to show labels of the members. Show the full Python path of every object. Show the overloads of a function or method. Show the full Python path for the root object heading. Show the heading of the object at the root of the documentation tree. Show the full Python path of the root members. If the root heading is not shown, at least add a ToC entry for it. Show methods and functions signatures. Show the type annotations in methods and functions signatures. Show the source code of this object. When rendering a module, show its submodules recursively. Show the symbol type in headings (e.g. mod, class, meth, func and attr). Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr). Whether to render cross-references for type annotations in signatures. Whether to render summaries of modules, classes, functions (methods) and attributes. A custom string to override the autogenerated toc label of the root object. Whether to unwrap Whether to allow inspecting modules when visiting them is not possible. The verbosity for annotations path: Whether to render backlinks, and how. The options for the docstring parser. See docstring parsers and their options in Griffe docs. The style used to render docstring sections. The docstring style to use: A list of Griffe extensions to load. Extra options. A list of filters, or List of filters A filter starting with Filtering methods Sponsors only — Insiders 1.11.0 The Whether to load stubs package (package-stubs) when extracting docstrings. Whether to force using dynamic analysis when loading data. Group the object's children by categories: attributes, classes, functions, and modules. A custom string to override the autogenerated heading of the root object. The initial heading level to use. A boolean, or an explicit list of inherited members to render. If true, select all inherited members, which can then be filtered with Maximum line length when formatting code/signatures. A boolean, or an explicit list of members to render. If true, select all members without further filtering. If false or empty list, do not render members. If none, select all members and apply further filtering with filters and docstrings. The members ordering to use. Since Whether to merge the Whether to modernize annotations, for example Whether to render headings for parameters (therefore showing parameters in the ToC). Pre-load modules that are not specified directly in autodoc instructions ( It is useful when you want to render documentation for a particular member of an object, and this member is imported from another package than its parent. For an imported member to be rendered, you need to add it to the The modules must be listed as an array of strings. Whether to enable the relative crossref syntax. Whether to enable the scoped crossref ability. Whether to put the whole signature in a code block below the heading. If Black or Ruff are installed, the signature is also formatted using them. Show the base classes of a class. When grouped by categories, show a heading for each category. Whether to display the 'Attributes' section in the object's docstring. Whether to display the 'Classes' section in the object's docstring. Whether to display the textual block (including admonitions) in the object's docstring. Whether to display the 'Examples' section in the object's docstring. Whether to display the 'Functions' or 'Methods' sections in the object's docstring. Whether to display the 'Modules' section in the object's docstring. Whether to display the 'Other Parameters' section in the object's docstring. Whether to display the 'Parameters' section in the object's docstring. Whether to display the 'Raises' section in the object's docstring. Whether to display the 'Receives' section in the object's docstring. Whether to display the 'Returns' section in the object's docstring. Whether to display the 'Warns' section in the object's docstring. Whether to display the 'Yields' section in the object's docstring. Show the object heading even if it has no docstring or children with docstrings. Show the inheritance diagram of a class using Mermaid. Whether to show labels of the members. Show the full Python path of every object. Show the overloads of a function or method. Show the full Python path for the root object heading. Show the heading of the object at the root of the documentation tree. The root object is the object referenced by the identifier after Show the full Python path of the root members. If the root heading is not shown, at least add a ToC entry for it. Show methods and functions signatures. Show the type annotations in methods and functions signatures. Show the source code of this object. When rendering a module, show its submodules recursively. Show the symbol type in headings (e.g. mod, class, meth, func and attr). Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr). Whether to render cross-references for type annotations in signatures. Whether to render summaries of modules, classes, functions (methods) and attributes. A custom string to override the autogenerated toc label of the root object. Final options passed as template context. Methods: Attributes: Whether to allow inspecting modules when visiting them is not possible. The verbosity for annotations path: Whether to render backlinks, and how. The options for the docstring parser. The style used to render docstring sections. The docstring style to use: A list of Griffe extensions to load. Extra options. A list of filters, or Whether to load stubs package (package-stubs) when extracting docstrings. Whether to force using dynamic analysis when loading data. Group the object's children by categories: attributes, classes, functions, and modules. A custom string to override the autogenerated heading of the root object. The initial heading level to use. A boolean, or an explicit list of inherited members to render. Maximum line length when formatting code/signatures. A boolean, or an explicit list of members to render. The members ordering to use. Whether to merge the Whether to modernize annotations, for example Whether to render headings for parameters (therefore showing parameters in the ToC). Pre-load modules that are not specified directly in autodoc instructions ( Whether to enable the relative crossref syntax. Whether to enable the scoped crossref ability. Whether to put the whole signature in a code block below the heading. Show the base classes of a class. When grouped by categories, show a heading for each category. Whether to display the 'Attributes' section in the object's docstring. Whether to display the 'Classes' section in the object's docstring. Whether to display the textual block (including admonitions) in the object's docstring. Whether to display the 'Examples' section in the object's docstring. Whether to display the 'Functions' or 'Methods' sections in the object's docstring. Whether to display the 'Modules' section in the object's docstring. Whether to display the 'Other Parameters' section in the object's docstring. Whether to display the 'Parameters' section in the object's docstring. Whether to display the 'Raises' section in the object's docstring. Whether to display the 'Receives' section in the object's docstring. Whether to display the 'Returns' section in the object's docstring. Whether to display the 'Warns' section in the object's docstring. Whether to display the 'Yields' section in the object's docstring. Show the object heading even if it has no docstring or children with docstrings. Show the inheritance diagram of a class using Mermaid. Whether to show labels of the members. Show the full Python path of every object. Show the overloads of a function or method. Show the full Python path for the root object heading. Show the heading of the object at the root of the documentation tree. Show the full Python path of the root members. If the root heading is not shown, at least add a ToC entry for it. Show methods and functions signatures. Show the type annotations in methods and functions signatures. Show the source code of this object. When rendering a module, show its submodules recursively. Show the symbol type in headings (e.g. mod, class, meth, func and attr). Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr). Whether to render cross-references for type annotations in signatures. Whether to render summaries of modules, classes, functions (methods) and attributes. A custom string to override the autogenerated toc label of the root object. Whether to unwrap Whether to allow inspecting modules when visiting them is not possible. The verbosity for annotations path: Whether to render backlinks, and how. The options for the docstring parser. See docstring parsers and their options in Griffe docs. The style used to render docstring sections. The docstring style to use: A list of Griffe extensions to load. Extra options. A list of filters, or Whether to load stubs package (package-stubs) when extracting docstrings. Whether to force using dynamic analysis when loading data. Group the object's children by categories: attributes, classes, functions, and modules. A custom string to override the autogenerated heading of the root object. The initial heading level to use. A boolean, or an explicit list of inherited members to render. If true, select all inherited members, which can then be filtered with Maximum line length when formatting code/signatures. A boolean, or an explicit list of members to render. If true, select all members without further filtering. If false or empty list, do not render members. If none, select all members and apply further filtering with filters and docstrings. The members ordering to use. Since Whether to merge the Whether to modernize annotations, for example Whether to render headings for parameters (therefore showing parameters in the ToC). Pre-load modules that are not specified directly in autodoc instructions ( It is useful when you want to render documentation for a particular member of an object, and this member is imported from another package than its parent. For an imported member to be rendered, you need to add it to the The modules must be listed as an array of strings. Whether to enable the relative crossref syntax. Whether to enable the scoped crossref ability. Whether to put the whole signature in a code block below the heading. If Black or Ruff are installed, the signature is also formatted using them. Show the base classes of a class. When grouped by categories, show a heading for each category. Whether to display the 'Attributes' section in the object's docstring. Whether to display the 'Classes' section in the object's docstring. Whether to display the textual block (including admonitions) in the object's docstring. Whether to display the 'Examples' section in the object's docstring. Whether to display the 'Functions' or 'Methods' sections in the object's docstring. Whether to display the 'Modules' section in the object's docstring. Whether to display the 'Other Parameters' section in the object's docstring. Whether to display the 'Parameters' section in the object's docstring. Whether to display the 'Raises' section in the object's docstring. Whether to display the 'Receives' section in the object's docstring. Whether to display the 'Returns' section in the object's docstring. Whether to display the 'Warns' section in the object's docstring. Whether to display the 'Yields' section in the object's docstring. Show the object heading even if it has no docstring or children with docstrings. Show the inheritance diagram of a class using Mermaid. Whether to show labels of the members. Show the full Python path of every object. Show the overloads of a function or method. Show the full Python path for the root object heading. Show the heading of the object at the root of the documentation tree. The root object is the object referenced by the identifier after Show the full Python path of the root members. If the root heading is not shown, at least add a ToC entry for it. Show methods and functions signatures. Show the type annotations in methods and functions signatures. Show the source code of this object. When rendering a module, show its submodules recursively. Show the symbol type in headings (e.g. mod, class, meth, func and attr). Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr). Whether to render cross-references for type annotations in signatures. Whether to render summaries of modules, classes, functions (methods) and attributes. A custom string to override the autogenerated toc label of the root object. Whether to unwrap Create an instance from a dictionary. Summary option. Attributes: Whether to render summaries of attributes. Whether to render summaries of classes. Whether to render summaries of functions (methods). Whether to render summaries of modules. Whether to render summaries of attributes. Whether to render summaries of classes. Build an attributes section from a list of attributes. Parameters: The attributes to build the section from. Whether to check if the attribute is public. Returns: An attributes docstring section. Filter a dictionary of objects based on their docstrings. Parameters: The dictionary of objects. Filters to apply, based on members' names, or An optional, explicit list of members to keep. When given and empty, return an empty list. When given and not empty, ignore filters and docstrings presence/absence. Whether to keep inherited members or exclude them. Whether to keep objects with no/empty docstrings (recursive check). Returns: Format an attribute. Parameters: Jinja context, passed automatically. The path of the callable we render the signature of. The attribute we render the signature of. The line length. Whether to cross-reference types in the signature. Returns: The same code, formatted. Format a signature. Parameters: Jinja context, passed automatically. The path of the callable we render the signature of. The function we render the signature of. The line length. Whether to show type annotations. Whether to cross-reference types in the signature. Returns: The same code, formatted. Return an instance of Parameters: The handler configuration. The tool (SSG) configuration. Returns: An instance of Deprecated. Import from Deprecated. Import from Deprecated. Import from tag from around the whole output.
+
+Returns:
+
+- `Markup` – An HTML string.
+
+### do_heading
+
+```python
+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
+
+```python
+get_aliases(identifier: str) -> tuple[str, ...]
+
+```
+
+Get the aliases for the given identifier.
+
+Parameters:
+
+- #### **`identifier`**
+
+ (`str`) – The identifier to get the aliases for.
+
+Returns:
+
+- `tuple[str, ...]` – The aliases.
+
+### get_extended_templates_dirs
+
+```python
+get_extended_templates_dirs(handler: str) -> list[Path]
+
+```
+
+Load template extensions for the given handler, return their templates directories.
+
+Parameters:
+
+- #### **`handler`**
+
+ (`str`) – The name of the handler to get the extended templates directory of.
+
+Returns:
+
+- `list[Path]` – The extensions templates directories.
+
+### get_headings
+
+```python
+get_headings() -> Sequence[Element]
+
+```
+
+Return and clear the headings gathered so far.
+
+Returns:
+
+- `Sequence[Element]` – A list of HTML elements.
+
+### get_inventory_urls
+
+```python
+get_inventory_urls() -> list[tuple[str, dict[str, Any]]]
+
+```
+
+Return the URLs of the inventory files to download.
+
+### get_options
+
+```python
+get_options(local_options: Mapping[str, Any]) -> HandlerOptions
+
+```
+
+Get combined default, global and local options.
+
+Parameters:
+
+- #### **`local_options`**
+
+ (`Mapping[str, Any]`) – The local options.
+
+Returns:
+
+- `HandlerOptions` – The combined options.
+
+### get_templates_dir
+
+```python
+get_templates_dir(handler: str | None = None) -> Path
+
+```
+
+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
+
+```python
+load_inventory(
+ in_file: BinaryIO,
+ url: str,
+ base_url: str | None = None,
+ domains: list[str] | None = None,
+ **kwargs: Any
+) -> Iterator[tuple[str, str]]
+
+```
+
+Yield items and their URLs from an inventory file streamed from `in_file`.
+
+This implements mkdocstrings' `load_inventory` "protocol" (see mkdocstrings.plugin).
+
+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.
+
+- #### **`domains`**
+
+ (`list[str] | None`, default: `None` ) – A list of domain strings to filter the inventory by, when not passed, "py" will be used.
+
+- #### **`**kwargs`**
+
+ (`Any`, default: `{}` ) – Ignore additional arguments passed from the config.
+
+Yields:
+
+- `tuple[str, str]` – Tuples of (item identifier, item URL).
+
+### normalize_extension_paths
+
+```python
+normalize_extension_paths(extensions: Sequence) -> Sequence
+
+```
+
+Resolve extension paths relative to config file.
+
+Parameters:
+
+- #### **`extensions`**
+
+ (`Sequence`) – The extensions (configuration) to normalize.
+
+Returns:
+
+- `Sequence` – The normalized extensions.
+
+### render
+
+```python
+render(data: CollectorItem, options: PythonOptions) -> str
+
+```
+
+Render the collected data.
+
+Parameters:
+
+- #### **`data`**
+
+ (`CollectorItem`) – The collected data.
+
+- #### **`options`**
+
+ (`PythonOptions`) – The options to use for rendering.
+
+Returns:
+
+- `str` – The rendered data (HTML).
+
+### render_backlinks
+
+```python
+render_backlinks(backlinks: Mapping[str, Iterable[Backlink]]) -> str
+
+```
+
+Render the backlinks.
+
+Parameters:
+
+- #### **`backlinks`**
+
+ (`Mapping[str, Iterable[Backlink]]`) – The backlinks to render.
+
+Returns:
+
+- `str` – The rendered backlinks (HTML).
+
+### teardown
+
+```python
+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
+
+```python
+update_env(config: Any) -> None
+
+```
+
+Update the Jinja environment with custom filters and tests.
+
+Parameters:
+
+- #### **`config`**
+
+ (`Any`) – The SSG configuration.
+
+## PythonInputConfig
+
+```python
+PythonInputConfig(
+ inventories: list[str | Inventory] = list(),
+ paths: list[str] = lambda: ["."](),
+ load_external_modules: bool | None = None,
+ options: PythonInputOptions = PythonInputOptions(),
+ locale: str | None = None,
+)
+
+```
+
+Python handler configuration.
+
+Methods:
+
+- **`coerce`** – Coerce data.
+- **`from_data`** – Create an instance from a dictionary.
+
+Attributes:
+
+- **`inventories`** (`list[str | Inventory]`) – The inventories to load.
+- **`load_external_modules`** (`bool | None`) – Whether to always load external modules/packages.
+- **`locale`** (`str | None`) – The locale to use when translating template strings.
+- **`options`** (`PythonInputOptions`) – Configuration options for collecting and rendering objects.
+- **`paths`** (`list[str]`) – The paths in which to search for Python packages.
+
+### inventories
+
+```python
+inventories: list[str | Inventory] = field(default_factory=list)
+
+```
+
+The inventories to load.
+
+### load_external_modules
+
+```python
+load_external_modules: bool | None = None
+
+```
+
+Whether to always load external modules/packages.
+
+### locale
+
+```python
+locale: str | None = None
+
+```
+
+The locale to use when translating template strings.
+
+### options
+
+```python
+options: PythonInputOptions = field(default_factory=PythonInputOptions)
+
+```
+
+Configuration options for collecting and rendering objects.
+
+### paths
+
+```python
+paths: list[str] = field(default_factory=lambda: ['.'])
+
+```
+
+The paths in which to search for Python packages.
+
+### coerce
+
+```python
+coerce(**data: Any) -> MutableMapping[str, Any]
+
+```
+
+Coerce data.
+
+### from_data
+
+```python
+from_data(**data: Any) -> Self
+
+```
+
+Create an instance from a dictionary.
+
+## PythonInputOptions
+
+```python
+PythonInputOptions(
+ allow_inspection: bool = True,
+ force_inspection: bool = False,
+ annotations_path: Literal["brief", "source", "full"] = "brief",
+ backlinks: Literal["flat", "tree", False] = False,
+ docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+ ) = None,
+ docstring_section_style: Literal["table", "list", "spacy"] = "table",
+ docstring_style: Literal["auto", "google", "numpy", "sphinx"] | None = "google",
+ extensions: list[str | dict[str, Any]] = list(),
+ filters: list[str] | Literal["public"] = lambda: copy()(),
+ find_stubs_package: bool = False,
+ group_by_category: bool = True,
+ heading: str = "",
+ heading_level: int = 2,
+ inherited_members: bool | list[str] = False,
+ line_length: int = 60,
+ members: list[str] | bool | None = None,
+ members_order: Order | list[Order] = "alphabetical",
+ merge_init_into_class: bool = False,
+ modernize_annotations: bool = False,
+ parameter_headings: bool = False,
+ preload_modules: list[str] = list(),
+ relative_crossrefs: bool = False,
+ scoped_crossrefs: bool = False,
+ show_overloads: bool = True,
+ separate_signature: bool = False,
+ show_bases: bool = True,
+ show_category_heading: bool = False,
+ show_docstring_attributes: bool = True,
+ show_docstring_classes: bool = True,
+ show_docstring_description: bool = True,
+ show_docstring_examples: bool = True,
+ show_docstring_functions: bool = True,
+ show_docstring_modules: bool = True,
+ show_docstring_other_parameters: bool = True,
+ show_docstring_parameters: bool = True,
+ show_docstring_raises: bool = True,
+ show_docstring_receives: bool = True,
+ show_docstring_returns: bool = True,
+ show_docstring_warns: bool = True,
+ show_docstring_yields: bool = True,
+ show_if_no_docstring: bool = False,
+ show_inheritance_diagram: bool = False,
+ show_labels: bool = True,
+ show_object_full_path: bool = False,
+ show_root_full_path: bool = True,
+ show_root_heading: bool = False,
+ show_root_members_full_path: bool = False,
+ show_root_toc_entry: bool = True,
+ show_signature_annotations: bool = False,
+ show_signature: bool = True,
+ show_source: bool = True,
+ show_submodules: bool = False,
+ show_symbol_type_heading: bool = False,
+ show_symbol_type_toc: bool = False,
+ signature_crossrefs: bool = False,
+ summary: bool | SummaryOption = SummaryOption(),
+ toc_label: str = "",
+ unwrap_annotated: bool = False,
+ extra: dict[str, Any] = dict(),
+)
+
+```
+
+Accepted input options.
+
+Methods:
+
+- **`coerce`** – Coerce data.
+- **`from_data`** – Create an instance from a dictionary.
+
+Attributes:
+
+- **`allow_inspection`** (`bool`) – Whether to allow inspecting modules when visiting them is not possible.
+- **`annotations_path`** (`Literal['brief', 'source', 'full']`) – The verbosity for annotations path: brief (recommended), source (as written in the source), or full.
+- **`backlinks`** (`Literal['flat', 'tree', False]`) – Whether to render backlinks, and how.
+- **`docstring_options`** (`GoogleStyleOptions | NumpyStyleOptions | SphinxStyleOptions | AutoStyleOptions | None`) – The options for the docstring parser.
+- **`docstring_section_style`** (`Literal['table', 'list', 'spacy']`) – The style used to render docstring sections.
+- **`docstring_style`** (`Literal['auto', 'google', 'numpy', 'sphinx'] | None`) – The docstring style to use: auto, google, numpy, sphinx, or None.
+- **`extensions`** (`list[str | dict[str, Any]]`) – A list of Griffe extensions to load.
+- **`extra`** (`dict[str, Any]`) – Extra options.
+- **`filters`** (`list[str] | Literal['public']`) – A list of filters, or "public".
+- **`find_stubs_package`** (`bool`) – Whether to load stubs package (package-stubs) when extracting docstrings.
+- **`force_inspection`** (`bool`) – Whether to force using dynamic analysis when loading data.
+- **`group_by_category`** (`bool`) – Group the object's children by categories: attributes, classes, functions, and modules.
+- **`heading`** (`str`) – A custom string to override the autogenerated heading of the root object.
+- **`heading_level`** (`int`) – The initial heading level to use.
+- **`inherited_members`** (`bool | list[str]`) – A boolean, or an explicit list of inherited members to render.
+- **`line_length`** (`int`) – Maximum line length when formatting code/signatures.
+- **`members`** (`list[str] | bool | None`) – A boolean, or an explicit list of members to render.
+- **`members_order`** (`Order | list[Order]`) – The members ordering to use.
+- **`merge_init_into_class`** (`bool`) – Whether to merge the __init__ method into the class' signature and docstring.
+- **`modernize_annotations`** (`bool`) – Whether to modernize annotations, for example Optional[str] into str | None.
+- **`parameter_headings`** (`bool`) – Whether to render headings for parameters (therefore showing parameters in the ToC).
+- **`preload_modules`** (`list[str]`) – Pre-load modules that are not specified directly in autodoc instructions (::: identifier).
+- **`relative_crossrefs`** (`bool`) – Whether to enable the relative crossref syntax.
+- **`scoped_crossrefs`** (`bool`) – Whether to enable the scoped crossref ability.
+- **`separate_signature`** (`bool`) – Whether to put the whole signature in a code block below the heading.
+- **`show_bases`** (`bool`) – Show the base classes of a class.
+- **`show_category_heading`** (`bool`) – When grouped by categories, show a heading for each category.
+- **`show_docstring_attributes`** (`bool`) – Whether to display the 'Attributes' section in the object's docstring.
+- **`show_docstring_classes`** (`bool`) – Whether to display the 'Classes' section in the object's docstring.
+- **`show_docstring_description`** (`bool`) – Whether to display the textual block (including admonitions) in the object's docstring.
+- **`show_docstring_examples`** (`bool`) – Whether to display the 'Examples' section in the object's docstring.
+- **`show_docstring_functions`** (`bool`) – Whether to display the 'Functions' or 'Methods' sections in the object's docstring.
+- **`show_docstring_modules`** (`bool`) – Whether to display the 'Modules' section in the object's docstring.
+- **`show_docstring_other_parameters`** (`bool`) – Whether to display the 'Other Parameters' section in the object's docstring.
+- **`show_docstring_parameters`** (`bool`) – Whether to display the 'Parameters' section in the object's docstring.
+- **`show_docstring_raises`** (`bool`) – Whether to display the 'Raises' section in the object's docstring.
+- **`show_docstring_receives`** (`bool`) – Whether to display the 'Receives' section in the object's docstring.
+- **`show_docstring_returns`** (`bool`) – Whether to display the 'Returns' section in the object's docstring.
+- **`show_docstring_warns`** (`bool`) – Whether to display the 'Warns' section in the object's docstring.
+- **`show_docstring_yields`** (`bool`) – Whether to display the 'Yields' section in the object's docstring.
+- **`show_if_no_docstring`** (`bool`) – Show the object heading even if it has no docstring or children with docstrings.
+- **`show_inheritance_diagram`** (`bool`) – Show the inheritance diagram of a class using Mermaid.
+- **`show_labels`** (`bool`) – Whether to show labels of the members.
+- **`show_object_full_path`** (`bool`) – Show the full Python path of every object.
+- **`show_overloads`** (`bool`) – Show the overloads of a function or method.
+- **`show_root_full_path`** (`bool`) – Show the full Python path for the root object heading.
+- **`show_root_heading`** (`bool`) – Show the heading of the object at the root of the documentation tree.
+- **`show_root_members_full_path`** (`bool`) – Show the full Python path of the root members.
+- **`show_root_toc_entry`** (`bool`) – If the root heading is not shown, at least add a ToC entry for it.
+- **`show_signature`** (`bool`) – Show methods and functions signatures.
+- **`show_signature_annotations`** (`bool`) – Show the type annotations in methods and functions signatures.
+- **`show_source`** (`bool`) – Show the source code of this object.
+- **`show_submodules`** (`bool`) – When rendering a module, show its submodules recursively.
+- **`show_symbol_type_heading`** (`bool`) – Show the symbol type in headings (e.g. mod, class, meth, func and attr).
+- **`show_symbol_type_toc`** (`bool`) – Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
+- **`signature_crossrefs`** (`bool`) – Whether to render cross-references for type annotations in signatures.
+- **`summary`** (`bool | SummaryOption`) – Whether to render summaries of modules, classes, functions (methods) and attributes.
+- **`toc_label`** (`str`) – A custom string to override the autogenerated toc label of the root object.
+- **`unwrap_annotated`** (`bool`) – Whether to unwrap Annotated types to show only the type without the annotations.
+
+### allow_inspection
+
+```python
+allow_inspection: bool = True
+
+```
+
+Whether to allow inspecting modules when visiting them is not possible.
+
+### annotations_path
+
+```python
+annotations_path: Literal['brief', 'source', 'full'] = 'brief'
+
+```
+
+The verbosity for annotations path: `brief` (recommended), `source` (as written in the source), or `full`.
+
+### backlinks
+
+```python
+backlinks: Literal['flat', 'tree', False] = False
+
+```
+
+Whether to render backlinks, and how.
+
+### docstring_options
+
+```python
+docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+) = None
+
+```
+
+The options for the docstring parser.
+
+See [docstring parsers](https://mkdocstrings.github.io/griffe/reference/docstrings/) and their options in Griffe docs.
+
+### docstring_section_style
+
+```python
+docstring_section_style: Literal['table', 'list', 'spacy'] = 'table'
+
+```
+
+The style used to render docstring sections.
+
+### docstring_style
+
+```python
+docstring_style: Literal['auto', 'google', 'numpy', 'sphinx'] | None = 'google'
+
+```
+
+The docstring style to use: `auto`, `google`, `numpy`, `sphinx`, or `None`.
+
+### extensions
+
+```python
+extensions: list[str | dict[str, Any]] = field(default_factory=list)
+
+```
+
+A list of Griffe extensions to load.
+
+### extra
+
+```python
+extra: dict[str, Any] = field(default_factory=dict)
+
+```
+
+Extra options.
+
+### filters
+
+```python
+filters: list[str] | Literal['public'] = field(default_factory=lambda: copy())
+
+```
+
+A list of filters, or `"public"`.
+
+**List of filters**
+
+A filter starting with `!` will exclude matching objects instead of including them. The `members` option takes precedence over `filters` (filters will still be applied recursively to lower members in the hierarchy).
+
+**Filtering methods**
+
+[Sponsors only](../../insiders/) — [Insiders 1.11.0](../../insiders/changelog/#1.11.0)
+
+The `public` method will include only public objects: those added to `__all__` or not starting with an underscore (except for special methods/attributes).
+
+### find_stubs_package
+
+```python
+find_stubs_package: bool = False
+
+```
+
+Whether to load stubs package (package-stubs) when extracting docstrings.
+
+### force_inspection
+
+```python
+force_inspection: bool = False
+
+```
+
+Whether to force using dynamic analysis when loading data.
+
+### group_by_category
+
+```python
+group_by_category: bool = True
+
+```
+
+Group the object's children by categories: attributes, classes, functions, and modules.
+
+### heading
+
+```python
+heading: str = ''
+
+```
+
+A custom string to override the autogenerated heading of the root object.
+
+### heading_level
+
+```python
+heading_level: int = 2
+
+```
+
+The initial heading level to use.
+
+### inherited_members
+
+```python
+inherited_members: bool | list[str] = False
+
+```
+
+A boolean, or an explicit list of inherited members to render.
+
+If true, select all inherited members, which can then be filtered with `members`. If false or empty list, do not select any inherited member.
+
+### line_length
+
+```python
+line_length: int = 60
+
+```
+
+Maximum line length when formatting code/signatures.
+
+### members
+
+```python
+members: list[str] | bool | None = None
+
+```
+
+A boolean, or an explicit list of members to render.
+
+If true, select all members without further filtering. If false or empty list, do not render members. If none, select all members and apply further filtering with filters and docstrings.
+
+### members_order
+
+```python
+members_order: Order | list[Order] = 'alphabetical'
+
+```
+
+The members ordering to use.
+
+- `__all__`: order members according to `__all__` module attributes, if declared;
+- `alphabetical`: order members alphabetically;
+- `source`: order members as they appear in the source file.
+
+Since `__all__` is a module-only attribute, it can't be used to sort class members, therefore the `members_order` option accepts a list of ordering methods, indicating ordering preferences.
+
+### merge_init_into_class
+
+```python
+merge_init_into_class: bool = False
+
+```
+
+Whether to merge the `__init__` method into the class' signature and docstring.
+
+### modernize_annotations
+
+```python
+modernize_annotations: bool = False
+
+```
+
+Whether to modernize annotations, for example `Optional[str]` into `str | None`.
+
+### parameter_headings
+
+```python
+parameter_headings: bool = False
+
+```
+
+Whether to render headings for parameters (therefore showing parameters in the ToC).
+
+### preload_modules
+
+```python
+preload_modules: list[str] = field(default_factory=list)
+
+```
+
+Pre-load modules that are not specified directly in autodoc instructions (`::: identifier`).
+
+It is useful when you want to render documentation for a particular member of an object, and this member is imported from another package than its parent.
+
+For an imported member to be rendered, you need to add it to the `__all__` attribute of the importing module.
+
+The modules must be listed as an array of strings.
+
+### relative_crossrefs
+
+```python
+relative_crossrefs: bool = False
+
+```
+
+Whether to enable the relative crossref syntax.
+
+### scoped_crossrefs
+
+```python
+scoped_crossrefs: bool = False
+
+```
+
+Whether to enable the scoped crossref ability.
+
+### separate_signature
+
+```python
+separate_signature: bool = False
+
+```
+
+Whether to put the whole signature in a code block below the heading.
+
+If Black or Ruff are installed, the signature is also formatted using them.
+
+### show_bases
+
+```python
+show_bases: bool = True
+
+```
+
+Show the base classes of a class.
+
+### show_category_heading
+
+```python
+show_category_heading: bool = False
+
+```
+
+When grouped by categories, show a heading for each category.
+
+### show_docstring_attributes
+
+```python
+show_docstring_attributes: bool = True
+
+```
+
+Whether to display the 'Attributes' section in the object's docstring.
+
+### show_docstring_classes
+
+```python
+show_docstring_classes: bool = True
+
+```
+
+Whether to display the 'Classes' section in the object's docstring.
+
+### show_docstring_description
+
+```python
+show_docstring_description: bool = True
+
+```
+
+Whether to display the textual block (including admonitions) in the object's docstring.
+
+### show_docstring_examples
+
+```python
+show_docstring_examples: bool = True
+
+```
+
+Whether to display the 'Examples' section in the object's docstring.
+
+### show_docstring_functions
+
+```python
+show_docstring_functions: bool = True
+
+```
+
+Whether to display the 'Functions' or 'Methods' sections in the object's docstring.
+
+### show_docstring_modules
+
+```python
+show_docstring_modules: bool = True
+
+```
+
+Whether to display the 'Modules' section in the object's docstring.
+
+### show_docstring_other_parameters
+
+```python
+show_docstring_other_parameters: bool = True
+
+```
+
+Whether to display the 'Other Parameters' section in the object's docstring.
+
+### show_docstring_parameters
+
+```python
+show_docstring_parameters: bool = True
+
+```
+
+Whether to display the 'Parameters' section in the object's docstring.
+
+### show_docstring_raises
+
+```python
+show_docstring_raises: bool = True
+
+```
+
+Whether to display the 'Raises' section in the object's docstring.
+
+### show_docstring_receives
+
+```python
+show_docstring_receives: bool = True
+
+```
+
+Whether to display the 'Receives' section in the object's docstring.
+
+### show_docstring_returns
+
+```python
+show_docstring_returns: bool = True
+
+```
+
+Whether to display the 'Returns' section in the object's docstring.
+
+### show_docstring_warns
+
+```python
+show_docstring_warns: bool = True
+
+```
+
+Whether to display the 'Warns' section in the object's docstring.
+
+### show_docstring_yields
+
+```python
+show_docstring_yields: bool = True
+
+```
+
+Whether to display the 'Yields' section in the object's docstring.
+
+### show_if_no_docstring
+
+```python
+show_if_no_docstring: bool = False
+
+```
+
+Show the object heading even if it has no docstring or children with docstrings.
+
+### show_inheritance_diagram
+
+```python
+show_inheritance_diagram: bool = False
+
+```
+
+Show the inheritance diagram of a class using Mermaid.
+
+### show_labels
+
+```python
+show_labels: bool = True
+
+```
+
+Whether to show labels of the members.
+
+### show_object_full_path
+
+```python
+show_object_full_path: bool = False
+
+```
+
+Show the full Python path of every object.
+
+### show_overloads
+
+```python
+show_overloads: bool = True
+
+```
+
+Show the overloads of a function or method.
+
+### show_root_full_path
+
+```python
+show_root_full_path: bool = True
+
+```
+
+Show the full Python path for the root object heading.
+
+### show_root_heading
+
+```python
+show_root_heading: bool = False
+
+```
+
+Show the heading of the object at the root of the documentation tree.
+
+The root object is the object referenced by the identifier after `:::`.
+
+### show_root_members_full_path
+
+```python
+show_root_members_full_path: bool = False
+
+```
+
+Show the full Python path of the root members.
+
+### show_root_toc_entry
+
+```python
+show_root_toc_entry: bool = True
+
+```
+
+If the root heading is not shown, at least add a ToC entry for it.
+
+### show_signature
+
+```python
+show_signature: bool = True
+
+```
+
+Show methods and functions signatures.
+
+### show_signature_annotations
+
+```python
+show_signature_annotations: bool = False
+
+```
+
+Show the type annotations in methods and functions signatures.
+
+### show_source
+
+```python
+show_source: bool = True
+
+```
+
+Show the source code of this object.
+
+### show_submodules
+
+```python
+show_submodules: bool = False
+
+```
+
+When rendering a module, show its submodules recursively.
+
+### show_symbol_type_heading
+
+```python
+show_symbol_type_heading: bool = False
+
+```
+
+Show the symbol type in headings (e.g. mod, class, meth, func and attr).
+
+### show_symbol_type_toc
+
+```python
+show_symbol_type_toc: bool = False
+
+```
+
+Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
+
+### signature_crossrefs
+
+```python
+signature_crossrefs: bool = False
+
+```
+
+Whether to render cross-references for type annotations in signatures.
+
+### summary
+
+```python
+summary: bool | SummaryOption = field(default_factory=SummaryOption)
+
+```
+
+Whether to render summaries of modules, classes, functions (methods) and attributes.
+
+### toc_label
+
+```python
+toc_label: str = ''
+
+```
+
+A custom string to override the autogenerated toc label of the root object.
+
+### unwrap_annotated
+
+```python
+unwrap_annotated: bool = False
+
+```
+
+Whether to unwrap `Annotated` types to show only the type without the annotations.
+
+### coerce
+
+```python
+coerce(**data: Any) -> MutableMapping[str, Any]
+
+```
+
+Coerce data.
+
+### from_data
+
+```python
+from_data(**data: Any) -> Self
+
+```
+
+Create an instance from a dictionary.
+
+## PythonOptions
+
+```python
+PythonOptions(
+ allow_inspection: bool = True,
+ force_inspection: bool = False,
+ annotations_path: Literal["brief", "source", "full"] = "brief",
+ backlinks: Literal["flat", "tree", False] = False,
+ docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+ ) = None,
+ docstring_section_style: Literal["table", "list", "spacy"] = "table",
+ docstring_style: Literal["auto", "google", "numpy", "sphinx"] | None = "google",
+ extensions: list[str | dict[str, Any]] = list(),
+ filters: list[tuple[Pattern, bool]] | Literal["public"] = lambda: [
+ (compile(removeprefix("!")), startswith("!")) for filtr in _DEFAULT_FILTERS
+ ](),
+ find_stubs_package: bool = False,
+ group_by_category: bool = True,
+ heading: str = "",
+ heading_level: int = 2,
+ inherited_members: bool | list[str] = False,
+ line_length: int = 60,
+ members: list[str] | bool | None = None,
+ members_order: Order | list[Order] = "alphabetical",
+ merge_init_into_class: bool = False,
+ modernize_annotations: bool = False,
+ parameter_headings: bool = False,
+ preload_modules: list[str] = list(),
+ relative_crossrefs: bool = False,
+ scoped_crossrefs: bool = False,
+ show_overloads: bool = True,
+ separate_signature: bool = False,
+ show_bases: bool = True,
+ show_category_heading: bool = False,
+ show_docstring_attributes: bool = True,
+ show_docstring_classes: bool = True,
+ show_docstring_description: bool = True,
+ show_docstring_examples: bool = True,
+ show_docstring_functions: bool = True,
+ show_docstring_modules: bool = True,
+ show_docstring_other_parameters: bool = True,
+ show_docstring_parameters: bool = True,
+ show_docstring_raises: bool = True,
+ show_docstring_receives: bool = True,
+ show_docstring_returns: bool = True,
+ show_docstring_warns: bool = True,
+ show_docstring_yields: bool = True,
+ show_if_no_docstring: bool = False,
+ show_inheritance_diagram: bool = False,
+ show_labels: bool = True,
+ show_object_full_path: bool = False,
+ show_root_full_path: bool = True,
+ show_root_heading: bool = False,
+ show_root_members_full_path: bool = False,
+ show_root_toc_entry: bool = True,
+ show_signature_annotations: bool = False,
+ show_signature: bool = True,
+ show_source: bool = True,
+ show_submodules: bool = False,
+ show_symbol_type_heading: bool = False,
+ show_symbol_type_toc: bool = False,
+ signature_crossrefs: bool = False,
+ summary: SummaryOption = SummaryOption(),
+ toc_label: str = "",
+ unwrap_annotated: bool = False,
+ extra: dict[str, Any] = dict(),
+)
+
+```
+
+```
+
+ flowchart TD
+ mkdocstrings_handlers.python.PythonOptions[PythonOptions]
+ mkdocstrings_handlers.python._internal.config.PythonInputOptions[PythonInputOptions]
+
+ mkdocstrings_handlers.python._internal.config.PythonInputOptions --> mkdocstrings_handlers.python.PythonOptions
+
+
+
+ click mkdocstrings_handlers.python.PythonOptions href "" "mkdocstrings_handlers.python.PythonOptions"
+ click mkdocstrings_handlers.python._internal.config.PythonInputOptions href "" "mkdocstrings_handlers.python._internal.config.PythonInputOptions"
+
+```
+
+Final options passed as template context.
+
+Methods:
+
+- **`coerce`** – Create an instance from a dictionary.
+- **`from_data`** – Create an instance from a dictionary.
+
+Attributes:
+
+- **`allow_inspection`** (`bool`) – Whether to allow inspecting modules when visiting them is not possible.
+- **`annotations_path`** (`Literal['brief', 'source', 'full']`) – The verbosity for annotations path: brief (recommended), source (as written in the source), or full.
+- **`backlinks`** (`Literal['flat', 'tree', False]`) – Whether to render backlinks, and how.
+- **`docstring_options`** (`GoogleStyleOptions | NumpyStyleOptions | SphinxStyleOptions | AutoStyleOptions | None`) – The options for the docstring parser.
+- **`docstring_section_style`** (`Literal['table', 'list', 'spacy']`) – The style used to render docstring sections.
+- **`docstring_style`** (`Literal['auto', 'google', 'numpy', 'sphinx'] | None`) – The docstring style to use: auto, google, numpy, sphinx, or None.
+- **`extensions`** (`list[str | dict[str, Any]]`) – A list of Griffe extensions to load.
+- **`extra`** (`dict[str, Any]`) – Extra options.
+- **`filters`** (`list[tuple[Pattern, bool]] | Literal['public']`) – A list of filters, or "public".
+- **`find_stubs_package`** (`bool`) – Whether to load stubs package (package-stubs) when extracting docstrings.
+- **`force_inspection`** (`bool`) – Whether to force using dynamic analysis when loading data.
+- **`group_by_category`** (`bool`) – Group the object's children by categories: attributes, classes, functions, and modules.
+- **`heading`** (`str`) – A custom string to override the autogenerated heading of the root object.
+- **`heading_level`** (`int`) – The initial heading level to use.
+- **`inherited_members`** (`bool | list[str]`) – A boolean, or an explicit list of inherited members to render.
+- **`line_length`** (`int`) – Maximum line length when formatting code/signatures.
+- **`members`** (`list[str] | bool | None`) – A boolean, or an explicit list of members to render.
+- **`members_order`** (`Order | list[Order]`) – The members ordering to use.
+- **`merge_init_into_class`** (`bool`) – Whether to merge the __init__ method into the class' signature and docstring.
+- **`modernize_annotations`** (`bool`) – Whether to modernize annotations, for example Optional[str] into str | None.
+- **`parameter_headings`** (`bool`) – Whether to render headings for parameters (therefore showing parameters in the ToC).
+- **`preload_modules`** (`list[str]`) – Pre-load modules that are not specified directly in autodoc instructions (::: identifier).
+- **`relative_crossrefs`** (`bool`) – Whether to enable the relative crossref syntax.
+- **`scoped_crossrefs`** (`bool`) – Whether to enable the scoped crossref ability.
+- **`separate_signature`** (`bool`) – Whether to put the whole signature in a code block below the heading.
+- **`show_bases`** (`bool`) – Show the base classes of a class.
+- **`show_category_heading`** (`bool`) – When grouped by categories, show a heading for each category.
+- **`show_docstring_attributes`** (`bool`) – Whether to display the 'Attributes' section in the object's docstring.
+- **`show_docstring_classes`** (`bool`) – Whether to display the 'Classes' section in the object's docstring.
+- **`show_docstring_description`** (`bool`) – Whether to display the textual block (including admonitions) in the object's docstring.
+- **`show_docstring_examples`** (`bool`) – Whether to display the 'Examples' section in the object's docstring.
+- **`show_docstring_functions`** (`bool`) – Whether to display the 'Functions' or 'Methods' sections in the object's docstring.
+- **`show_docstring_modules`** (`bool`) – Whether to display the 'Modules' section in the object's docstring.
+- **`show_docstring_other_parameters`** (`bool`) – Whether to display the 'Other Parameters' section in the object's docstring.
+- **`show_docstring_parameters`** (`bool`) – Whether to display the 'Parameters' section in the object's docstring.
+- **`show_docstring_raises`** (`bool`) – Whether to display the 'Raises' section in the object's docstring.
+- **`show_docstring_receives`** (`bool`) – Whether to display the 'Receives' section in the object's docstring.
+- **`show_docstring_returns`** (`bool`) – Whether to display the 'Returns' section in the object's docstring.
+- **`show_docstring_warns`** (`bool`) – Whether to display the 'Warns' section in the object's docstring.
+- **`show_docstring_yields`** (`bool`) – Whether to display the 'Yields' section in the object's docstring.
+- **`show_if_no_docstring`** (`bool`) – Show the object heading even if it has no docstring or children with docstrings.
+- **`show_inheritance_diagram`** (`bool`) – Show the inheritance diagram of a class using Mermaid.
+- **`show_labels`** (`bool`) – Whether to show labels of the members.
+- **`show_object_full_path`** (`bool`) – Show the full Python path of every object.
+- **`show_overloads`** (`bool`) – Show the overloads of a function or method.
+- **`show_root_full_path`** (`bool`) – Show the full Python path for the root object heading.
+- **`show_root_heading`** (`bool`) – Show the heading of the object at the root of the documentation tree.
+- **`show_root_members_full_path`** (`bool`) – Show the full Python path of the root members.
+- **`show_root_toc_entry`** (`bool`) – If the root heading is not shown, at least add a ToC entry for it.
+- **`show_signature`** (`bool`) – Show methods and functions signatures.
+- **`show_signature_annotations`** (`bool`) – Show the type annotations in methods and functions signatures.
+- **`show_source`** (`bool`) – Show the source code of this object.
+- **`show_submodules`** (`bool`) – When rendering a module, show its submodules recursively.
+- **`show_symbol_type_heading`** (`bool`) – Show the symbol type in headings (e.g. mod, class, meth, func and attr).
+- **`show_symbol_type_toc`** (`bool`) – Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
+- **`signature_crossrefs`** (`bool`) – Whether to render cross-references for type annotations in signatures.
+- **`summary`** (`SummaryOption`) – Whether to render summaries of modules, classes, functions (methods) and attributes.
+- **`toc_label`** (`str`) – A custom string to override the autogenerated toc label of the root object.
+- **`unwrap_annotated`** (`bool`) – Whether to unwrap Annotated types to show only the type without the annotations.
+
+### allow_inspection
+
+```python
+allow_inspection: bool = True
+
+```
+
+Whether to allow inspecting modules when visiting them is not possible.
+
+### annotations_path
+
+```python
+annotations_path: Literal['brief', 'source', 'full'] = 'brief'
+
+```
+
+The verbosity for annotations path: `brief` (recommended), `source` (as written in the source), or `full`.
+
+### backlinks
+
+```python
+backlinks: Literal['flat', 'tree', False] = False
+
+```
+
+Whether to render backlinks, and how.
+
+### docstring_options
+
+```python
+docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+) = None
+
+```
+
+The options for the docstring parser.
+
+See [docstring parsers](https://mkdocstrings.github.io/griffe/reference/docstrings/) and their options in Griffe docs.
+
+### docstring_section_style
+
+```python
+docstring_section_style: Literal['table', 'list', 'spacy'] = 'table'
+
+```
+
+The style used to render docstring sections.
+
+### docstring_style
+
+```python
+docstring_style: Literal['auto', 'google', 'numpy', 'sphinx'] | None = 'google'
+
+```
+
+The docstring style to use: `auto`, `google`, `numpy`, `sphinx`, or `None`.
+
+### extensions
+
+```python
+extensions: list[str | dict[str, Any]] = field(default_factory=list)
+
+```
+
+A list of Griffe extensions to load.
+
+### extra
+
+```python
+extra: dict[str, Any] = field(default_factory=dict)
+
+```
+
+Extra options.
+
+### filters
+
+```python
+filters: list[tuple[Pattern, bool]] | Literal["public"] = field(
+ default_factory=lambda: [
+ (compile(removeprefix("!")), startswith("!")) for filtr in _DEFAULT_FILTERS
+ ]
+)
+
+```
+
+A list of filters, or `"public"`.
+
+### find_stubs_package
+
+```python
+find_stubs_package: bool = False
+
+```
+
+Whether to load stubs package (package-stubs) when extracting docstrings.
+
+### force_inspection
+
+```python
+force_inspection: bool = False
+
+```
+
+Whether to force using dynamic analysis when loading data.
+
+### group_by_category
+
+```python
+group_by_category: bool = True
+
+```
+
+Group the object's children by categories: attributes, classes, functions, and modules.
+
+### heading
+
+```python
+heading: str = ''
+
+```
+
+A custom string to override the autogenerated heading of the root object.
+
+### heading_level
+
+```python
+heading_level: int = 2
+
+```
+
+The initial heading level to use.
+
+### inherited_members
+
+```python
+inherited_members: bool | list[str] = False
+
+```
+
+A boolean, or an explicit list of inherited members to render.
+
+If true, select all inherited members, which can then be filtered with `members`. If false or empty list, do not select any inherited member.
+
+### line_length
+
+```python
+line_length: int = 60
+
+```
+
+Maximum line length when formatting code/signatures.
+
+### members
+
+```python
+members: list[str] | bool | None = None
+
+```
+
+A boolean, or an explicit list of members to render.
+
+If true, select all members without further filtering. If false or empty list, do not render members. If none, select all members and apply further filtering with filters and docstrings.
+
+### members_order
+
+```python
+members_order: Order | list[Order] = 'alphabetical'
+
+```
+
+The members ordering to use.
+
+- `__all__`: order members according to `__all__` module attributes, if declared;
+- `alphabetical`: order members alphabetically;
+- `source`: order members as they appear in the source file.
+
+Since `__all__` is a module-only attribute, it can't be used to sort class members, therefore the `members_order` option accepts a list of ordering methods, indicating ordering preferences.
+
+### merge_init_into_class
+
+```python
+merge_init_into_class: bool = False
+
+```
+
+Whether to merge the `__init__` method into the class' signature and docstring.
+
+### modernize_annotations
+
+```python
+modernize_annotations: bool = False
+
+```
+
+Whether to modernize annotations, for example `Optional[str]` into `str | None`.
+
+### parameter_headings
+
+```python
+parameter_headings: bool = False
+
+```
+
+Whether to render headings for parameters (therefore showing parameters in the ToC).
+
+### preload_modules
+
+```python
+preload_modules: list[str] = field(default_factory=list)
+
+```
+
+Pre-load modules that are not specified directly in autodoc instructions (`::: identifier`).
+
+It is useful when you want to render documentation for a particular member of an object, and this member is imported from another package than its parent.
+
+For an imported member to be rendered, you need to add it to the `__all__` attribute of the importing module.
+
+The modules must be listed as an array of strings.
+
+### relative_crossrefs
+
+```python
+relative_crossrefs: bool = False
+
+```
+
+Whether to enable the relative crossref syntax.
+
+### scoped_crossrefs
+
+```python
+scoped_crossrefs: bool = False
+
+```
+
+Whether to enable the scoped crossref ability.
+
+### separate_signature
+
+```python
+separate_signature: bool = False
+
+```
+
+Whether to put the whole signature in a code block below the heading.
+
+If Black or Ruff are installed, the signature is also formatted using them.
+
+### show_bases
+
+```python
+show_bases: bool = True
+
+```
+
+Show the base classes of a class.
+
+### show_category_heading
+
+```python
+show_category_heading: bool = False
+
+```
+
+When grouped by categories, show a heading for each category.
+
+### show_docstring_attributes
+
+```python
+show_docstring_attributes: bool = True
+
+```
+
+Whether to display the 'Attributes' section in the object's docstring.
+
+### show_docstring_classes
+
+```python
+show_docstring_classes: bool = True
+
+```
+
+Whether to display the 'Classes' section in the object's docstring.
+
+### show_docstring_description
+
+```python
+show_docstring_description: bool = True
+
+```
+
+Whether to display the textual block (including admonitions) in the object's docstring.
+
+### show_docstring_examples
+
+```python
+show_docstring_examples: bool = True
+
+```
+
+Whether to display the 'Examples' section in the object's docstring.
+
+### show_docstring_functions
+
+```python
+show_docstring_functions: bool = True
+
+```
+
+Whether to display the 'Functions' or 'Methods' sections in the object's docstring.
+
+### show_docstring_modules
+
+```python
+show_docstring_modules: bool = True
+
+```
+
+Whether to display the 'Modules' section in the object's docstring.
+
+### show_docstring_other_parameters
+
+```python
+show_docstring_other_parameters: bool = True
+
+```
+
+Whether to display the 'Other Parameters' section in the object's docstring.
+
+### show_docstring_parameters
+
+```python
+show_docstring_parameters: bool = True
+
+```
+
+Whether to display the 'Parameters' section in the object's docstring.
+
+### show_docstring_raises
+
+```python
+show_docstring_raises: bool = True
+
+```
+
+Whether to display the 'Raises' section in the object's docstring.
+
+### show_docstring_receives
+
+```python
+show_docstring_receives: bool = True
+
+```
+
+Whether to display the 'Receives' section in the object's docstring.
+
+### show_docstring_returns
+
+```python
+show_docstring_returns: bool = True
+
+```
+
+Whether to display the 'Returns' section in the object's docstring.
+
+### show_docstring_warns
+
+```python
+show_docstring_warns: bool = True
+
+```
+
+Whether to display the 'Warns' section in the object's docstring.
+
+### show_docstring_yields
+
+```python
+show_docstring_yields: bool = True
+
+```
+
+Whether to display the 'Yields' section in the object's docstring.
+
+### show_if_no_docstring
+
+```python
+show_if_no_docstring: bool = False
+
+```
+
+Show the object heading even if it has no docstring or children with docstrings.
+
+### show_inheritance_diagram
+
+```python
+show_inheritance_diagram: bool = False
+
+```
+
+Show the inheritance diagram of a class using Mermaid.
+
+### show_labels
+
+```python
+show_labels: bool = True
+
+```
+
+Whether to show labels of the members.
+
+### show_object_full_path
+
+```python
+show_object_full_path: bool = False
+
+```
+
+Show the full Python path of every object.
+
+### show_overloads
+
+```python
+show_overloads: bool = True
+
+```
+
+Show the overloads of a function or method.
+
+### show_root_full_path
+
+```python
+show_root_full_path: bool = True
+
+```
+
+Show the full Python path for the root object heading.
+
+### show_root_heading
+
+```python
+show_root_heading: bool = False
+
+```
+
+Show the heading of the object at the root of the documentation tree.
+
+The root object is the object referenced by the identifier after `:::`.
+
+### show_root_members_full_path
+
+```python
+show_root_members_full_path: bool = False
+
+```
+
+Show the full Python path of the root members.
+
+### show_root_toc_entry
+
+```python
+show_root_toc_entry: bool = True
+
+```
+
+If the root heading is not shown, at least add a ToC entry for it.
+
+### show_signature
+
+```python
+show_signature: bool = True
+
+```
+
+Show methods and functions signatures.
+
+### show_signature_annotations
+
+```python
+show_signature_annotations: bool = False
+
+```
+
+Show the type annotations in methods and functions signatures.
+
+### show_source
+
+```python
+show_source: bool = True
+
+```
+
+Show the source code of this object.
+
+### show_submodules
+
+```python
+show_submodules: bool = False
+
+```
+
+When rendering a module, show its submodules recursively.
+
+### show_symbol_type_heading
+
+```python
+show_symbol_type_heading: bool = False
+
+```
+
+Show the symbol type in headings (e.g. mod, class, meth, func and attr).
+
+### show_symbol_type_toc
+
+```python
+show_symbol_type_toc: bool = False
+
+```
+
+Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr).
+
+### signature_crossrefs
+
+```python
+signature_crossrefs: bool = False
+
+```
+
+Whether to render cross-references for type annotations in signatures.
+
+### summary
+
+```python
+summary: SummaryOption = field(default_factory=SummaryOption)
+
+```
+
+Whether to render summaries of modules, classes, functions (methods) and attributes.
+
+### toc_label
+
+```python
+toc_label: str = ''
+
+```
+
+A custom string to override the autogenerated toc label of the root object.
+
+### unwrap_annotated
+
+```python
+unwrap_annotated: bool = False
+
+```
+
+Whether to unwrap `Annotated` types to show only the type without the annotations.
+
+### coerce
+
+```python
+coerce(**data: Any) -> MutableMapping[str, Any]
+
+```
+
+Create an instance from a dictionary.
+
+### from_data
+
+```python
+from_data(**data: Any) -> Self
+
+```
+
+Create an instance from a dictionary.
+
+## SphinxStyleOptions
+
+```python
+SphinxStyleOptions()
+
+```
+
+Sphinx style docstring options.
+
+## SummaryOption
+
+```python
+SummaryOption(
+ attributes: bool = False,
+ functions: bool = False,
+ classes: bool = False,
+ modules: bool = False,
+)
+
+```
+
+Summary option.
+
+Attributes:
+
+- **`attributes`** (`bool`) – Whether to render summaries of attributes.
+- **`classes`** (`bool`) – Whether to render summaries of classes.
+- **`functions`** (`bool`) – Whether to render summaries of functions (methods).
+- **`modules`** (`bool`) – Whether to render summaries of modules.
+
+### attributes
+
+```python
+attributes: bool = False
+
+```
+
+Whether to render summaries of attributes.
+
+### classes
+
+```python
+classes: bool = False
+
+```
+
+Whether to render summaries of classes.
+
+### functions
+
+```python
+functions: bool = False
+
+```
+
+Whether to render summaries of functions (methods).
+
+### modules
+
+```python
+modules: bool = False
+
+```
+
+Whether to render summaries of modules.
+
+## do_as_attributes_section
+
+```python
+do_as_attributes_section(
+ context: Context, attributes: Sequence[Attribute], *, check_public: bool = True
+) -> DocstringSectionAttributes
+
+```
+
+Build an attributes section from a list of attributes.
+
+Parameters:
+
+- ### **`attributes`**
+
+ (`Sequence[Attribute]`) – The attributes to build the section from.
+
+- ### **`check_public`**
+
+ (`bool`, default: `True` ) – Whether to check if the attribute is public.
+
+Returns:
+
+- `DocstringSectionAttributes` – An attributes docstring section.
+
+## do_as_classes_section
+
+```python
+do_as_classes_section(
+ context: Context, classes: Sequence[Class], *, check_public: bool = True
+) -> DocstringSectionClasses
+
+```
+
+Build a classes section from a list of classes.
+
+Parameters:
+
+- ### **`classes`**
+
+ (`Sequence[Class]`) – The classes to build the section from.
+
+- ### **`check_public`**
+
+ (`bool`, default: `True` ) – Whether to check if the class is public.
+
+Returns:
+
+- `DocstringSectionClasses` – A classes docstring section.
+
+## do_as_functions_section
+
+```python
+do_as_functions_section(
+ context: Context, functions: Sequence[Function], *, check_public: bool = True
+) -> DocstringSectionFunctions
+
+```
+
+Build a functions section from a list of functions.
+
+Parameters:
+
+- ### **`functions`**
+
+ (`Sequence[Function]`) – The functions to build the section from.
+
+- ### **`check_public`**
+
+ (`bool`, default: `True` ) – Whether to check if the function is public.
+
+Returns:
+
+- `DocstringSectionFunctions` – A functions docstring section.
+
+## do_as_modules_section
+
+```python
+do_as_modules_section(
+ context: Context, modules: Sequence[Module], *, check_public: bool = True
+) -> DocstringSectionModules
+
+```
+
+Build a modules section from a list of modules.
+
+Parameters:
+
+- ### **`modules`**
+
+ (`Sequence[Module]`) – The modules to build the section from.
+
+- ### **`check_public`**
+
+ (`bool`, default: `True` ) – Whether to check if the module is public.
+
+Returns:
+
+- `DocstringSectionModules` – A modules docstring section.
+
+## do_backlink_tree
+
+```python
+do_backlink_tree(backlinks: list[Backlink]) -> Tree[BacklinkCrumb]
+
+```
+
+Build a tree of backlinks.
+
+Parameters:
+
+- ### **`backlinks`**
+
+ (`list[Backlink]`) – The list of backlinks.
+
+Returns:
+
+- `Tree[BacklinkCrumb]` – A tree of backlinks.
+
+## do_crossref
+
+```python
+do_crossref(path: str, *, brief: bool = True) -> Markup
+
+```
+
+Deprecated. Filter to create cross-references.
+
+Parameters:
+
+- ### **`path`**
+
+ (`str`) – The path to link to.
+
+- ### **`brief`**
+
+ (`bool`, default: `True` ) – Show only the last part of the path, add full path as hover.
+
+Returns:
+
+- `Markup` – Markup text.
+
+## do_filter_objects
+
+```python
+do_filter_objects(
+ objects_dictionary: dict[str, Object | Alias],
+ *,
+ filters: Sequence[tuple[Pattern, bool]] | Literal["public"] | None = None,
+ members_list: bool | list[str] | None = None,
+ inherited_members: bool | list[str] = False,
+ keep_no_docstrings: bool = True
+) -> list[Object | Alias]
+
+```
+
+Filter a dictionary of objects based on their docstrings.
+
+Parameters:
+
+- ### **`objects_dictionary`**
+
+ (`dict[str, Object | Alias]`) – The dictionary of objects.
+
+- ### **`filters`**
+
+ (`Sequence[tuple[Pattern, bool]] | Literal['public'] | None`, default: `None` ) – Filters to apply, based on members' names, or "public". Each element is a tuple: a pattern, and a boolean indicating whether to reject the object if the pattern matches.
+
+- ### **`members_list`**
+
+ (`bool | list[str] | None`, default: `None` ) – An optional, explicit list of members to keep. When given and empty, return an empty list. When given and not empty, ignore filters and docstrings presence/absence.
+
+- ### **`inherited_members`**
+
+ (`bool | list[str]`, default: `False` ) – Whether to keep inherited members or exclude them.
+
+- ### **`keep_no_docstrings`**
+
+ (`bool`, default: `True` ) – Whether to keep objects with no/empty docstrings (recursive check).
+
+Returns:
+
+- `list[Object | Alias]` – A list of objects.
+
+## do_format_attribute
+
+```python
+do_format_attribute(
+ context: Context,
+ attribute_path: Markup,
+ attribute: Attribute,
+ line_length: int,
+ *,
+ crossrefs: bool = False
+) -> str
+
+```
+
+Format an attribute.
+
+Parameters:
+
+- ### **`context`**
+
+ (`Context`) – Jinja context, passed automatically.
+
+- ### **`attribute_path`**
+
+ (`Markup`) – The path of the callable we render the signature of.
+
+- ### **`attribute`**
+
+ (`Attribute`) – The attribute we render the signature of.
+
+- ### **`line_length`**
+
+ (`int`) – The line length.
+
+- ### **`crossrefs`**
+
+ (`bool`, default: `False` ) – Whether to cross-reference types in the signature.
+
+Returns:
+
+- `str` – The same code, formatted.
+
+## do_format_code
+
+```python
+do_format_code(code: str, line_length: int) -> str
+
+```
+
+Format code.
+
+Parameters:
+
+- ### **`code`**
+
+ (`str`) – The code to format.
+
+- ### **`line_length`**
+
+ (`int`) – The line length.
+
+Returns:
+
+- `str` – The same code, formatted.
+
+## do_format_signature
+
+```python
+do_format_signature(
+ context: Context,
+ callable_path: Markup,
+ function: Function,
+ line_length: int,
+ *,
+ annotations: bool | None = None,
+ crossrefs: bool = False
+) -> str
+
+```
+
+Format a signature.
+
+Parameters:
+
+- ### **`context`**
+
+ (`Context`) – Jinja context, passed automatically.
+
+- ### **`callable_path`**
+
+ (`Markup`) – The path of the callable we render the signature of.
+
+- ### **`function`**
+
+ (`Function`) – The function we render the signature of.
+
+- ### **`line_length`**
+
+ (`int`) – The line length.
+
+- ### **`annotations`**
+
+ (`bool | None`, default: `None` ) – Whether to show type annotations.
+
+- ### **`crossrefs`**
+
+ (`bool`, default: `False` ) – Whether to cross-reference types in the signature.
+
+Returns:
+
+- `str` – The same code, formatted.
+
+## do_get_template
+
+```python
+do_get_template(env: Environment, obj: str | Object) -> str
+
+```
+
+Get the template name used to render an object.
+
+Parameters:
+
+- ### **`env`**
+
+ (`Environment`) – The Jinja environment, passed automatically.
+
+- ### **`obj`**
+
+ (`str | Object`) – A Griffe object, or a template name.
+
+Returns:
+
+- `str` – A template name.
+
+## do_multi_crossref
+
+```python
+do_multi_crossref(text: str, *, code: bool = True) -> Markup
+
+```
+
+Deprecated. Filter to create cross-references.
+
+Parameters:
+
+- ### **`text`**
+
+ (`str`) – The text to scan.
+
+- ### **`code`**
+
+ (`bool`, default: `True` ) – Whether to wrap the result in a code tag.
+
+Returns:
+
+- `Markup` – Markup text.
+
+## do_order_members
+
+```python
+do_order_members(
+ members: Sequence[Object | Alias],
+ order: Order | list[Order],
+ members_list: bool | list[str] | None,
+) -> Sequence[Object | Alias]
+
+```
+
+Order members given an ordering method.
+
+Parameters:
+
+- ### **`members`**
+
+ (`Sequence[Object | Alias]`) – The members to order.
+
+- ### **`order`**
+
+ (`Order | list[Order]`) – The ordering method.
+
+- ### **`members_list`**
+
+ (`bool | list[str] | None`) – An optional member list (manual ordering).
+
+Returns:
+
+- `Sequence[Object | Alias]` – The same members, ordered.
+
+## do_split_path
+
+```python
+do_split_path(path: str, full_path: str) -> Iterator[tuple[str, str, str, str]]
+
+```
+
+Split object paths for building cross-references.
+
+Parameters:
+
+- ### **`path`**
+
+ (`str`) – The path to split.
+
+- ### **`full_path`**
+
+ (`str`) – The full path, used to compute correct paths for each part of the path.
+
+Yields:
+
+- `tuple[str, str, str, str]` – 4-tuples: prefix, word, full path, suffix.
+
+## get_handler
+
+```python
+get_handler(
+ handler_config: MutableMapping[str, Any], tool_config: MkDocsConfig, **kwargs: Any
+) -> PythonHandler
+
+```
+
+Return an instance of `PythonHandler`.
+
+Parameters:
+
+- ### **`handler_config`**
+
+ (`MutableMapping[str, Any]`) – The handler configuration.
+
+- ### **`tool_config`**
+
+ (`MkDocsConfig`) – The tool (SSG) configuration.
+
+Returns:
+
+- `PythonHandler` – An instance of PythonHandler.
+
+## config
+
+Deprecated. Import from `mkdocstrings_handlers.python` directly.
+
+## handler
+
+Deprecated. Import from `mkdocstrings_handlers.python` directly.
+
+## rendering
+
+Deprecated. Import from `mkdocstrings_handlers.python` directly.
diff --git a/reference/mkdocstrings_handlers/python/config/index.html b/reference/mkdocstrings_handlers/python/config/index.html
new file mode 100644
index 00000000..c7d4d56c
--- /dev/null
+++ b/reference/mkdocstrings_handlers/python/config/index.html
@@ -0,0 +1,14 @@
+
+
+
+ A Python handler for mkdocstrings. The Python handler uses Griffe to collect documentation from Python source code. The word \"griffe\" can sometimes be used instead of \"signature\" in French. Griffe is able to visit the Abstract Syntax Tree (AST) of the source code to extract useful information. It is also able to execute the code (by importing it) and introspect objects in memory when source code is not available. Finally, it can parse docstrings following different styles. You can install this handler as a mkdocstrings extra: You can also explicitly depend on the handler: Data collection from source code: collection of the object-tree and the docstrings is done thanks to Griffe. Support for type annotations: Griffe collects your type annotations and mkdocstrings uses them to display parameter types or return types. It is even able to automatically add cross-references to other objects from your API, from the standard library or third-party libraries! See how to load inventories to enable it. Recursive documentation of Python objects: just use the module dotted-path as an identifier, and you get the full module docs. You don't need to inject documentation for each class, function, etc. Support for documented attributes: attributes (variables) followed by a docstring (triple-quoted string) will be recognized by Griffe in modules, classes and even in Multiple docstring-styles support: common support for Google-style, Numpydoc-style, and Sphinx-style docstrings. See Griffe's documentation on docstrings support. Admonition support in Google docstrings: blocks like Every object has a TOC entry: we render a heading for each object, meaning MkDocs picks them into the Table of Contents, which is nicely displayed by the Material theme. Thanks to mkdocstrings cross-reference ability, you can reference other objects within your docstrings, with the classic Markdown syntax: Source code display: mkdocstrings can add a collapsible div containing the highlighted source code of the Python object. All notable changes to this project will be documented in this file. The format is based on Keep a Changelog and this project adheres to Semantic Versioning. Compare with 1.16.10 Compare with 1.16.9 Compare with 1.16.8 Compare with 1.16.7 Compare with 1.16.6 Compare with 1.16.5 Importing from submodules is now deprecated: the public API is fully exposed under the top-level Compare with 1.16.4 Compare with 1.16.3 Compare with 1.16.2 Compare with 1.16.1 Compare with 1.16.0 Compare with 1.15.1 Compare with 1.15.0 Compare with 1.14.6 Compare with 1.14.5 Compare with 1.14.4 Compare with 1.14.3 Compare with 1.14.2 Compare with 1.14.1 Compare with 1.14.0 Compare with 1.13.0 Compare with 1.12.2 Compare with 1.12.1 Compare with 1.12.0 Compare with 1.11.1 Compare with 1.11.0 Compare with 1.10.9 Compare with 1.10.8 Compare with 1.10.7 Compare with 1.10.6 Compare with 1.10.5 Compare with 1.10.4 Compare with 1.10.3 Compare with 1.10.2 Compare with 1.10.1 Compare with 1.10.0 Compare with 1.9.2 Compare with 1.9.1 Compare with 1.9.0 Compare with 1.8.0 Compare with 1.7.5 Release Insiders features of the $500/month funding goal (bd30106 by Timoth\u00e9e Mazzucotelli). The features and projects related to mkdocstrings-python are: See the complete list of features and projects here: https://pawamoy.github.io/insiders/#500-plasmavac-user-guide. Compare with 1.7.4 Compare with 1.7.3 Compare with 1.7.2 Compare with 1.7.1 Compare with 1.7.0 Compare with 1.6.3 Compare with 1.6.2 Compare with 1.6.1 Compare with 1.6.0 Compare with 1.5.2 Compare with 1.5.1 Compare with 1.5.0 Compare with 1.4.0 Compare with 1.3.0 Compare with 1.2.1 Compare with 1.2.0 Compare with 1.1.2 Compare with 1.1.1 Compare with 1.1.0 Compare with 1.0.0 Compare with 0.10.1 The signature of the You can see how to use the filter in this commit's changes: f686f4e4. We take this as an opportunity to go out of beta and bump the version to 1.0.0. This will allow users to rely on semantic versioning. Compare with 0.10.0 Compare with 0.9.0 Compare with 0.8.3 Compare with 0.8.2 Compare with 0.8.1 Compare with 0.8.0 Compare with 0.7.1 Compare with 0.7.0 Compare with 0.6.6 Compare with 0.6.5 Compare with 0.6.4 Compare with 0.6.3 Compare with 0.6.2 Compare with 0.6.1 Compare with 0.6.0 Compare with 0.5.4 Compare with 0.5.3 Compare with 0.5.2 Compare with 0.5.1 Compare with 0.5.0 Compare with 0.4.1 Compare with 0.4.0 Compare with 0.3.0 Compare with 0.2.0 Compare with 0.1.0 Compare with first commit We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. Examples of behavior that contributes to a positive environment for our community include: Examples of unacceptable behavior include: Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate. This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at dev@pawamoy.fr. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the reporter of any incident. Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community. Consequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested. Community Impact: A violation through a single incident or series of actions. Consequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. Community Impact: A serious violation of community standards, including sustained inappropriate behavior. Consequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals. Consequence: A permanent ban from any sort of public interaction within the community. This Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. Community Impact Guidelines were inspired by Mozilla's code of conduct enforcement ladder. For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations. Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given. Nothing easier! Fork and clone the repository, then: Note If it fails for some reason, you'll need to install uv manually. You can install it with: Now you can try running You now have the dependencies installed. Run The entry-point to run commands and tasks is the If you work in VSCode, we provide an action to configure VSCode for the project. As usual: Before committing: If you are unsure about how to fix or ignore a warning, just let the continuous integration fail, and we will help you during review. Don't bother updating the changelog, we will take care of this. Commit messages must follow our convention based on the Angular style or the Karma convention: Subject and body must be valid Markdown. Subject must have proper casing (uppercase for first letter if it makes sense), but no dot at the end, and no punctuation in general. Scope and body are optional. Type can be: If you write a body, please add trailers at the end (for example issues and PR references, or co-authors), without relying on GitHub's flavored Markdown: These \"trailers\" must appear at the end of the body, without any blank lines between them. The trailer title can contain any character except colons We do not enforce a line length on commit messages summary and body, but please avoid very long summaries, and very long lines in the body, unless they are part of code blocks that must not be wrapped. Link to any related issue in the Pull Request message. During the review, we recommend using fixups: Once all the changes are approved, you can squash your commits: And force-push: If this seems all too complicated, you can push or force-push each new commit, and we will squash them ourselves if needed, before merging. These projects were used to build mkdocstrings-python. Thank you! Python | uv | copier-uv More credits from the author mkdocstrings-python follows the sponsorware release strategy, which means that new features are first exclusively released to sponsors as part of Insiders. Read on to learn what sponsorships achieve, how to become a sponsor to get access to Insiders, and what's in it for you! mkdocstrings-python Insiders is a private fork of mkdocstrings-python, hosted as a private GitHub repository. Almost1 all new features are developed as part of this fork, which means that they are immediately available to all eligible sponsors, as they are granted access to this private repository. Every feature is tied to a funding goal in monthly subscriptions. When a funding goal is hit, the features that are tied to it are merged back into mkdocstrings-python and released for general availability, making them available to all users. Bugfixes are always released in tandem. Sponsorships start as low as $10 a month.2 Sponsorships make this project sustainable, as they buy the maintainers of this project time \u2013 a very scarce resource \u2013 which is spent on the development of new features, bug fixing, stability improvement, issue triage and general support. The biggest bottleneck in Open Source is time.3 If you're unsure if you should sponsor this project, check out the list of completed funding goals to learn whether you're already using features that were developed with the help of sponsorships. You're most likely using at least a handful of them, thanks to our awesome sponsors! The moment you become a sponsor, you'll get immediate access to 15 additional features that you can start using right away, and which are currently exclusively available to sponsors: These are just the features related to this project. See the complete feature list on the author's main Insiders page. Additionally, your sponsorship will give more weight to your upvotes on issues, helping us prioritize work items in our backlog. For more information on how we prioritize work, see this page: Backlog management. Thanks for your interest in sponsoring! In order to become an eligible sponsor with your GitHub account, visit pawamoy's sponsor profile, and complete a sponsorship of $10 a month or more. You can use your individual or organization GitHub account for sponsoring. Sponsorships lower than $10 a month are also very much appreciated, and useful. They won't grant you access to Insiders, but they will be counted towards reaching sponsorship goals. Every sponsorship helps us implementing new features and releasing them to the public. Important: By default, when you're sponsoring @pawamoy through a GitHub organization, all the publicly visible members of the organization will be invited to join our private repositories. If you wish to only grant access to a subset of users, please send a short email to insiders@pawamoy.fr with the name of your organization and the GitHub accounts of the users that should be granted access. Tip: to ensure that access is not tied to a particular individual GitHub account, you can create a bot account (i.e. a GitHub account that is not tied to a specific individual), and use this account for the sponsoring. After being granted access to our private repositories, the bot account can create private forks of our private repositories into your own organization, which all members of your organization will have access to. You can cancel your sponsorship anytime.4 \u00a0 Join our awesome sponsors If you sponsor publicly, you're automatically added here with a link to your profile and avatar to show your support for mkdocstrings-python. Alternatively, if you wish to keep your sponsorship private, you'll be a silent +1. You can select visibility during checkout and change it afterwards. The following section lists all funding goals. Each goal contains a list of features prefixed with a checkmark symbol, denoting whether a feature is already available or planned, but not yet implemented. When the funding goal is hit, the features are released for general availability. This section lists all funding goals that were previously completed, which means that those features were part of Insiders, but are now generally available and can be used by all users. We're building an open source project and want to allow outside collaborators to use mkdocstrings-python locally without having access to Insiders. Is this still possible? Yes. Insiders is compatible with mkdocstrings-python. Almost all new features and configuration options are either backward-compatible or implemented behind feature flags. Most Insiders features enhance the overall experience, though while these features add value for the users of your project, they shouldn't be necessary for previewing when making changes to content. We don't want to pay for sponsorship every month. Are there any other options? Yes. You can sponsor on a yearly basis by switching your GitHub account to a yearly billing cycle. If for some reason you cannot do that, you could also create a dedicated GitHub account with a yearly billing cycle, which you only use for sponsoring (some sponsors already do that). If you have any problems or further questions, please reach out to insiders@pawamoy.fr. Are we allowed to use Insiders under the same terms and conditions as mkdocstrings-python? Yes. Whether you're an individual or a company, you may use mkdocstrings-python Insiders precisely under the same terms as mkdocstrings-python, which are given by the ISC license. However, we kindly ask you to respect our fair use policy: In general, every new feature is first exclusively released to sponsors, but sometimes upstream dependencies enhance existing features that must be supported by mkdocstrings-python.\u00a0\u21a9 Note that $10 a month is the minimum amount to become eligible for Insiders. While GitHub Sponsors also allows to sponsor lower amounts or one-time amounts, those can't be granted access to Insiders due to technical reasons. Such contributions are still very much welcome as they help ensuring the project's sustainability.\u00a0\u21a9 Making an Open Source project sustainable is exceptionally hard: maintainers burn out, projects are abandoned. That's not great and very unpredictable. The sponsorware model ensures that if you decide to use mkdocstrings-python, you can be sure that bugs are fixed quickly and new features are added regularly.\u00a0\u21a9 If you cancel your sponsorship, GitHub schedules a cancellation request which will become effective at the end of the billing cycle. This means that even though you cancel your sponsorship, you will keep your access to Insiders as long as your cancellation isn't effective. All charges are processed by GitHub through Stripe. As we don't receive any information regarding your payment, and GitHub doesn't offer refunds, sponsorships are non-refundable.\u00a0\u21a9 mkdocstrings-python Insiders is a compatible drop-in replacement for mkdocstrings-python, and can be installed similarly using We kindly ask that you do not upload the distributions to public registries, as it is against our Terms of use. mkdocstrings-python Insiders can be installed with Or using HTTPS: The Note that the personal access token must be kept secret at all times, as it allows the owner to access your private repositories. Of course, you can use mkdocstrings-python Insiders directly using Git: When cloning with Git, the package must be installed: When upgrading Insiders, you should always check the version of mkdocstrings-python which makes up the first part of the version qualifier. For example, a version like If the major version increased, it's a good idea to consult the changelog and go through the steps to ensure your configuration is up to date and all necessary changes have been made. Python handler for mkdocstrings. Modules: Deprecated. Import from Deprecated. Import from Deprecated. Import from Classes: Auto style docstring options. Autorefs hook. Google style docstring options. An inventory. Numpy style docstring options. Per style options. Python handler configuration. The Python handler class. Python handler configuration. Accepted input options. Final options passed as template context. Sphinx style docstring options. Summary option. Functions: Build an attributes section from a list of attributes. Build a classes section from a list of classes. Build a functions section from a list of functions. Build a modules section from a list of modules. Build a tree of backlinks. Deprecated. Filter to create cross-references. Filter a dictionary of objects based on their docstrings. Format an attribute. Format code. Format a signature. Get the template name used to render an object. Deprecated. Filter to create cross-references. Order members given an ordering method. Split object paths for building cross-references. Return an instance of Attributes: Ordering methods. A tree type. Each node holds a tuple of items. Filter to stash cross-references (and restore them after formatting and highlighting). Ordering methods. A tree type. Each node holds a tuple of items. Filter to stash cross-references (and restore them after formatting and highlighting). Auto style docstring options. Methods: Create an instance from a dictionary. Attributes: The default docstring style to use if no other style is detected. The method to use to determine the docstring style. Per-style options. The order of the docstring styles to try. The default docstring style to use if no other style is detected. The method to use to determine the docstring style. Per-style options. The order of the docstring styles to try. Create an instance from a dictionary. Autorefs hook. With this hook, we're able to add context to autorefs (cross-references), such as originating file path and line number, to improve error reporting. Parameters: Methods: Expand an identifier. Get the context for the current object. Attributes: The configuration options. The current object being rendered. The object being rendered. The configuration dictionary. The configuration options. The current object being rendered. Expand an identifier. Parameters: Returns: The expanded identifier. The identifier to expand. Get the context for the current object. Returns: The context. Google style docstring options. Attributes: Whether to ignore the summary in Whether to parse multiple items in Whether to parse Whether to parse multiple items in Whether to parse Whether to parse the return type of properties at the beginning of their summary: Whether to remove doctest flags from Python example blocks. Warn about documented parameters not appearing in the signature. Whether to ignore the summary in Whether to parse multiple items in When true, each item's continuation lines must be indented. When false (single item), no further indentation is required. Whether to parse When true, type must be wrapped in parentheses: Whether to parse multiple items in When true, each item's continuation lines must be indented. When false (single item), no further indentation is required. Whether to parse When true, type must be wrapped in parentheses: Whether to parse the return type of properties at the beginning of their summary: Whether to remove doctest flags from Python example blocks. Warn about documented parameters not appearing in the signature. An inventory. Attributes: The base URL of the inventory. The domains to load from the inventory. The URL of the inventory. The base URL of the inventory. The domains to load from the inventory. The URL of the inventory. Numpy style docstring options. Attributes: Whether to ignore the summary in Whether to remove doctest flags from Python example blocks. Warn about documented parameters not appearing in the signature. Whether to ignore the summary in Whether to remove doctest flags from Python example blocks. Warn about documented parameters not appearing in the signature. Per style options. Methods: Create an instance from a dictionary. Attributes: Google-style options. Numpydoc-style options. Sphinx-style options. Google-style options. Numpydoc-style options. Sphinx-style options. Create an instance from a dictionary. Python handler configuration. Methods: Coerce data. Create an instance from a dictionary. Attributes: The object inventories to load. Whether to always load external modules/packages. The locale to use when translating template strings. Configuration options for collecting and rendering objects. The paths in which to search for Python packages. The object inventories to load. Whether to always load external modules/packages. The locale to use when translating template strings. Configuration options for collecting and rendering objects. The paths in which to search for Python packages. Coerce data. Create an instance from a dictionary. The Python handler class. Parameters: Methods: Collect the documentation for the given identifier. Render Markdown text; for use inside templates. Render an HTML heading and register it for the table of contents. For use inside templates. Get the aliases for the given identifier. Load template extensions for the given handler, return their templates directories. Return and clear the headings gathered so far. Return the URLs of the inventory files to download. Get combined default, global and local options. Return the path to the handler's templates directory. Yield items and their URLs from an inventory file streamed from Resolve extension paths relative to config file. Render the collected data. Render the backlinks. Teardown the handler. Update the Jinja environment with custom filters and tests. Attributes: The base directory of the project. The handler configuration. The path to custom templates. The cross-documentation domain/language for this handler. Whether this handler is interested in enabling the creation of the The Jinja environment. Extra CSS. Fallback configuration when searching anchors for identifiers. The fallback theme. The global configuration options (in The Markdown instance. The Markdown extensions to use. The configuration for the Markdown extensions. The handler's name. Whether we're in the outer Markdown conversion layer. The selected theme. The handler configuration. The base directory of the project. Arguments passed to the parent constructor. The base directory of the project. The handler configuration. The path to custom templates. The cross-documentation domain/language for this handler. Whether this handler is interested in enabling the creation of the The Jinja environment. Extra CSS. Fallback configuration when searching anchors for identifiers. The fallback theme. The global configuration options (in The Markdown instance. Raises: When the Markdown instance is not set yet. The Markdown extensions to use. The configuration for the Markdown extensions. The handler's name. Whether we're in the outer Markdown conversion layer. The selected theme. Collect the documentation for the given identifier. Parameters: Returns: The collected item. The identifier of the object to collect. The options to use for the collection. Render Markdown text; for use inside templates. Parameters: Returns: An HTML string. The text to convert. The base heading level to start all Markdown headings from. The HTML id of the element that's considered the parent of this element. Whether to exclude the Render an HTML heading and register it for the table of contents. For use inside templates. Parameters: Returns: An HTML string. The HTML within the heading. The level of heading (e.g. 3 -> An optional role for the object bound to this heading. If True, only register it for the table of contents, don't render anything. The title to use in the table of contents ('data-toc-label' attribute). Any extra HTML attributes of the heading. Get the aliases for the given identifier. Parameters: Returns: The aliases. The identifier to get the aliases for. Load template extensions for the given handler, return their templates directories. Parameters: Returns: The extensions templates directories. The name of the handler to get the extended templates directory of. Return and clear the headings gathered so far. Returns: A list of HTML elements. Return the URLs of the inventory files to download. Get combined default, global and local options. Parameters: Returns: The combined options. The local options. Return the path to the handler's templates directory. Override to customize how the templates directory is found. Parameters: Raises: When no such handler is installed. When the templates directory cannot be found. Returns: The templates directory path. The name of the handler to get the templates directory of. Yield items and their URLs from an inventory file streamed from This implements mkdocstrings' Parameters: Yields: Tuples of (item identifier, item URL). The binary file-like object to read the inventory from. The URL that this file is being streamed from (used to guess The URL that this inventory's sub-paths are relative to. A list of domain strings to filter the inventory by, when not passed, \"py\" will be used. Ignore additional arguments passed from the config. Resolve extension paths relative to config file. Parameters: Returns: The normalized extensions. The extensions (configuration) to normalize. Render the collected data. Parameters: Returns: The rendered data (HTML). The collected data. The options to use for rendering. Render the backlinks. Parameters: Returns: The rendered backlinks (HTML). The backlinks to render. Teardown the handler. This method should be implemented to, for example, terminate a subprocess that was started when creating the handler instance. Update the Jinja environment with custom filters and tests. Parameters: The SSG configuration. Python handler configuration. Methods: Coerce data. Create an instance from a dictionary. Attributes: The inventories to load. Whether to always load external modules/packages. The locale to use when translating template strings. Configuration options for collecting and rendering objects. The paths in which to search for Python packages. The inventories to load. Whether to always load external modules/packages. The locale to use when translating template strings. Configuration options for collecting and rendering objects. The paths in which to search for Python packages. Coerce data. Create an instance from a dictionary. Accepted input options. Methods: Coerce data. Create an instance from a dictionary. Attributes: Whether to allow inspecting modules when visiting them is not possible. The verbosity for annotations path: Whether to render backlinks, and how. The options for the docstring parser. The style used to render docstring sections. The docstring style to use: A list of Griffe extensions to load. Extra options. A list of filters, or Whether to load stubs package (package-stubs) when extracting docstrings. Whether to force using dynamic analysis when loading data. Group the object's children by categories: attributes, classes, functions, and modules. A custom string to override the autogenerated heading of the root object. The initial heading level to use. A boolean, or an explicit list of inherited members to render. Maximum line length when formatting code/signatures. A boolean, or an explicit list of members to render. The members ordering to use. Whether to merge the Whether to modernize annotations, for example Whether to render headings for parameters (therefore showing parameters in the ToC). Pre-load modules that are not specified directly in autodoc instructions ( Whether to enable the relative crossref syntax. Whether to enable the scoped crossref ability. Whether to put the whole signature in a code block below the heading. Show the base classes of a class. When grouped by categories, show a heading for each category. Whether to display the 'Attributes' section in the object's docstring. Whether to display the 'Classes' section in the object's docstring. Whether to display the textual block (including admonitions) in the object's docstring. Whether to display the 'Examples' section in the object's docstring. Whether to display the 'Functions' or 'Methods' sections in the object's docstring. Whether to display the 'Modules' section in the object's docstring. Whether to display the 'Other Parameters' section in the object's docstring. Whether to display the 'Parameters' section in the object's docstring. Whether to display the 'Raises' section in the object's docstring. Whether to display the 'Receives' section in the object's docstring. Whether to display the 'Returns' section in the object's docstring. Whether to display the 'Warns' section in the object's docstring. Whether to display the 'Yields' section in the object's docstring. Show the object heading even if it has no docstring or children with docstrings. Show the inheritance diagram of a class using Mermaid. Whether to show labels of the members. Show the full Python path of every object. Show the overloads of a function or method. Show the full Python path for the root object heading. Show the heading of the object at the root of the documentation tree. Show the full Python path of the root members. If the root heading is not shown, at least add a ToC entry for it. Show methods and functions signatures. Show the type annotations in methods and functions signatures. Show the source code of this object. When rendering a module, show its submodules recursively. Show the symbol type in headings (e.g. mod, class, meth, func and attr). Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr). Whether to render cross-references for type annotations in signatures. Whether to render summaries of modules, classes, functions (methods) and attributes. A custom string to override the autogenerated toc label of the root object. Whether to unwrap Whether to allow inspecting modules when visiting them is not possible. The verbosity for annotations path: Whether to render backlinks, and how. The options for the docstring parser. See docstring parsers and their options in Griffe docs. The style used to render docstring sections. The docstring style to use: A list of Griffe extensions to load. Extra options. A list of filters, or List of filters A filter starting with Filtering methods Sponsors only \u2014 Insiders 1.11.0 The Whether to load stubs package (package-stubs) when extracting docstrings. Whether to force using dynamic analysis when loading data. Group the object's children by categories: attributes, classes, functions, and modules. A custom string to override the autogenerated heading of the root object. The initial heading level to use. A boolean, or an explicit list of inherited members to render. If true, select all inherited members, which can then be filtered with Maximum line length when formatting code/signatures. A boolean, or an explicit list of members to render. If true, select all members without further filtering. If false or empty list, do not render members. If none, select all members and apply further filtering with filters and docstrings. The members ordering to use. Since Whether to merge the Whether to modernize annotations, for example Whether to render headings for parameters (therefore showing parameters in the ToC). Pre-load modules that are not specified directly in autodoc instructions ( It is useful when you want to render documentation for a particular member of an object, and this member is imported from another package than its parent. For an imported member to be rendered, you need to add it to the The modules must be listed as an array of strings. Whether to enable the relative crossref syntax. Whether to enable the scoped crossref ability. Whether to put the whole signature in a code block below the heading. If Black or Ruff are installed, the signature is also formatted using them. Show the base classes of a class. When grouped by categories, show a heading for each category. Whether to display the 'Attributes' section in the object's docstring. Whether to display the 'Classes' section in the object's docstring. Whether to display the textual block (including admonitions) in the object's docstring. Whether to display the 'Examples' section in the object's docstring. Whether to display the 'Functions' or 'Methods' sections in the object's docstring. Whether to display the 'Modules' section in the object's docstring. Whether to display the 'Other Parameters' section in the object's docstring. Whether to display the 'Parameters' section in the object's docstring. Whether to display the 'Raises' section in the object's docstring. Whether to display the 'Receives' section in the object's docstring. Whether to display the 'Returns' section in the object's docstring. Whether to display the 'Warns' section in the object's docstring. Whether to display the 'Yields' section in the object's docstring. Show the object heading even if it has no docstring or children with docstrings. Show the inheritance diagram of a class using Mermaid. Whether to show labels of the members. Show the full Python path of every object. Show the overloads of a function or method. Show the full Python path for the root object heading. Show the heading of the object at the root of the documentation tree. The root object is the object referenced by the identifier after Show the full Python path of the root members. If the root heading is not shown, at least add a ToC entry for it. Show methods and functions signatures. Show the type annotations in methods and functions signatures. Show the source code of this object. When rendering a module, show its submodules recursively. Show the symbol type in headings (e.g. mod, class, meth, func and attr). Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr). Whether to render cross-references for type annotations in signatures. Whether to render summaries of modules, classes, functions (methods) and attributes. A custom string to override the autogenerated toc label of the root object. Whether to unwrap Coerce data. Create an instance from a dictionary. Final options passed as template context. Methods: Create an instance from a dictionary. Create an instance from a dictionary. Attributes: Whether to allow inspecting modules when visiting them is not possible. The verbosity for annotations path: Whether to render backlinks, and how. The options for the docstring parser. The style used to render docstring sections. The docstring style to use: A list of Griffe extensions to load. Extra options. A list of filters, or Whether to load stubs package (package-stubs) when extracting docstrings. Whether to force using dynamic analysis when loading data. Group the object's children by categories: attributes, classes, functions, and modules. A custom string to override the autogenerated heading of the root object. The initial heading level to use. A boolean, or an explicit list of inherited members to render. Maximum line length when formatting code/signatures. A boolean, or an explicit list of members to render. The members ordering to use. Whether to merge the Whether to modernize annotations, for example Whether to render headings for parameters (therefore showing parameters in the ToC). Pre-load modules that are not specified directly in autodoc instructions ( Whether to enable the relative crossref syntax. Whether to enable the scoped crossref ability. Whether to put the whole signature in a code block below the heading. Show the base classes of a class. When grouped by categories, show a heading for each category. Whether to display the 'Attributes' section in the object's docstring. Whether to display the 'Classes' section in the object's docstring. Whether to display the textual block (including admonitions) in the object's docstring. Whether to display the 'Examples' section in the object's docstring. Whether to display the 'Functions' or 'Methods' sections in the object's docstring. Whether to display the 'Modules' section in the object's docstring. Whether to display the 'Other Parameters' section in the object's docstring. Whether to display the 'Parameters' section in the object's docstring. Whether to display the 'Raises' section in the object's docstring. Whether to display the 'Receives' section in the object's docstring. Whether to display the 'Returns' section in the object's docstring. Whether to display the 'Warns' section in the object's docstring. Whether to display the 'Yields' section in the object's docstring. Show the object heading even if it has no docstring or children with docstrings. Show the inheritance diagram of a class using Mermaid. Whether to show labels of the members. Show the full Python path of every object. Show the overloads of a function or method. Show the full Python path for the root object heading. Show the heading of the object at the root of the documentation tree. Show the full Python path of the root members. If the root heading is not shown, at least add a ToC entry for it. Show methods and functions signatures. Show the type annotations in methods and functions signatures. Show the source code of this object. When rendering a module, show its submodules recursively. Show the symbol type in headings (e.g. mod, class, meth, func and attr). Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr). Whether to render cross-references for type annotations in signatures. Whether to render summaries of modules, classes, functions (methods) and attributes. A custom string to override the autogenerated toc label of the root object. Whether to unwrap Whether to allow inspecting modules when visiting them is not possible. The verbosity for annotations path: Whether to render backlinks, and how. The options for the docstring parser. See docstring parsers and their options in Griffe docs. The style used to render docstring sections. The docstring style to use: A list of Griffe extensions to load. Extra options. A list of filters, or Whether to load stubs package (package-stubs) when extracting docstrings. Whether to force using dynamic analysis when loading data. Group the object's children by categories: attributes, classes, functions, and modules. A custom string to override the autogenerated heading of the root object. The initial heading level to use. A boolean, or an explicit list of inherited members to render. If true, select all inherited members, which can then be filtered with Maximum line length when formatting code/signatures. A boolean, or an explicit list of members to render. If true, select all members without further filtering. If false or empty list, do not render members. If none, select all members and apply further filtering with filters and docstrings. The members ordering to use. Since Whether to merge the Whether to modernize annotations, for example Whether to render headings for parameters (therefore showing parameters in the ToC). Pre-load modules that are not specified directly in autodoc instructions ( It is useful when you want to render documentation for a particular member of an object, and this member is imported from another package than its parent. For an imported member to be rendered, you need to add it to the The modules must be listed as an array of strings. Whether to enable the relative crossref syntax. Whether to enable the scoped crossref ability. Whether to put the whole signature in a code block below the heading. If Black or Ruff are installed, the signature is also formatted using them. Show the base classes of a class. When grouped by categories, show a heading for each category. Whether to display the 'Attributes' section in the object's docstring. Whether to display the 'Classes' section in the object's docstring. Whether to display the textual block (including admonitions) in the object's docstring. Whether to display the 'Examples' section in the object's docstring. Whether to display the 'Functions' or 'Methods' sections in the object's docstring. Whether to display the 'Modules' section in the object's docstring. Whether to display the 'Other Parameters' section in the object's docstring. Whether to display the 'Parameters' section in the object's docstring. Whether to display the 'Raises' section in the object's docstring. Whether to display the 'Receives' section in the object's docstring. Whether to display the 'Returns' section in the object's docstring. Whether to display the 'Warns' section in the object's docstring. Whether to display the 'Yields' section in the object's docstring. Show the object heading even if it has no docstring or children with docstrings. Show the inheritance diagram of a class using Mermaid. Whether to show labels of the members. Show the full Python path of every object. Show the overloads of a function or method. Show the full Python path for the root object heading. Show the heading of the object at the root of the documentation tree. The root object is the object referenced by the identifier after Show the full Python path of the root members. If the root heading is not shown, at least add a ToC entry for it. Show methods and functions signatures. Show the type annotations in methods and functions signatures. Show the source code of this object. When rendering a module, show its submodules recursively. Show the symbol type in headings (e.g. mod, class, meth, func and attr). Show the symbol type in the Table of Contents (e.g. mod, class, methd, func and attr). Whether to render cross-references for type annotations in signatures. Whether to render summaries of modules, classes, functions (methods) and attributes. A custom string to override the autogenerated toc label of the root object. Whether to unwrap Create an instance from a dictionary. Create an instance from a dictionary. Sphinx style docstring options. Summary option. Attributes: Whether to render summaries of attributes. Whether to render summaries of classes. Whether to render summaries of functions (methods). Whether to render summaries of modules. Whether to render summaries of attributes. Whether to render summaries of classes. Whether to render summaries of functions (methods). Whether to render summaries of modules. Build an attributes section from a list of attributes. Parameters: Returns: An attributes docstring section. The attributes to build the section from. Whether to check if the attribute is public. Build a classes section from a list of classes. Parameters: Returns: A classes docstring section. The classes to build the section from. Whether to check if the class is public. Build a functions section from a list of functions. Parameters: Returns: A functions docstring section. The functions to build the section from. Whether to check if the function is public. Build a modules section from a list of modules. Parameters: Returns: A modules docstring section. The modules to build the section from. Whether to check if the module is public. Build a tree of backlinks. Parameters: Returns: A tree of backlinks. The list of backlinks. Deprecated. Filter to create cross-references. Parameters: Returns: Markup text. The path to link to. Show only the last part of the path, add full path as hover. Filter a dictionary of objects based on their docstrings. Parameters: Returns: A list of objects. The dictionary of objects. Filters to apply, based on members' names, or An optional, explicit list of members to keep. When given and empty, return an empty list. When given and not empty, ignore filters and docstrings presence/absence. Whether to keep inherited members or exclude them. Whether to keep objects with no/empty docstrings (recursive check). Format an attribute. Parameters: Returns: The same code, formatted. Jinja context, passed automatically. The path of the callable we render the signature of. The attribute we render the signature of. The line length. Whether to cross-reference types in the signature. Format code. Parameters: Returns: The same code, formatted. The code to format. The line length. Format a signature. Parameters: Returns: The same code, formatted. Jinja context, passed automatically. The path of the callable we render the signature of. The function we render the signature of. The line length. Whether to show type annotations. Whether to cross-reference types in the signature. Get the template name used to render an object. Parameters: Returns: A template name. The Jinja environment, passed automatically. A Griffe object, or a template name. Deprecated. Filter to create cross-references. Parameters: Returns: Markup text. The text to scan. Whether to wrap the result in a code tag. Order members given an ordering method. Parameters: Returns: The same members, ordered. The members to order. The ordering method. An optional member list (manual ordering). Split object paths for building cross-references. Parameters: Yields: 4-tuples: prefix, word, full path, suffix. The path to split. The full path, used to compute correct paths for each part of the path. Return an instance of Parameters: Returns: An instance of The handler configuration. The tool (SSG) configuration. Deprecated. Import from Deprecated. Import from Deprecated. Import from This is the documentation for the NEW Python handler. To read the documentation for the LEGACY handler, go to the legacy handler documentation. You can install this handler as a mkdocstrings extra: You can also explicitly depend on the handler: The Python handler is the default mkdocstrings handler. You can change the default handler, or explicitely set the Python handler as default by defining the With the Python handler installed and configured as default handler, you can inject documentation for a module, class, function, or any other Python object with mkdocstrings' autodoc syntax, in your Markdown pages: If another handler was defined as default handler, you can explicitely ask for the Python handler to be used when injecting documentation with the When installed, the Python handler becomes the default mkdocstrings handler. You can configure it in Some options are global only, and go directly under the handler's name. This option is used to load Sphinx-compatible objects inventories from other documentation sites. For example, you can load the standard library objects inventory like this: When loading an inventory, you enable automatic cross-references to other documentation sites like the standard library docs or any third-party package docs. Typically, you want to load the inventories of your project's dependencies, at least those that are used in the public API. See mkdocstrings' documentation on inventories for more details. Additionally, the Python handler accepts a This option allows resolving aliases (imports) to any external module. Modules are considered external when they are not part of the package your are injecting documentation for. Setting this option to Use with caution This can load a lot of modules through Griffe, slowing down your build or triggering errors that Griffe does not yet handle. We recommend using the Example: The locale to use when translating template strings. The translation system is not fully ready yet, so we don't recommend setting the option for now. This option is used to provide filesystem paths in which to search for Python modules. Non-absolute paths are computed as relative to MkDocs configuration file. Example: More details at Finding modules. The other options can be used both globally and locally, under the ...and locally, overriding the global configuration: These options affect how the documentation is collected from sources and rendered. See the following tables summarizing the options, and get more details for each option in the following pages: There are multiple ways to tell the handler where to find your packages/modules. The recommended method is to use the This is the recommended method. mkdocs.yml in root, package in root =q){if(s=W.limit_backward,W.limit_backward=q,W.ket=W.cursor,e=W.find_among_b(P,7))switch(W.bra=W.cursor,e){case 1:if(l()){if(i=W.limit-W.cursor,!W.eq_s_b(1,"s")&&(W.cursor=W.limit-i,!W.eq_s_b(1,"t")))break;W.slice_del()}break;case 2:W.slice_from("i");break;case 3:W.slice_del();break;case 4:W.eq_s_b(2,"gu")&&W.slice_del()}W.limit_backward=s}}function b(){var e=W.limit-W.cursor;W.find_among_b(U,5)&&(W.cursor=W.limit-e,W.ket=W.cursor,W.cursor>W.limit_backward&&(W.cursor--,W.bra=W.cursor,W.slice_del()))}function d(){for(var e,r=1;W.out_grouping_b(F,97,251);)r--;if(r<=0){if(W.ket=W.cursor,e=W.limit-W.cursor,!W.eq_s_b(1,"é")&&(W.cursor=W.limit-e,!W.eq_s_b(1,"è")))return;W.bra=W.cursor,W.slice_from("e")}}function k(){if(!w()&&(W.cursor=W.limit,!f()&&(W.cursor=W.limit,!m())))return W.cursor=W.limit,void _();W.cursor=W.limit,W.ket=W.cursor,W.eq_s_b(1,"Y")?(W.bra=W.cursor,W.slice_from("i")):(W.cursor=W.limit,W.eq_s_b(1,"ç")&&(W.bra=W.cursor,W.slice_from("c")))}var p,g,q,v=[new r("col",-1,-1),new r("par",-1,-1),new r("tap",-1,-1)],h=[new r("",-1,4),new r("I",0,1),new r("U",0,2),new r("Y",0,3)],z=[new r("iqU",-1,3),new r("abl",-1,3),new r("Ièr",-1,4),new r("ièr",-1,4),new r("eus",-1,2),new r("iv",-1,1)],y=[new r("ic",-1,2),new r("abil",-1,1),new r("iv",-1,3)],C=[new r("iqUe",-1,1),new r("atrice",-1,2),new r("ance",-1,1),new r("ence",-1,5),new r("logie",-1,3),new r("able",-1,1),new r("isme",-1,1),new r("euse",-1,11),new r("iste",-1,1),new r("ive",-1,8),new r("if",-1,8),new r("usion",-1,4),new r("ation",-1,2),new r("ution",-1,4),new r("ateur",-1,2),new r("iqUes",-1,1),new r("atrices",-1,2),new r("ances",-1,1),new r("ences",-1,5),new r("logies",-1,3),new r("ables",-1,1),new r("ismes",-1,1),new r("euses",-1,11),new r("istes",-1,1),new r("ives",-1,8),new r("ifs",-1,8),new r("usions",-1,4),new r("ations",-1,2),new r("utions",-1,4),new r("ateurs",-1,2),new r("ments",-1,15),new r("ements",30,6),new r("issements",31,12),new r("ités",-1,7),new r("ment",-1,15),new r("ement",34,6),new r("issement",35,12),new r("amment",34,13),new r("emment",34,14),new r("aux",-1,10),new r("eaux",39,9),new r("eux",-1,1),new r("ité",-1,7)],x=[new r("ira",-1,1),new r("ie",-1,1),new r("isse",-1,1),new r("issante",-1,1),new r("i",-1,1),new r("irai",4,1),new r("ir",-1,1),new r("iras",-1,1),new r("ies",-1,1),new r("îmes",-1,1),new r("isses",-1,1),new r("issantes",-1,1),new r("îtes",-1,1),new r("is",-1,1),new r("irais",13,1),new r("issais",13,1),new r("irions",-1,1),new r("issions",-1,1),new r("irons",-1,1),new r("issons",-1,1),new r("issants",-1,1),new r("it",-1,1),new r("irait",21,1),new r("issait",21,1),new r("issant",-1,1),new r("iraIent",-1,1),new r("issaIent",-1,1),new r("irent",-1,1),new r("issent",-1,1),new r("iront",-1,1),new r("ît",-1,1),new r("iriez",-1,1),new r("issiez",-1,1),new r("irez",-1,1),new r("issez",-1,1)],I=[new r("a",-1,3),new r("era",0,2),new r("asse",-1,3),new r("ante",-1,3),new r("ée",-1,2),new r("ai",-1,3),new r("erai",5,2),new r("er",-1,2),new r("as",-1,3),new r("eras",8,2),new r("âmes",-1,3),new r("asses",-1,3),new r("antes",-1,3),new r("âtes",-1,3),new r("ées",-1,2),new r("ais",-1,3),new r("erais",15,2),new r("ions",-1,1),new r("erions",17,2),new r("assions",17,3),new r("erons",-1,2),new r("ants",-1,3),new r("és",-1,2),new r("ait",-1,3),new r("erait",23,2),new r("ant",-1,3),new r("aIent",-1,3),new r("eraIent",26,2),new r("èrent",-1,2),new r("assent",-1,3),new r("eront",-1,2),new r("ât",-1,3),new r("ez",-1,2),new r("iez",32,2),new r("eriez",33,2),new r("assiez",33,3),new r("erez",32,2),new r("é",-1,2)],P=[new r("e",-1,3),new r("Ière",0,2),new r("ière",0,2),new r("ion",-1,1),new r("Ier",-1,2),new r("ier",-1,2),new r("ë",-1,4)],U=[new r("ell",-1,-1),new r("eill",-1,-1),new r("enn",-1,-1),new r("onn",-1,-1),new r("ett",-1,-1)],F=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,128,130,103,8,5],S=[1,65,20,0,0,0,0,0,0,0,0,0,0,0,0,0,128],W=new s;this.setCurrent=function(e){W.setCurrent(e)},this.getCurrent=function(){return W.getCurrent()},this.stem=function(){var e=W.cursor;return n(),W.cursor=e,u(),W.limit_backward=e,W.cursor=W.limit,k(),W.cursor=W.limit,b(),W.cursor=W.limit,d(),W.cursor=W.limit_backward,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.fr.stemmer,"stemmer-fr"),e.fr.stopWordFilter=e.generateStopWordFilter("ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes".split(" ")),e.Pipeline.registerFunction(e.fr.stopWordFilter,"stopWordFilter-fr")}});
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.he.min.js b/assets/javascripts/lunr/min/lunr.he.min.js
new file mode 100644
index 00000000..b863d3ea
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.he.min.js
@@ -0,0 +1 @@
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.he=function(){this.pipeline.reset(),this.pipeline.add(e.he.trimmer,e.he.stopWordFilter,e.he.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.he.stemmer))},e.he.wordCharacters="֑-״א-תa-zA-Za-zA-Z0-90-9",e.he.trimmer=e.trimmerSupport.generateTrimmer(e.he.wordCharacters),e.Pipeline.registerFunction(e.he.trimmer,"trimmer-he"),e.he.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ה ו י ת",pre2:"ב כ ל מ ש כש",pre3:"הב הכ הל המ הש בש לכ",pre4:"וב וכ ול ומ וש",pre5:"מה שה כל",pre6:"מב מכ מל ממ מש",pre7:"בה בו בי בת כה כו כי כת לה לו לי לת",pre8:"ובה ובו ובי ובת וכה וכו וכי וכת ולה ולו ולי ולת"},e.suf={suf1:"ך כ ם ן נ",suf2:"ים ות וך וכ ום ון ונ הם הן יכ יך ינ ים",suf3:"תי תך תכ תם תן תנ",suf4:"ותי ותך ותכ ותם ותן ותנ",suf5:"נו כם כן הם הן",suf6:"ונו וכם וכן והם והן",suf7:"תכם תכן תנו תהם תהן",suf8:"הוא היא הם הן אני אתה את אנו אתם אתן",suf9:"ני נו כי כו כם כן תי תך תכ תם תן",suf10:"י ך כ ם ן נ ת"},e.patterns=JSON.parse('{"hebrewPatterns": [{"pt1": [{"c": "ה", "l": 0}]}, {"pt2": [{"c": "ו", "l": 0}]}, {"pt3": [{"c": "י", "l": 0}]}, {"pt4": [{"c": "ת", "l": 0}]}, {"pt5": [{"c": "מ", "l": 0}]}, {"pt6": [{"c": "ל", "l": 0}]}, {"pt7": [{"c": "ב", "l": 0}]}, {"pt8": [{"c": "כ", "l": 0}]}, {"pt9": [{"c": "ש", "l": 0}]}, {"pt10": [{"c": "כש", "l": 0}]}, {"pt11": [{"c": "בה", "l": 0}]}, {"pt12": [{"c": "וב", "l": 0}]}, {"pt13": [{"c": "וכ", "l": 0}]}, {"pt14": [{"c": "ול", "l": 0}]}, {"pt15": [{"c": "ומ", "l": 0}]}, {"pt16": [{"c": "וש", "l": 0}]}, {"pt17": [{"c": "הב", "l": 0}]}, {"pt18": [{"c": "הכ", "l": 0}]}, {"pt19": [{"c": "הל", "l": 0}]}, {"pt20": [{"c": "המ", "l": 0}]}, {"pt21": [{"c": "הש", "l": 0}]}, {"pt22": [{"c": "מה", "l": 0}]}, {"pt23": [{"c": "שה", "l": 0}]}, {"pt24": [{"c": "כל", "l": 0}]}]}'),e.execArray=["cleanWord","removeDiacritics","removeStopWords","normalizeHebrewCharacters"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r
=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.pt.min.js b/assets/javascripts/lunr/min/lunr.pt.min.js
new file mode 100644
index 00000000..6c16996d
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.pt.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Portuguese` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.pt=function(){this.pipeline.reset(),this.pipeline.add(e.pt.trimmer,e.pt.stopWordFilter,e.pt.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.pt.stemmer))},e.pt.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.pt.trimmer=e.trimmerSupport.generateTrimmer(e.pt.wordCharacters),e.Pipeline.registerFunction(e.pt.trimmer,"trimmer-pt"),e.pt.stemmer=function(){var r=e.stemmerSupport.Among,s=e.stemmerSupport.SnowballProgram,n=new function(){function e(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(k,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("a~");continue;case 2:z.slice_from("o~");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function n(){if(z.out_grouping(y,97,250)){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!0;z.cursor++}return!1}return!0}function i(){if(z.in_grouping(y,97,250))for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return g=z.cursor,!0}function o(){var e,r,s=z.cursor;if(z.in_grouping(y,97,250))if(e=z.cursor,n()){if(z.cursor=e,i())return}else g=z.cursor;if(z.cursor=s,z.out_grouping(y,97,250)){if(r=z.cursor,n()){if(z.cursor=r,!z.in_grouping(y,97,250)||z.cursor>=z.limit)return;z.cursor++}g=z.cursor}}function t(){for(;!z.in_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}for(;!z.out_grouping(y,97,250);){if(z.cursor>=z.limit)return!1;z.cursor++}return!0}function a(){var e=z.cursor;g=z.limit,b=g,h=g,o(),z.cursor=e,t()&&(b=z.cursor,t()&&(h=z.cursor))}function u(){for(var e;;){if(z.bra=z.cursor,e=z.find_among(q,3))switch(z.ket=z.cursor,e){case 1:z.slice_from("ã");continue;case 2:z.slice_from("õ");continue;case 3:if(z.cursor>=z.limit)break;z.cursor++;continue}break}}function w(){return g<=z.cursor}function m(){return b<=z.cursor}function c(){return h<=z.cursor}function l(){var e;if(z.ket=z.cursor,!(e=z.find_among_b(F,45)))return!1;switch(z.bra=z.cursor,e){case 1:if(!c())return!1;z.slice_del();break;case 2:if(!c())return!1;z.slice_from("log");break;case 3:if(!c())return!1;z.slice_from("u");break;case 4:if(!c())return!1;z.slice_from("ente");break;case 5:if(!m())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(j,4),e&&(z.bra=z.cursor,c()&&(z.slice_del(),1==e&&(z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del()))));break;case 6:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(C,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 7:if(!c())return!1;z.slice_del(),z.ket=z.cursor,e=z.find_among_b(P,3),e&&(z.bra=z.cursor,1==e&&c()&&z.slice_del());break;case 8:if(!c())return!1;z.slice_del(),z.ket=z.cursor,z.eq_s_b(2,"at")&&(z.bra=z.cursor,c()&&z.slice_del());break;case 9:if(!w()||!z.eq_s_b(1,"e"))return!1;z.slice_from("ir")}return!0}function f(){var e,r;if(z.cursor>=g){if(r=z.limit_backward,z.limit_backward=g,z.ket=z.cursor,e=z.find_among_b(S,120))return z.bra=z.cursor,1==e&&z.slice_del(),z.limit_backward=r,!0;z.limit_backward=r}return!1}function d(){var e;z.ket=z.cursor,(e=z.find_among_b(W,7))&&(z.bra=z.cursor,1==e&&w()&&z.slice_del())}function v(e,r){if(z.eq_s_b(1,e)){z.bra=z.cursor;var s=z.limit-z.cursor;if(z.eq_s_b(1,r))return z.cursor=z.limit-s,w()&&z.slice_del(),!1}return!0}function p(){var e;if(z.ket=z.cursor,e=z.find_among_b(L,4))switch(z.bra=z.cursor,e){case 1:w()&&(z.slice_del(),z.ket=z.cursor,z.limit-z.cursor,v("u","g")&&v("i","c"));break;case 2:z.slice_from("c")}}function _(){if(!l()&&(z.cursor=z.limit,!f()))return z.cursor=z.limit,void d();z.cursor=z.limit,z.ket=z.cursor,z.eq_s_b(1,"i")&&(z.bra=z.cursor,z.eq_s_b(1,"c")&&(z.cursor=z.limit,w()&&z.slice_del()))}var h,b,g,k=[new r("",-1,3),new r("ã",0,1),new r("õ",0,2)],q=[new r("",-1,3),new r("a~",0,1),new r("o~",0,2)],j=[new r("ic",-1,-1),new r("ad",-1,-1),new r("os",-1,-1),new r("iv",-1,1)],C=[new r("ante",-1,1),new r("avel",-1,1),new r("ível",-1,1)],P=[new r("ic",-1,1),new r("abil",-1,1),new r("iv",-1,1)],F=[new r("ica",-1,1),new r("ância",-1,1),new r("ência",-1,4),new r("ira",-1,9),new r("adora",-1,1),new r("osa",-1,1),new r("ista",-1,1),new r("iva",-1,8),new r("eza",-1,1),new r("logía",-1,2),new r("idade",-1,7),new r("ante",-1,1),new r("mente",-1,6),new r("amente",12,5),new r("ável",-1,1),new r("ível",-1,1),new r("ución",-1,3),new r("ico",-1,1),new r("ismo",-1,1),new r("oso",-1,1),new r("amento",-1,1),new r("imento",-1,1),new r("ivo",-1,8),new r("aça~o",-1,1),new r("ador",-1,1),new r("icas",-1,1),new r("ências",-1,4),new r("iras",-1,9),new r("adoras",-1,1),new r("osas",-1,1),new r("istas",-1,1),new r("ivas",-1,8),new r("ezas",-1,1),new r("logías",-1,2),new r("idades",-1,7),new r("uciones",-1,3),new r("adores",-1,1),new r("antes",-1,1),new r("aço~es",-1,1),new r("icos",-1,1),new r("ismos",-1,1),new r("osos",-1,1),new r("amentos",-1,1),new r("imentos",-1,1),new r("ivos",-1,8)],S=[new r("ada",-1,1),new r("ida",-1,1),new r("ia",-1,1),new r("aria",2,1),new r("eria",2,1),new r("iria",2,1),new r("ara",-1,1),new r("era",-1,1),new r("ira",-1,1),new r("ava",-1,1),new r("asse",-1,1),new r("esse",-1,1),new r("isse",-1,1),new r("aste",-1,1),new r("este",-1,1),new r("iste",-1,1),new r("ei",-1,1),new r("arei",16,1),new r("erei",16,1),new r("irei",16,1),new r("am",-1,1),new r("iam",20,1),new r("ariam",21,1),new r("eriam",21,1),new r("iriam",21,1),new r("aram",20,1),new r("eram",20,1),new r("iram",20,1),new r("avam",20,1),new r("em",-1,1),new r("arem",29,1),new r("erem",29,1),new r("irem",29,1),new r("assem",29,1),new r("essem",29,1),new r("issem",29,1),new r("ado",-1,1),new r("ido",-1,1),new r("ando",-1,1),new r("endo",-1,1),new r("indo",-1,1),new r("ara~o",-1,1),new r("era~o",-1,1),new r("ira~o",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("ir",-1,1),new r("as",-1,1),new r("adas",47,1),new r("idas",47,1),new r("ias",47,1),new r("arias",50,1),new r("erias",50,1),new r("irias",50,1),new r("aras",47,1),new r("eras",47,1),new r("iras",47,1),new r("avas",47,1),new r("es",-1,1),new r("ardes",58,1),new r("erdes",58,1),new r("irdes",58,1),new r("ares",58,1),new r("eres",58,1),new r("ires",58,1),new r("asses",58,1),new r("esses",58,1),new r("isses",58,1),new r("astes",58,1),new r("estes",58,1),new r("istes",58,1),new r("is",-1,1),new r("ais",71,1),new r("eis",71,1),new r("areis",73,1),new r("ereis",73,1),new r("ireis",73,1),new r("áreis",73,1),new r("éreis",73,1),new r("íreis",73,1),new r("ásseis",73,1),new r("ésseis",73,1),new r("ísseis",73,1),new r("áveis",73,1),new r("íeis",73,1),new r("aríeis",84,1),new r("eríeis",84,1),new r("iríeis",84,1),new r("ados",-1,1),new r("idos",-1,1),new r("amos",-1,1),new r("áramos",90,1),new r("éramos",90,1),new r("íramos",90,1),new r("ávamos",90,1),new r("íamos",90,1),new r("aríamos",95,1),new r("eríamos",95,1),new r("iríamos",95,1),new r("emos",-1,1),new r("aremos",99,1),new r("eremos",99,1),new r("iremos",99,1),new r("ássemos",99,1),new r("êssemos",99,1),new r("íssemos",99,1),new r("imos",-1,1),new r("armos",-1,1),new r("ermos",-1,1),new r("irmos",-1,1),new r("ámos",-1,1),new r("arás",-1,1),new r("erás",-1,1),new r("irás",-1,1),new r("eu",-1,1),new r("iu",-1,1),new r("ou",-1,1),new r("ará",-1,1),new r("erá",-1,1),new r("irá",-1,1)],W=[new r("a",-1,1),new r("i",-1,1),new r("o",-1,1),new r("os",-1,1),new r("á",-1,1),new r("í",-1,1),new r("ó",-1,1)],L=[new r("e",-1,1),new r("ç",-1,2),new r("é",-1,1),new r("ê",-1,1)],y=[17,65,16,0,0,0,0,0,0,0,0,0,0,0,0,0,3,19,12,2],z=new s;this.setCurrent=function(e){z.setCurrent(e)},this.getCurrent=function(){return z.getCurrent()},this.stem=function(){var r=z.cursor;return e(),z.cursor=r,a(),z.limit_backward=r,z.cursor=z.limit,_(),z.cursor=z.limit,p(),z.cursor=z.limit_backward,u(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.pt.stemmer,"stemmer-pt"),e.pt.stopWordFilter=e.generateStopWordFilter("a ao aos aquela aquelas aquele aqueles aquilo as até com como da das de dela delas dele deles depois do dos e ela elas ele eles em entre era eram essa essas esse esses esta estamos estas estava estavam este esteja estejam estejamos estes esteve estive estivemos estiver estivera estiveram estiverem estivermos estivesse estivessem estivéramos estivéssemos estou está estávamos estão eu foi fomos for fora foram forem formos fosse fossem fui fôramos fôssemos haja hajam hajamos havemos hei houve houvemos houver houvera houveram houverei houverem houveremos houveria houveriam houvermos houverá houverão houveríamos houvesse houvessem houvéramos houvéssemos há hão isso isto já lhe lhes mais mas me mesmo meu meus minha minhas muito na nas nem no nos nossa nossas nosso nossos num numa não nós o os ou para pela pelas pelo pelos por qual quando que quem se seja sejam sejamos sem serei seremos seria seriam será serão seríamos seu seus somos sou sua suas são só também te tem temos tenha tenham tenhamos tenho terei teremos teria teriam terá terão teríamos teu teus teve tinha tinham tive tivemos tiver tivera tiveram tiverem tivermos tivesse tivessem tivéramos tivéssemos tu tua tuas tém tínhamos um uma você vocês vos à às éramos".split(" ")),e.Pipeline.registerFunction(e.pt.stopWordFilter,"stopWordFilter-pt")}});
\ No newline at end of file
diff --git a/assets/javascripts/lunr/min/lunr.ro.min.js b/assets/javascripts/lunr/min/lunr.ro.min.js
new file mode 100644
index 00000000..72771401
--- /dev/null
+++ b/assets/javascripts/lunr/min/lunr.ro.min.js
@@ -0,0 +1,18 @@
+/*!
+ * Lunr languages, `Romanian` language
+ * https://github.com/MihaiValentin/lunr-languages
+ *
+ * Copyright 2014, Mihai Valentin
+ * http://www.mozilla.org/MPL/
+ */
+/*!
+ * based on
+ * Snowball JavaScript Library v0.3
+ * http://code.google.com/p/urim/
+ * http://snowball.tartarus.org/
+ *
+ * Copyright 2010, Oleg Mazko
+ * http://www.mozilla.org/MPL/
+ */
+
+!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ro=function(){this.pipeline.reset(),this.pipeline.add(e.ro.trimmer,e.ro.stopWordFilter,e.ro.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ro.stemmer))},e.ro.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.ro.trimmer=e.trimmerSupport.generateTrimmer(e.ro.wordCharacters),e.Pipeline.registerFunction(e.ro.trimmer,"trimmer-ro"),e.ro.stemmer=function(){var i=e.stemmerSupport.Among,r=e.stemmerSupport.SnowballProgram,n=new function(){function e(e,i){L.eq_s(1,e)&&(L.ket=L.cursor,L.in_grouping(W,97,259)&&L.slice_from(i))}function n(){for(var i,r;;){if(i=L.cursor,L.in_grouping(W,97,259)&&(r=L.cursor,L.bra=r,e("u","U"),L.cursor=r,e("i","I")),L.cursor=i,L.cursor>=L.limit)break;L.cursor++}}function t(){if(L.out_grouping(W,97,259)){for(;!L.in_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}return!0}function a(){if(L.in_grouping(W,97,259))for(;!L.out_grouping(W,97,259);){if(L.cursor>=L.limit)return!0;L.cursor++}return!1}function o(){var e,i,r=L.cursor;if(L.in_grouping(W,97,259)){if(e=L.cursor,!t())return void(h=L.cursor);if(L.cursor=e,!a())return void(h=L.cursor)}L.cursor=r,L.out_grouping(W,97,259)&&(i=L.cursor,t()&&(L.cursor=i,L.in_grouping(W,97,259)&&L.cursor=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u
Changelog¤
1.16.11 - 2025-05-24¤
Bug Fixes¤
__init__
(7f95686 by Timothée Mazzucotelli). Issue-mkdocstrings-7571.16.10 - 2025-04-03¤
Bug Fixes¤
1.16.9 - 2025-04-03¤
Bug Fixes¤
1.16.8 - 2025-03-24¤
Bug Fixes¤
Code Refactoring¤
__all__
value (bfb5b30 by Timothée Mazzucotelli). Issue-2191.16.7 - 2025-03-20¤
Code Refactoring¤
1.16.6 - 2025-03-18¤
Deprecations¤
mkdocstrings_handler.python
module.Bug Fixes¤
Code Refactoring¤
1.16.5 - 2025-03-10¤
Code Refactoring¤
1.16.4 - 2025-03-10¤
Bug Fixes¤
1.16.3 - 2025-03-08¤
Build¤
Bug Fixes¤
Code Refactoring¤
mkdocstrings
module (da2ba13 by Timothée Mazzucotelli).1.16.2 - 2025-02-24¤
Build¤
1.16.1 - 2025-02-18¤
Bug Fixes¤
sys.path
(0f497d1 by Timothée Mazzucotelli). Issue-2481.16.0 - 2025-02-17¤
Features¤
1.15.1 - 2025-02-17¤
Bug Fixes¤
1.15.0 - 2025-02-11¤
Features¤
1.14.6 - 2025-02-07¤
Bug Fixes¤
Code Refactoring¤
1.14.5 - 2025-02-05¤
Bug Fixes¤
1.14.4 - 2025-02-04¤
Bug Fixes¤
eval-type-backport
is not available (for modern typing syntax support) (0de0e5e by Timothée Mazzucotelli). Issue-2411.14.3 - 2025-02-04¤
Bug Fixes¤
__init__
method, set extra fields in get_options
(477b9e4 by Timothée Mazzucotelli).1.14.2 - 2025-02-03¤
Bug Fixes¤
1.14.1 - 2025-02-03¤
Bug Fixes¤
1.14.0 - 2025-02-03¤
Features¤
heading
and toc_label
options (7cabacf by Yann Van Crombrugge). Issue-mkdocstrings-725, PR-236force_inspection
option to force dynamic analysis (83823be by Uchechukwu Orji). Issue-94, PR-231Code Refactoring¤
1.13.0 - 2024-12-26¤
Features¤
Bug Fixes¤
show_signature_annotations
option for attribute signatures in headings (e93d166 by Timothée Mazzucotelli). Issue-griffe-pydantic#9__init__
overloads when merging into class (af6fab3 by Timothée Mazzucotelli). Issue-212linenums
config for pycon
examples in docstrings (53eb82a by Timothée Mazzucotelli). Related-to-#192__init__
docstring into class docstring if such inherited method wasn't selected through the inherited_members
configuration option (6c5b5c3 by Timothée Mazzucotelli). Issue-189Code Refactoring¤
*
and **
outside of cross-references in signatures (c4506f0 by Timothée Mazzucotelli). Needed-for-PR-2161.12.2 - 2024-10-19¤
Bug Fixes¤
1.12.1 - 2024-10-14¤
Bug Fixes¤
1.12.0 - 2024-10-12¤
Build¤
Features¤
Code Refactoring¤
1.11.1 - 2024-09-03¤
Code Refactoring¤
relative_crossrefs
and scoped_crossrefs
insiders features (dd8b014 by Timothée Mazzucotelli).1.11.0 - 2024-09-03¤
Features¤
1.10.9 - 2024-08-30¤
Build¤
Code Refactoring¤
1.10.8 - 2024-08-14¤
Build¤
1.10.7 - 2024-07-25¤
Packaging¤
1.10.6 - 2024-07-25¤
Bug Fixes¤
Code Refactoring¤
1.10.5 - 2024-06-19¤
Bug Fixes¤
1.10.4 - 2024-06-18¤
Code Refactoring¤
load_external_modules
default value to None
to support new default mode in Griffe (ae5896c by Timothée Mazzucotelli).1.10.3 - 2024-05-22¤
Bug Fixes¤
1.10.2 - 2024-05-16¤
Bug Fixes¤
1.10.1 - 2024-05-14¤
Build¤
once
when logging messages (2bc156b by Timothée Mazzucotelli).Code Refactoring¤
*.html
top-level templates to extend the *.html.jinja
base templates (a8c540e by Timothée Mazzucotelli). Issue-151*.html
base templates to extend their *.html.jinja
counterpart, while overriding the logs
block to issue a logging message (info) stating that extending *.html
templates is deprecated (e6f1b9c by Timothée Mazzucotelli). Issue-151*.html.jinja
top-level (overridable) templates, extending their base counterpart (7c14924 by Timothée Mazzucotelli). Issue-151*.html.jinja
base templates, which are copies of *.html
templates, with an additional logs
block, and using the updated get_template
filter (eced9a5 by Timothée Mazzucotelli). Issue-151get_template
filter to support both *.html
and *.html.jinja
templates, logging a message (info) when *.html
templates are overridden by users (3546fd7 by Timothée Mazzucotelli). Issue-1511.10.0 - 2024-04-19¤
Features¤
doc-section-title
and doc-section-item
in docstring sections (d6e1d68 by Timothée Mazzucotelli). Issue-17Bug Fixes¤
1.9.2 - 2024-04-02¤
Dependencies¤
1.9.1 - 2024-04-02¤
Bug Fixes¤
Code Refactoring¤
1.9.0 - 2024-03-13¤
Dependencies¤
Features¤
show_labels
option to show/hide labels (eaf9b82 by Viicos). Issue #120, PR #130Code Refactoring¤
1.8.0 - 2024-01-08¤
Features¤
griffe-inherited-docstrings
, a Griffe extension for inheriting docstringsgriffe2md
, a tool to output API docs to Markdown using Griffe1.7.5 - 2023-11-21¤
Bug Fixes¤
1.7.4 - 2023-11-12¤
Bug Fixes¤
Code Refactoring¤
1.7.3 - 2023-10-09¤
Bug Fixes¤
1.7.2 - 2023-10-05¤
Bug Fixes¤
Code Refactoring¤
1.7.1 - 2023-09-28¤
Bug Fixes¤
Code Refactoring¤
__init__
methods when merging docstrings (b97d51f by Timothée Mazzucotelli). Issue #1061.7.0 - 2023-09-14¤
Features¤
Annotated
types (53db04b by Timothée Mazzucotelli).1.6.3 - 2023-09-11¤
Bug Fixes¤
load_external_modules
a global-only option (266f41f by Timothée Mazzucotelli). Issue #87Code Refactoring¤
1.6.2 - 2023-09-05¤
Bug Fixes¤
1.6.1 - 2023-09-04¤
Bug Fixes¤
1.6.0 - 2023-08-27¤
Features¤
doc-signature
CSS class to separate signature code blocks (b6c648f by Timothée Mazzucotelli).Code Refactoring¤
format_attribute
filter, preparing for cross-refs in attribute signatures (8f0ade2 by Timothée Mazzucotelli).1.5.2 - 2023-08-25¤
Bug Fixes¤
Code Refactoring¤
1.5.1 - 2023-08-24¤
Code Refactoring¤
1.5.0 - 2023-08-20¤
Features¤
1.4.0 - 2023-08-18¤
Features¤
Code Refactoring¤
crossref
and multi_crossref
filters (4fe3d20 by Timothée Mazzucotelli).1.3.0 - 2023-08-06¤
Dependencies¤
Features¤
1.2.1 - 2023-07-20¤
Bug Fixes¤
1.2.0 - 2023-07-14¤
Features¤
Bug Fixes¤
None
as return annotation of class signatures (3d8724e by Timothée Mazzucotelli). Issue #851.1.2 - 2023-06-04¤
Code Refactoring¤
1.1.1 - 2023-06-04¤
Bug Fixes¤
Code Refactoring¤
1.1.0 - 2023-05-25¤
Features¤
1.0.0 - 2023-05-11¤
Breaking changes¤
format_signature
filter has changed. If you override templates in your project to customize the output, make sure to update the following templates so that they use the new filter signature:
class.html
expression.html
function.html
signature.html
Bug Fixes¤
0.10.1 - 2023-05-07¤
Bug Fixes¤
0.10.0 - 2023-05-07¤
Features¤
Bug Fixes¤
Code Refactoring¤
0.9.0 - 2023-04-03¤
Features¤
Bug Fixes¤
Code Refactoring¤
0.8.3 - 2023-01-04¤
Code Refactoring¤
0.8.2 - 2022-11-19¤
Bug Fixes¤
0.8.1 - 2022-11-19¤
Bug Fixes¤
0.8.0 - 2022-11-13¤
Features¤
Code Refactoring¤
0.7.1 - 2022-06-12¤
Bug Fixes¤
0.7.0 - 2022-05-28¤
Packaging / Dependencies¤
Features¤
Bug Fixes¤
Code Refactoring¤
show_submodules
by default (480d0c3 by Timothée Mazzucotelli).show_root_full_path
for ToC entries (hidden headings) (8f4c853 by Timothée Mazzucotelli).0.6.6 - 2022-03-06¤
Code Refactoring¤
self
and cls
parameters (7f579d1 by Timothée Mazzucotelli). Issue #7pycon
for examples code blocks (6545900 by Timothée Mazzucotelli).0.6.5 - 2022-02-24¤
Bug Fixes¤
0.6.4 - 2022-02-22¤
Bug Fixes¤
0.6.3 - 2022-02-20¤
Bug Fixes¤
0.6.2 - 2022-02-17¤
Bug Fixes¤
0.6.1 - 2022-02-17¤
Bug Fixes¤
0.6.0 - 2022-02-13¤
Features¤
__init__
methods' docstrings into their classes' docstrings (1b4d1c0 by Timothée Mazzucotelli).Bug Fixes¤
Code Refactoring¤
0.5.4 - 2022-02-13¤
Bug Fixes¤
0.5.3 - 2022-02-08¤
Bug Fixes¤
0.5.2 - 2022-02-05¤
Dependencies¤
0.5.1 - 2022-02-03¤
Dependencies¤
Code Refactoring¤
0.5.0 - 2022-02-03¤
Features¤
Bug Fixes¤
docstring_section_style
option (774988e by Timothée Mazzucotelli).Code Refactoring¤
0.4.1 - 2022-02-01¤
Bug Fixes¤
0.4.0 - 2022-02-01¤
Code Refactoring¤
mkdocstrings_handlers
namespace (23c9023 by Timothée Mazzucotelli).0.3.0 - 2022-01-14¤
Features¤
Dependencies¤
Code Refactoring¤
0.2.0 - 2021-12-28¤
Dependencies¤
Features¤
show_signature
rendering option (0f07c2e by Will Da Silva).Bug Fixes¤
0.1.0 - 2021-12-19¤
Features¤
Bug Fixes¤
Code Refactoring¤
Contributor Covenant Code of Conduct¤
Our Pledge¤
Our Standards¤
Enforcement Responsibilities¤
Scope¤
Enforcement¤
Enforcement Guidelines¤
1. Correction¤
2. Warning¤
3. Temporary Ban¤
4. Permanent Ban¤
Attribution¤
Contributing¤
Environment setup¤
cd python
+make setup
+
curl -LsSf https://astral.sh/uv/install.sh | sh
+
make setup
again, or simply uv sync
.make help
to see all the available actions!Tasks¤
make
Python script, located in the scripts
directory. Try running make
to show the available commands and tasks. The commands do not need the Python dependencies to be installed, while the tasks do. The cross-platform tasks are written in Python, thanks to duty.Development¤
git switch -c feature-or-bugfix-name
make format
to auto-format the codemake check
to check everything (fix any warning)make test
to run the tests (fix any issue)
make docs
Commit message convention¤
<type>[(scope)]: Subject
+
+[Body]
+
build
: About packaging, building wheels, etc.chore
: About packaging or repo/files management.ci
: About Continuous Integration.deps
: Dependencies update.docs
: About documentation.feat
: New feature.fix
: Bug fix.perf
: About performance.refactor
: Changes that are not features or bug fixes.style
: A change in code style/format.tests
: About tests.Body.
+
+Issue #10: https://github.com/namespace/project/issues/10
+Related to PR namespace/other-project#15: https://github.com/namespace/other-project/pull/15
+
:
. We expect a full URI for each trailer, not just GitHub autolinks (for example, full GitHub URLs for commits and issues, not the hash or the #issue-number).Pull requests guidelines¤
# SHA is the SHA of the commit you want to fix
+git commit --fixup=SHA
+
git rebase -i --autosquash main
+
git push -f
+
Credits¤
Runtime dependencies¤
Project Summary Version (accepted) Version (last resolved) License click Composable command line interface toolkit >=8.0.0, >=7.0
8.1.8
BSD License colorama Cross-platform colored terminal text. >=0.4
0.4.6
BSD License ghp-import Copy your docs directly to the gh-pages branch. >=1.0
2.1.0
Apache Software License griffe Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API. >=1.6.2
1.7.3.1.3.1
ISC Jinja2 A very fast and expressive template engine. >=2.11.1, >=2.10
3.1.6
BSD License Markdown Python implementation of John Gruber's Markdown. >=3.3.3, >=3.3
3.7
BSD License MarkupSafe Safely add untrusted strings to HTML/XML markup. >=2.0.1, >=2.0
3.0.2
BSD License mergedeep A deep merge function for 🐍. ~=1.3, >=1.3.4
1.3.4
MIT License mkdocs Project documentation with Markdown. >=1.6, >=1.1
1.6.1
BSD-2-Clause mkdocs-autorefs Automatically link across pages in MkDocs. >=1.4
1.4.1
ISC mkdocs-get-deps MkDocs extension that lists all dependencies according to a mkdocs.yml file >=0.2.0
0.2.0
MIT mkdocstrings Automatic documentation from sources, for MkDocs. >=0.29, >=0.28.3
0.29.0
ISC packaging Core utilities for Python packages >=22.0, >=20.5
24.2
Apache Software License + BSD License pathspec Utility library for gitignore style pattern matching of file paths. >=0.9.0, >=0.11.1
0.12.1
Mozilla Public License 2.0 (MPL 2.0) platformdirs A small Python package for determining appropriate platform-specific dirs, e.g. a user data dir
.>=2.2.0, >=2
4.3.6
MIT pymdown-extensions Extension pack for Python Markdown. >=9, >=6.3
10.14.3
MIT python-dateutil Extensions to the standard Python datetime module >=2.8.1
2.9.0.post0
BSD License + Apache Software License PyYAML YAML parser and emitter for Python >=5.1
6.0.2
MIT pyyaml_env_tag A custom YAML tag for referencing environment variables in YAML files. >=0.1
0.1
MIT License six Python 2 and 3 compatibility utilities >=1.5, >=1.15, <2
1.17.0
MIT typing_extensions Backported and Experimental Type Hints for Python 3.8+ >=4.0.1, >=4.0
4.12.2
Python Software Foundation License watchdog Filesystem events monitoring >=2.0
6.0.0
Apache-2.0 Development dependencies¤
Project Summary Version (accepted) Version (last resolved) License annotated-types Reusable constraint types to use with typing.Annotated >=0.6.0
0.7.0
MIT License ansimarkup Produce colored terminal text with an xml-like markup ~=1.4
1.5.0
Revised BSD License appdirs A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir". >=1.4
1.4.4
MIT asttokens Annotate AST trees with source code positions >=2.0.5
3.0.0
Apache 2.0 babel Internationalization utilities >=2.7.0
2.17.0
BSD-3-Clause backrefs A wrapper around re and regex that adds additional back references. ~=5.7.post1
5.8
MIT beautifulsoup4 Screen-scraping library >=4.12.3
4.13.3
MIT License black The uncompromising code formatter. >=25.1
25.1.0
MIT build A simple, correct Python build frontend >=1.2
1.2.2.post1
MIT License cappa Declarative CLI argument parser. >=0.22
0.26.6
? certifi Python package for providing Mozilla's CA Bundle. >=2017.4.17
2025.1.31
MPL-2.0 cffi Foreign Function Interface for Python calling C code. >=1.12
1.17.1
MIT charset-normalizer The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. >=2, <4
3.4.1
MIT click Composable command line interface toolkit >=8.0.0, >=7.0
8.1.8
BSD License colorama Cross-platform colored terminal text. >=0.4
0.4.6
BSD License coverage Code coverage measurement for Python >=7.5
7.7.0
Apache-2.0 cryptography cryptography is a package which provides cryptographic recipes and primitives to Python developers. >=2.0
44.0.2
Apache-2.0 OR BSD-3-Clause csscompressor A python port of YUI CSS Compressor >=0.9.5
0.9.5
BSD docutils Docutils -- Python Documentation Utilities >=0.21.2
0.21.2
Public Domain + Python Software Foundation License + BSD License + GNU General Public License (GPL) duty A simple task runner. >=1.6
1.6.0
ISC execnet execnet: rapid multi-Python deployment >=2.1
2.1.1
MIT executing Get the currently executing AST node of a frame, and other information >=2.2.0
2.2.0
MIT failprint Run a command, print its output only if it fails. >=0.11, !=1.0.0
1.0.3
ISC ghp-import Copy your docs directly to the gh-pages branch. >=1.0
2.1.0
Apache Software License git-changelog Automatic Changelog generator using Jinja2 templates. >=2.5
2.5.3
ISC gitdb Git Object Database >=4.0.1, <5
4.0.12
BSD License GitPython GitPython is a Python library used to interact with Git repositories >=3.1.44
3.1.44
BSD-3-Clause htmlmin2 An HTML Minifier >=0.1.13
0.1.13
BSD humanize Python humanize utilities >=4.9
4.12.1
MIT id A tool for generating OIDC identities 1.5.0
Apache Software License idna Internationalized Domain Names in Applications (IDNA) >=2.5, <4
3.10
BSD License iniconfig brain-dead simple config-ini parsing 2.0.0
MIT inline-snapshot golden master/snapshot/approval testing library which puts the values right into your source code >=0.18
0.20.7
MIT License jaraco.classes Utility functions for Python class constructs 3.4.0
MIT License jaraco.context Useful decorators and context managers 6.0.1
MIT License jaraco.functools Functools like those found in stdlib 4.1.0
MIT License jeepney Low-level, pure Python DBus protocol wrapper. >=0.4.2
0.9.0
MIT Jinja2 A very fast and expressive template engine. >=2.11.1, >=2.10
3.1.6
BSD License jsmin JavaScript minifier. >=3.0.1
3.0.1
MIT License keyring Store and access your passwords safely. >=15.1
25.6.0
MIT License Markdown Python implementation of John Gruber's Markdown. >=3.3.3, >=3.3
3.7
BSD License markdown-callouts Markdown extension: a classier syntax for admonitions >=0.4
0.4.0
MIT markdown-exec Utilities to execute code blocks in Markdown files. >=1.8
1.10.3.1.1.0
ISC markdown-it-py Python port of markdown-it. Markdown parsing, done right! >=2.2.0
3.0.0
MIT License markdownify Convert HTML to markdown. >=0.14
1.1.0
MIT License MarkupSafe Safely add untrusted strings to HTML/XML markup. >=2.0.1, >=2.0
3.0.2
BSD License mdformat CommonMark compliant Markdown formatter >=0.7.21
0.7.22
MIT License mdurl Markdown URL utilities ~=0.1
0.1.2
MIT License mergedeep A deep merge function for 🐍. ~=1.3, >=1.3.4
1.3.4
MIT License mkdocs Project documentation with Markdown. >=1.6, >=1.1
1.6.1
BSD-2-Clause mkdocs-autorefs Automatically link across pages in MkDocs. >=1.4
1.4.1
ISC mkdocs-coverage MkDocs plugin to integrate your coverage HTML report into your site. >=1.0
1.1.0
ISC mkdocs-get-deps MkDocs extension that lists all dependencies according to a mkdocs.yml file >=0.2.0
0.2.0
MIT mkdocs-git-revision-date-localized-plugin Mkdocs plugin that enables displaying the localized date of the last git modification of a markdown file. >=1.2
1.4.5
MIT mkdocs-llmstxt MkDocs plugin to generate an /llms.txt file. >=0.2
0.2.0
ISC mkdocs-material Documentation that simply works >=9.5
9.6.14+insiders.4.53.16
MIT mkdocs-material-extensions Extension pack for Python Markdown and MkDocs Material. ~=1.3
1.3.1
MIT mkdocs-minify-plugin An MkDocs plugin to minify HTML, JS or CSS files prior to being written to disk >=0.8
0.8.0
MIT mkdocs-redirects A MkDocs plugin for dynamic page redirects to prevent broken links >=1.2
1.2.2
MIT mkdocs-section-index MkDocs plugin to allow clickable sections that lead to an index page >=0.3
0.3.9
MIT mkdocstrings Automatic documentation from sources, for MkDocs. >=0.29, >=0.28.3
0.29.0
ISC more-itertools More routines for operating on iterables, beyond itertools 10.6.0
MIT License mypy Optional static typing for Python >=1.10
1.15.0
MIT mypy-extensions Type system extensions for programs checked with the mypy type checker. >=0.4.3
1.0.0
MIT License nh3 Python binding to Ammonia HTML sanitizer Rust crate >=0.2.14
0.2.21
MIT packaging Core utilities for Python packages >=22.0, >=20.5
24.2
Apache Software License + BSD License paginate Divides large result sets into pages for easier browsing ~=0.5
0.5.7
MIT pathspec Utility library for gitignore style pattern matching of file paths. >=0.9.0, >=0.11.1
0.12.1
Mozilla Public License 2.0 (MPL 2.0) platformdirs A small Python package for determining appropriate platform-specific dirs, e.g. a user data dir
.>=2.2.0, >=2
4.3.6
MIT pluggy plugin and hook calling mechanisms for python >=1.5, <2
1.5.0
MIT ptyprocess Run a subprocess in a pseudo terminal ~=0.6
0.7.0
ISC License (ISCL) pycparser C parser in Python 2.22
BSD-3-Clause pydantic Data validation using Python type hints >=2.10
2.10.6
MIT pydantic_core Core functionality for Pydantic validation and serialization ==2.27.2
2.27.2
MIT Pygments Pygments is a syntax highlighting package written in Python. >=2.5.1
2.19.1
BSD-2-Clause pymdown-extensions Extension pack for Python Markdown. >=9, >=6.3
10.14.3
MIT pyproject_hooks Wrappers to call pyproject.toml-based build backend hooks. 1.2.0
MIT License pytest pytest: simple powerful testing with Python >=8.2
8.3.5
MIT pytest-cov Pytest plugin for measuring coverage. >=5.0
6.0.0
MIT pytest-randomly Pytest plugin to randomly order tests and control random.seed. >=3.15
3.16.0
MIT License pytest-xdist pytest xdist plugin for distributed testing, most importantly across multiple CPUs >=3.6
3.6.1
MIT License python-dateutil Extensions to the standard Python datetime module >=2.8.1
2.9.0.post0
BSD License + Apache Software License pytz World timezone definitions, modern and historical >=2025.1
2025.1
MIT PyYAML YAML parser and emitter for Python >=5.1
6.0.2
MIT pyyaml_env_tag A custom YAML tag for referencing environment variables in YAML files. >=0.1
0.1
MIT License readme_renderer readme_renderer is a library for rendering readme descriptions for Warehouse >=35.0
44.0
Apache License, Version 2.0 requests Python HTTP for Humans. >=2.20
2.32.3
Apache-2.0 requests-toolbelt A utility belt for advanced users of python-requests >=0.8.0, !=0.9.0
1.0.0
Apache 2.0 rfc3986 Validating URI References per RFC 3986 >=1.4.0
2.0.0
Apache 2.0 rich Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal >=12.0.0
13.9.4
MIT ruff An extremely fast Python linter and code formatter, written in Rust. >=0.4
0.11.0
MIT SecretStorage Python bindings to FreeDesktop.org Secret Service API >=3.2
3.3.3
BSD 3-Clause License semver Python helper for Semantic Versioning (https://semver.org) >=2.13
3.0.4
BSD License six Python 2 and 3 compatibility utilities >=1.5, >=1.15, <2
1.17.0
MIT smmap A pure Python implementation of a sliding window memory map manager >=3.0.1, <6
5.0.2
BSD-3-Clause soupsieve A modern CSS selector implementation for Beautiful Soup. >1.2
2.6
MIT twine Collection of utilities for publishing packages on PyPI >=5.1
6.1.0
Apache Software License type-lens type-lens is a Python template project designed to simplify the setup of a new project. >=0.2.3
0.2.3
MIT types-Markdown Typing stubs for Markdown >=3.6
3.7.0.20241204
Apache-2.0 types-PyYAML Typing stubs for PyYAML >=6.0
6.0.12.20241230
Apache-2.0 typing_extensions Backported and Experimental Type Hints for Python 3.8+ >=4.0.1, >=4.0
4.12.2
Python Software Foundation License urllib3 HTTP library with thread-safe connection pooling, file post, and more. >=1.26.0
2.3.0
MIT License watchdog Filesystem events monitoring >=2.0
6.0.0
Apache-2.0 yore Manage legacy code with comments. >=0.3.3
0.3.4
ISC
-
-
-
-
-
- If you sponsor publicly, you're automatically added here with a link to your profile and avatar to show your support for *mkdocstrings-python*. Alternatively, if you wish to keep your sponsorship private, you'll be a silent +1. You can select visibility during checkout and change it afterwards.
-
-
-## Funding
-
-### Goals
-
-The following section lists all funding goals. Each goal contains a list of features prefixed with a checkmark symbol, denoting whether a feature is :octicons-check-circle-fill-24:{ style="color: #00e676" } already available or :octicons-check-circle-fill-24:{ style="color: var(--md-default-fg-color--lightest)" } planned, but not yet implemented. When the funding goal is hit, the features are released for general availability.
-
-```python exec="1" session="insiders" idprefix=""
-for goal in goals.values():
- if not goal.complete:
- goal.render()
-```
-
-### Goals completed
-
-This section lists all funding goals that were previously completed, which means that those features were part of Insiders, but are now generally available and can be used by all users.
-
-```python exec="1" session="insiders" idprefix=""
-for goal in goals.values():
- if goal.complete:
- goal.render()
-```
-
-## Frequently asked questions
-
-### Compatibility
-
-> We're building an open source project and want to allow outside collaborators to use *mkdocstrings-python* locally without having access to Insiders. Is this still possible?
-
-Yes. Insiders is compatible with *mkdocstrings-python*. Almost all new features and configuration options are either backward-compatible or implemented behind feature flags. Most Insiders features enhance the overall experience, though while these features add value for the users of your project, they shouldn't be necessary for previewing when making changes to content.
-
-### Payment
-
-> We don't want to pay for sponsorship every month. Are there any other options?
-
-Yes. You can sponsor on a yearly basis by [switching your GitHub account to a yearly billing cycle][billing cycle]. If for some reason you cannot do that, you could also create a dedicated GitHub account with a yearly billing cycle, which you only use for sponsoring (some sponsors already do that).
-
-If you have any problems or further questions, please reach out to insiders@pawamoy.fr.
-
-### Terms
-
-> Are we allowed to use Insiders under the same terms and conditions as *mkdocstrings-python*?
-
-Yes. Whether you're an individual or a company, you may use *mkdocstrings-python Insiders* precisely under the same terms as *mkdocstrings-python*, which are given by the [ISC license][license]. However, we kindly ask you to respect our **fair use policy**:
-
-- Please **don't distribute the source code** of Insiders. You may freely use it for public, private or commercial projects, privately fork or mirror it, but please don't make the source code public, as it would counteract the sponsorware strategy.
-- If you cancel your subscription, your access to the private repository is revoked, and you will miss out on all future updates of Insiders. However, you may **use the latest version** that's available to you **as long as you like**. Just remember that [GitHub deletes private forks][private forks].
-
-[backlog]: https://pawamoy.github.io/backlog/
-[insiders]: #what-is-insiders
-[sponsorship]: #what-sponsorships-achieve
-[sponsors]: #how-to-become-a-sponsor
-[features]: #whats-in-it-for-me
-[funding]: #funding
-[goals completed]: #goals-completed
-[github sponsor profile]: https://github.com/sponsors/pawamoy
-[billing cycle]: https://docs.github.com/en/github/setting-up-and-managing-billing-and-payments-on-github/changing-the-duration-of-your-billing-cycle
-[license]: ../license.md
-[private forks]: https://docs.github.com/en/github/setting-up-and-managing-your-github-user-account/removing-a-collaborator-from-a-personal-repository
-
-
-
diff --git a/docs/insiders/installation.md b/docs/insiders/installation.md
deleted file mode 100644
index 3e20e5d7..00000000
--- a/docs/insiders/installation.md
+++ /dev/null
@@ -1,67 +0,0 @@
----
-title: Getting started with Insiders
----
-
-# Getting started with Insiders
-
-*mkdocstrings-python Insiders* is a compatible drop-in replacement for *mkdocstrings-python*, and can be installed similarly using `pip` or `git`. Note that in order to access the Insiders repository, you need to [become an eligible sponsor][] of @pawamoy on GitHub.
-
-## Installation
-
-### with the `insiders` tool
-
-[`insiders`][insiders-tool] is a tool that helps you keep up-to-date versions of Insiders projects in the PyPI index of your choice (self-hosted, Google registry, Artifactory, etc.).
-
-**We kindly ask that you do not upload the distributions to public registries, as it is against our [Terms of use][].**
-
-### with pip (ssh/https)
-
-*mkdocstrings-python Insiders* can be installed with `pip` [using SSH][install-pip-ssh]:
-
-```bash
-pip install git+ssh://git@github.com/pawamoy-insiders/mkdocstrings-python.git
-```
-
-Or using HTTPS:
-
-```bash
-pip install git+https://${GH_TOKEN}@github.com/pawamoy-insiders/mkdocstrings-python.git
-```
-
->? NOTE: **How to get a GitHub personal access token?** The `GH_TOKEN` environment variable is a GitHub token. It can be obtained by creating a [personal access token][github-pat] for your GitHub account. It will give you access to the Insiders repository, programmatically, from the command line or GitHub Actions workflows:
->
-> 1. Go to https://github.com/settings/tokens
-> 2. Click on [Generate a new token][github-pat-new]
-> 3. Enter a name and select the [`repo`][scopes] scope
-> 4. Generate the token and store it in a safe place
->
-> Note that the personal access token must be kept secret at all times, as it allows the owner to access your private repositories.
-
-### with Git
-
-Of course, you can use *mkdocstrings-python Insiders* directly using Git:
-
-```
-git clone git@github.com:pawamoy-insiders/mkdocstrings-python
-```
-
-When cloning with Git, the package must be installed:
-
-```
-pip install -e mkdocstrings-python
-```
-
-## Upgrading
-
-When upgrading Insiders, you should always check the version of *mkdocstrings-python* which makes up the first part of the version qualifier. For example, a version like `8.x.x.4.x.x` means that Insiders `4.x.x` is currently based on `8.x.x`.
-
-If the major version increased, it's a good idea to consult the [changelog][] and go through the steps to ensure your configuration is up to date and all necessary changes have been made.
-
-[become an eligible sponsor]: ./index.md#how-to-become-a-sponsor
-[changelog]: ./changelog.md
-[github-pat]: https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token
-[github-pat-new]: https://github.com/settings/tokens/new
-[insiders-tool]: https://pawamoy.github.io/insiders-project/
-[install-pip-ssh]: https://docs.github.com/en/authentication/connecting-to-github-with-ssh
-[scopes]: https://docs.github.com/en/developers/apps/scopes-for-oauth-apps#available-scopes
-[terms of use]: ./index.md#terms
diff --git a/docs/license.md b/docs/license.md
deleted file mode 100644
index 5b25a00f..00000000
--- a/docs/license.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: License
-hide:
-- feedback
----
-
-# License
-
-```
---8<-- "LICENSE"
-```
diff --git a/docs/logo.png b/docs/logo.png
deleted file mode 100644
index 5b42478c..00000000
Binary files a/docs/logo.png and /dev/null differ
diff --git a/docs/reference/api.md b/docs/reference/api.md
deleted file mode 100644
index 587e99db..00000000
--- a/docs/reference/api.md
+++ /dev/null
@@ -1,9 +0,0 @@
----
-title: API reference
-hide:
-- navigation
----
-
-# ::: mkdocstrings_handlers.python
- options:
- show_submodules: true
diff --git a/docs/usage/configuration/docstrings.md b/docs/usage/configuration/docstrings.md
deleted file mode 100644
index ae925f23..00000000
--- a/docs/usage/configuration/docstrings.md
+++ /dev/null
@@ -1,1358 +0,0 @@
-# Docstrings options
-
-[](){#option-docstring_style}
-## `docstring_style`
-
-- **:octicons-package-24: Type [`str`][] :material-equal: `"google"`{ title="default value" }**
-
-
-The docstring style to expect when parsing docstrings.
-
-Possible values:
-
-- `"google"`: see [Google style](../docstrings/google.md).
-- `"numpy"`: see [Numpy style](../docstrings/numpy.md).
-- `"sphinx"`: see [Sphinx style](../docstrings/sphinx.md).
-- `None` (`null` or `~` in YAML): no style at all, parse as regular text.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- docstring_style: google
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.module
- options:
- docstring_style: numpy
-```
-
-WARNING: **The style is applied to the specified object only, not its members.** Local `docstring_style` options (in `:::` instructions) will only be applied to the specified object, and not its members. Instead of changing the style when rendering, we strongly recommend to *set the right style as early as possible*, for example by using the [auto-style](https://mkdocstrings.github.io/griffe/reference/docstrings/#auto-style) (sponsors only), or with a custom Griffe extension
-
-
-/// admonition | Preview
- type: preview
-
-Every style gets rendered the same way.
-Here are some docstring examples.
-
-//// tab | Google
-```python
-def greet(name: str) -> str:
- """Greet someone.
-
- Parameters:
- name: The name of the person to greet.
-
- Returns:
- A greeting message.
- """
- return f"Hello {name}!"
-```
-////
-
-//// tab | Numpy
-```python
-def greet(name: str) -> str:
- """Greet someone.
-
- Parameters
- ----------
- name
- The name of the person to greet.
-
- Returns
- -------
- A greeting message.
- """
- return f"Hello {name}!"
-```
-////
-
-//// tab | Sphinx
-```python
-def greet(name: str) -> str:
- """Greet someone.
-
- :param name: The name of the person to greet.
- :return: A greeting message.
- """
- return f"Hello {name}!"
-```
-////
-///
-
-[](){#option-docstring_options}
-## `docstring_options`
-
-- **:octicons-package-24: Type [`dict`][] :material-equal: `{}`{ title="default value" }**
-
-
-The options for the docstring parser.
-
-- [Google-style options](https://mkdocstrings.github.io/griffe/docstrings/#parser-options){ .external }
-- [Numpydoc-style options](https://mkdocstrings.github.io/griffe/docstrings/#parser-options_1){ .external }
-
-The Sphinx style does not offer any option.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- docstring_options:
- ignore_init_summary: false
- trim_doctest_flags: true
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.module
- options:
- docstring_options:
- ignore_init_summary: true
- trim_doctest_flags: false
-```
-
-```python
-class PrintOK:
- """Class docstring."""
-
- def __init__(self):
- """Initialize the instance.
-
- Examples:
- >>> PrintOK() # doctest: +NORMALIZE_WHITESPACE
- ok
- """
- print("ok")
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | Ignore init summary, trim doctest flags
-
-PrintOK
-__init__
-PrintOK
-__init__
| `gravity_forces` | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. | *required*
-
| `vacuum_type` | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. | `VacuumType.PLASMA`
-////
-
-//// tab | List
-Lists work well whatever the length of names, type annotations, descriptions, etc.
-
-**Parameters:**
-
-- `threshold` ([`int`][]) — Threshold for something.
-- `flag` ([`bool`][]) — Enable something.
-
-**Other Parameters:**
-
-- `gravity_forces` (
) — Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-- `vacuum_type` (
) — Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
-////
-
-//// tab | Spacy
-Spacy tables work better than regular tables with longer names, type annotations, descriptions, etc.,
-by reserving more horizontal space on the second column.
-
-**Parameters:**
-
-**Name** | **Description**
------------ | ---------------
-`threshold` | Threshold for something.
**TYPE:** [`int`][] DEFAULT: required
-`flag` | Enable something.
**TYPE:** [`bool`][] DEFAULT: False
-
-**Other Parameters:**
-
-**Name** | **Description**
------------ | ---------------
-`gravity_forces` | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
**TYPE:**
DEFAULT: required
-`vacuum_type` | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
**TYPE:**
DEFAULT: VacuumType.PLASMA
-////
-///
-
-[](){#option-merge_init_into_class}
-## `merge_init_into_class`
-
-- **:octicons-package-24: Type [`bool`][] :material-equal: `False`{ title="default value" }**
-
-
-Whether to merge the `__init__` method into the class' signature and docstring.
-
-By default, only the class name is rendered in headings.
-When merging, the `__init__` method parameters are added after the class name,
-like a signature, and the `__init__` method docstring is appended to the class' docstring.
-This option is well used in combination with the `ignore_init_summary` [docstring option][docstring_options],
-to discard the first line of the `__init__` docstring which is not often useful.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- docstring_options:
- ignore_init_summary: false
- merge_init_into_class: false
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.module
- options:
- docstring_options:
- ignore_init_summary: true
- merge_init_into_class: true
-```
-
-```python
-class Thing:
- """A class for things."""
-
- def __init__(self, value: int = 0):
- """Initialize a thing.
-
- Parameters:
- value: The thing's value.
- """
- self.value = value
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | Merged, summary discarded
-
-Thing(value=0)
-Thing
-__init__(value=0)
-function_without_docstring
-function_with_docstring
-ClassWithoutDocstring
-method_without_docstring
-method_with_docstring
-function_with_docstring
-ClassWithoutDocstring
-method_with_docstring
-Class
-Class
module
-
-Class
module
-
-Class
module
-
-Class
module
-
-Class
module
-module
-
-Class
Deprecated
-Class
-print_hello
-print_hello
-do_something
-do_something
-do_something
-do_something
-raise_runtime_error
-raise_runtime_error
-iter_skip
-iter_skip
-rand
-rand
-warn
-warn
-iter_skip
-iter_skip
-SomeClass
-__eq__
-__weakref__
-documented_method
-SomeClass
-documented_method
:material-equal: `False`{ title="default value" }**
-
-The `backlinks` option enables rendering of backlinks within your API documentation.
-
-When an arbitrary section of your documentation links to an API symbol, this link will be collected as a backlink, and rendered below your API symbol. In short, the API symbol will link back to the section that links to it. Such backlinks will help your users navigate the documentation, as they will immediately which functions return a specific symbol, or where a specific symbol is accepted as parameter, etc..
-
-Each backlink is a list of breadcrumbs that represent the navigation, from the root page down to the given section.
-
-The available styles for rendering backlinks are **`flat`** and **`tree`**.
-
-- **`flat`** will render backlinks as a single-layer list. This can lead to repetition of breadcrumbs.
-- **`tree`** will combine backlinks into a tree, to remove repetition of breadcrumbs.
-
-WARNING: **Global-only option.** For now, the option only works when set globally in `mkdocs.yml`.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- backlinks: tree
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | Flat
-
-////
-
-//// tab | Tree
-
-////
-///
-
-[](){#option-extensions}
-## `extensions`
-
-- **:octicons-package-24: Type
:material-equal: `[]`{ title="default value" }**
-
-
-The `extensions` option lets you enable [Griffe extensions](https://mkdocstrings.github.io/griffe/extensions/), which enhance or modify the data collected from Python sources (or compiled modules).
-
-Elements in the list can be strings or dictionaries.
-
-Strings denote the path to an extension module, like `griffe_typingdoc`, or to an extension class directly, like `griffe_typingdoc.TypingDocExtension`. When using a module path, all extensions within that module will be loaded and enabled. Strings can also be the path to a Python module, and a class name separated with `:`, like `scripts/griffe_extensions.py` or `scripts/griffe_extensions.py:MyExtension`.
-
-Dictionaries have a single key, which is the module/class path (as a dot-separated qualifier or file path and colon-separated class name, like above), and its value is another dictionary specifying options that will be passed when to class constructors when instantiating extensions.
-
-WARNING: **Packages are loaded only once.** When mkdocstrings-python collects data from a Python package (thanks to [Griffe](https://mkdocstrings.github.io/griffe/)), it collects *the entire package* and *caches it*. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. Only the extensions specified the first time the package is loaded will be used. You cannot use a different set of extensions for specific objects rendered afterwards, and you cannot deactivate extensions for objects rendered afterwards either.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- extensions:
- - griffe_sphinx
- - griffe_pydantic: {schema: true}
- - scripts/exts.py:DynamicDocstrings:
- paths: [mypkg.mymod.myobj]
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: your_package.your_module.your_func
- options:
- extensions:
- - griffe_typingdoc
-```
-
-[](){#option-extra}
-## `extra`
-
-- **:octicons-package-24: Type [`dict`][] :material-equal: `{}`{ title="default value" }**
-
-
-The `extra` option lets you inject additional variables into the Jinja context used when rendering templates. You can then use this extra context in your [overridden templates][templates].
-
-Local `extra` options will be merged into the global `extra` option:
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- extra:
- hello: world
-```
-
-```md title="in docs/some_page.md (local configuration)"
-::: your_package.your_module.your_func
- options:
- extra:
- foo: bar
-```
-
-...will inject both `hello` and `foo` into the Jinja context when rendering `your_package.your_module.your_func`.
-
-> WARNING: Previously, extra options were supported directly under the `options` key.
->
-> ```yaml
-> plugins:
-> - mkdocstrings:
-> handlers:
-> python:
-> options:
-> hello: world
-> ```
->
-> Now that we introduced optional validation of options and automatic JSON schema generation thanks to Pydantic, we require extra options to be put under `options.extra`. Extra options directly under `options` are still supported, but deprecated, and will emit deprecation warnings. Support will be removed in a future version of mkdocstrings-python.
-
-[](){#option-find_stubs_package}
-## `find_stubs_package`
-
-- **:octicons-package-24: Type [`bool`][] :material-equal: `False`{ title="default value" }**
-
-
-When looking for documentation specified in [autodoc instructions][autodoc syntax] (`::: identifier`), also look for
-the stubs package as defined in [PEP 561](https://peps.python.org/pep-0561/) if it exists. This is useful when
-most of your documentation is separately provided by such a package and not inline in your main package.
-
-WARNING: **Packages are loaded only once.** When mkdocstrings-python collects data from a Python package (thanks to [Griffe](https://mkdocstrings.github.io/griffe/)), it collects *the entire package* and *caches it*. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. The `find_stubs_package` option will therefore only have an effect the first time a package is collected, and will do nothing for objects rendered afterwards.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- find_stubs_package: true
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: your_package.your_module.your_func
- options:
- find_stubs_package: true
-```
-
-```python title="your_package/your_module.py"
-
-def your_func(a, b):
- # Function code
- ...
-
-# rest of your code
-```
-
-```python title="your_package-stubs/your_module.pyi"
-
-def your_func(a: int, b: str):
- """
-
-your_func
-////
-///
-
-[](){#option-force_inspection}
-## `force_inspection`
-
-- **:octicons-package-24: Type [`bool`][] :material-equal: `False`{ title="default value" }**
-
-
-Whether to force inspecting modules (importing them) even if their source code is available.
-
-This option is useful when you know that dynamic analysis (inspection) yields better results than static analysis. Do not use this blindly: the recommended approach is to write a Griffe extension that will improve extracted API data. See [How to selectively inspect objects](https://mkdocstrings.github.io/griffe/guide/users/how-to/selectively-inspect/).
-
-See also [`allow_inspection`](#allow_inspection).
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- force_inspection: false
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.object
- options:
- force_inspection: true
-```
-
-WARNING: **Packages are loaded only once.** When mkdocstrings-python collects data from a Python package (thanks to [Griffe](https://mkdocstrings.github.io/griffe/)), it collects *the entire package* and *caches it*. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. The `force_inspection` option will therefore only have an effect the first time a package is collected, and will do nothing for objects rendered afterwards.
-
-[](){#option-preload_modules}
-## `preload_modules`
-
-- **:octicons-package-24: Type your_func
:material-equal: `None`{ title="default value" }**
-
-
-Pre-load modules that are not specified directly in [autodoc instructions][autodoc syntax] (`::: identifier`).
-It is useful when you want to render documentation for a particular member of an object,
-and this member is imported from another package than its parent.
-
-For an imported member to be rendered,
-you need to add it to the [`__all__`][__all__] attribute of the importing module.
-The package from which the imported object originates must be accessible to the handler
-(see [Finding modules](../index.md#finding-modules)).
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- preload_modules:
- - their_package
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: your_package.your_module
- options:
- preload_modules:
- - their_package
-```
-
-```python title="your_package/your_module.py"
-from their_package.their_module import their_object
-
-__all__ = ["their_object"]
-
-# rest of your code
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With preloaded modules
-
-your_module
-their_object
-your_module
-SomeClass()
SomeBaseClass
-SomeClass()
-some_function()
-some_function()
`.
-
-If the [heading for the root object][show_root_heading] is not shown,
-then the initial heading level is used for its members.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- heading_level: 2
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.module
- options:
- heading_level: 3
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With level 3 and root heading
-
-module
(3)
-ClassA
(4)
-ClassB
(4)
-method_1
(5)
-ClassA
(3)
-ClassB
(3)
-method_1
(4) get_version
- dist
-
-To customize symbols, see [Customizing symbol types](../customization.md/#symbol-types).
-
-///
-
-[](){#option-show_root_heading}
-## `show_root_heading`
-
-- **:octicons-package-24: Type [`bool`][] :material-equal: `False`{ title="default value" }**
-
-
-Show the heading of the object at the root of the documentation tree
-(i.e. the object referenced by the identifier after `:::`).
-
-It is pretty common to inject documentation for one module per page,
-especially when following our [automatic reference pages recipe][autopages recipe].
-Since each page already has a title, usually being the module's name,
-we can spare one heading level by not showing the heading for the module itself
-(heading levels are limited to 6 by the HTML specification).
-
-Sparing that extra level can be helpful when your objects tree is deeply nested
-(e.g. method in a class in a class in a module).
-If your objects tree is not deeply nested, and you are injecting documentation
-for many different objects on a single page, it might be preferable to render
-the heading of each object.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- show_root_heading: false
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.ClassA
- options:
- show_root_heading: true
-
-::: path.to.ClassB
- options:
- show_root_heading: true
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With root heading
-
-ClassA
(2)
-method_a1
(3)
-ClassB
(2)
-method_b1
(3)
-method_a1
(2)
-method_b1
(2)
-package.module.Class.method
-method
-package.module.Class
-method
-Class
-method
-package.module.Class
-package.module.Class.method
-Class
-method
Attributes (2)
-
-module_attribute
(3)Classes (2)
-
-Class
(3)Attributes (4)
-
-class_attribute
(5)Methods (4)
-
-method
(5)
-module_attribute
(2)
-Class
(2)
-class_attribute
(3)
-method
(3),
-
,
-
,
-
or
-
types.
-See also [`show_symbol_type_toc`][show_symbol_type_toc].
-
-To customize symbols, see [Customizing symbol types](../customization.md/#symbol-types).
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- show_symbol_type_heading: true
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: package.module
- options:
- show_symbol_type_heading: false
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With symbol type in headings
-
-
module
-
attribute
-
function
-
Class
-
method
-module
-attribute
-function
-Class
-method
,
-
,
-
,
-
or
-
types.
-See also [`show_symbol_type_heading`][show_symbol_type_heading].
-
-To customize symbols, see [Customizing symbol types](../customization.md/#symbol-types).
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- show_symbol_type_toc: true
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: package.module
- options:
- show_symbol_type_toc: false
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With symbol type in ToC
-
-
-////
-
-//// tab | Without symbol type in ToC
- module
attribute
function
Class
-
-
- method
-
-////
-///
-
-[](){#option-toc_label}
-## `toc_label`
-
-- **:octicons-package-24: Type [`str`][] :material-equal: `""`{ title="default value" }**
-
-
-A custom string to use as the label in the Table of Contents for the root object (i.e. the one specified directly after the identifier `:::`). This will override the default label generated by the plugin. See also the [`heading` option][option-heading].
-
-WARNING: **Not advised to be used as a global configuration option.** This option is not advised to be used as a global configuration option, as it will override the default label for all objects. It is recommended to use it only in specific cases where you want to override the label for a specific object.
-
-NOTE: **Use with/without `heading`.** If you use this option without specifying a custom `heading`, the default heading will be used in the page, but the label in the Table of Contents will be the one you specified. By providing both an option for `heading` and `toc_label`, we leave the customization entirely up to you.
-
-```md title="in docs/some_page.md (local configuration)"
-::: path.to.module
- options:
- heading: "My fancy module"
- toc_label: "My fancy module"
-```
diff --git a/docs/usage/configuration/members.md b/docs/usage/configuration/members.md
deleted file mode 100644
index 7a5069a1..00000000
--- a/docs/usage/configuration/members.md
+++ /dev/null
@@ -1,716 +0,0 @@
-# Members options
-
-[](){#option-members}
-## `members`
-
-- **:octicons-package-24: Type
-
-
:material-equal: `None`{ title="default value" }**
-
-
-An explicit list of members to render.
-
-Only members declared in this list will be rendered.
-A member without a docstring will still be rendered,
-even if [`show_if_no_docstring`][] is set to false.
-
-The members will be rendered in the specified order,
-regardless of the value of [`members_order`][].
-**Note that members will still be grouped by category,
-according to the [`group_by_category`][] option.**
-
-Passing a falsy value (`no`, `false` in YAML) or an empty list (`[]`)
-will tell the Python handler not to render any member.
-Passing a truthy value (`yes`, `true` in YAML)
-will tell the Python handler to render every member.
-
-Any given value, except for an explicit `None` (`null` in YAML)
-will tell the handler to ignore [`filters`][] for the object's members.
-Filters will still be applied to the next layers of members (grand-children).
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- members:
- - hello # (1)
-```
-
-1. :warning: Most of the time it won't make sense to use this option at the global level.
-
-```md title="or in docs/some_page.md (local configuration)"
-::: package.module
- options:
- members:
- - ThisClass
- - this_function
-```
-
-```python title="package/module.py"
-"""Module docstring."""
-
-
-def this_function():
- """Function docstring."""
-
-
-class ThisClass:
- """Class docstring."""
-
- def method(self):
- """Method docstring."""
-
-
-this_attribute = 0
-"""Attribute docstring."""
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With `members: true`
-
-this_function
-ThisClass
-method
-this_attribute
-ThisClass
-method
:material-equal: `False`{ title="default value" }**
-
-
-An explicit list of inherited members (for classes) to render.
-
-Inherited members are always fetched from classes that are in the same package
-as the currently rendered class. To fetch members inherited from base classes,
-themselves coming from external packages, use the [`preload_modules`][preload_modules] option.
-For example, if your class inherits from Pydantic's `BaseModel`, and you want to render
-`BaseModel`'s methods in your class, use `preload_modules: [pydantic]`.
-The `pydantic` package must be available in the current environment.
-
-Passing a falsy value (`no`, `false` in YAML) or an empty list (`[]`)
-will tell the Python handler not to render any inherited member.
-Passing a truthy value (`yes`, `true` in YAML)
-will tell the Python handler to render every inherited member.
-
-When all inherited members are selected with `inherited_members: true`,
-it is possible to specify both members and inherited members in the `members` list:
-
-```yaml
-inherited_members: true
-members:
-- inherited_member_a
-- inherited_member_b
-- member_x
-- member_y
-```
-
-The alternative is not supported:
-
-```yaml
-inherited_members:
-- inherited_member_a
-- inherited_member_b
-members:
-- member_x
-- member_y
-```
-
-...because it would make members ordering ambiguous/unspecified.
-
-You can render inherited members *only* by setting `inherited_members: true`
-(or a list of inherited members) and setting `members: false`:
-
-```yaml
-inherited_members: true
-members: false
-```
-
-```yaml
-inherited_members:
-- inherited_member_a
-- inherited_member_b
-members: false
-```
-
-You can render *all declared members* and all or specific inherited members
-by leaving `members` as null (default):
-
-```yaml
-inherited_members:
-- inherited_member_a
-- inherited_member_b
-# members: null # (1)
-```
-
-1. In this case, only declared members will be subject
-to further filtering with [`filters`][filters] and [`docstrings`][show_if_no_docstring].
-
-```yaml
-inherited_members: true # (1)
-# members: null
-```
-
-1. In this case, both declared and inherited members will be subject
-to further filtering with [`filters`][filters] and [`docstrings`][show_if_no_docstring].
-
-You can render *all declared members* and all or specific inherited members,
-avoiding further filtering with [`filters`][filters] and [`docstrings`][show_if_no_docstring]
-by setting `members: true`:
-
-```yaml
-inherited_members: true
-members: true
-```
-
-```yaml
-inherited_members:
-- inherited_member_a
-- inherited_member_b
-members: true
-```
-
-The general rule is that declared or inherited members specified in lists
-are never filtered out.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- inherited_members: false
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: package.module
- options:
- inherited_members: true
-```
-
-```python title="package/module.py"
-"""Module docstring."""
-
-
-class Base:
- """Base class."""
-
- def base(self):
- """Base method."""
-
-
-class Main(Base):
- """Main class."""
-
- def main(self):
- """Main method."""
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With inherited members
-
-Base
-base
-Main
-base
-main
-Base
-base
-Main
-main
-function_a
-function_b
-function_c
-function_b
-function_a
-function_c
:material-equal: `["!^_[^_]"]`{ title="default value" }**
-
-
-A list of filters, or `"public"`.
-
-**Filtering methods**
-
-[](){#option-filters-public}
-
-[:octicons-heart-fill-24:{ .pulse } Sponsors only](../../insiders/index.md){ .insiders } —
-[:octicons-tag-24: Insiders 1.11.0](../../insiders/changelog.md#1.11.0)
-
-The `public` filtering method will include only public objects: those added to the `__all__` attribute of modules, or not starting with a single underscore. Special methods and attributes ("dunder" methods/attributes, starting and ending with two underscores), like `__init__`, `__call__`, `__mult__`, etc., are always considered public.
-
-**List of filters**
-
-Filters are regular expressions. These regular expressions are evaluated by Python
-and so must match the syntax supported by the [`re`][] module.
-A filter starting with `!` (negative filter) will exclude matching objects instead of including them.
-
-The default value (`["!^_[^_]"]`) means: *render every object, except those
-starting with one underscore, unless they start with two underscores*.
-It means that an object whose name is `hello`, `__hello`, or `__hello__`
-will be rendered, but not one whose name is `_hello`.
-
-Each filter takes precedence over the previous one. This allows for fine-grain
-selection of objects by adding more specific filters. For example, you can
-start by unselecting objects that start with `_`, and add a second filter
-that re-select objects that start with `__`. The default filters can
-therefore be rewritten like this:
-
-```yaml
-filters:
-- "!^_"
-- "^__"
-```
-
-If there are no negative filters, the handler considers that everything
-is **unselected** first, and then selects things based on your positive filters.
-If there is at least one negative filter, the handler considers that everything
-is **selected** first, and then re-selects/unselects things based on your other filters.
-In short, `filters: ["a"]` means *"keep ***nothing*** except names containing `a`"*, while
-`filters: ["!a"]` means *"keep ***everything*** except names containing `a`"*.
-
-An empty list of filters tells the Python handler to render every object.
-The [`members`][] option takes precedence over filters
-(filters will still be applied recursively to lower members in the hierarchy).
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- filters:
- - "!^_[^_]"
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: package.module
- options:
- filters: public
-```
-
-```python title="package/module.py"
-def hello():
- ...
-
-
-def _world():
- ...
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With `filters: []`
-
-hello
-_world
-hello
-_world
-attribute_c
-ClassB
-function_a
-function_d
-function_a
-ClassB
-attribute_c
-function_d
-subpackage_member
-submodule
-submodule_member
-subpackage_member
:material-equal: `False`{ title="default value" }**
-
-
-Whether to render summaries of modules, classes, functions (methods) and attributes.
-
-This option accepts a boolean (`yes`, `true`, `no`, `false` in YAML)
-or a dictionary with one or more of the following keys: `attributes`, `functions`, `classes`, `modules`,
-with booleans as values. Class methods summary is (de)activated with the `functions` key.
-By default, `summary` is false, and by extension all values are false.
-
-Examples:
-
-```yaml
-summary: true
-```
-
-```yaml
-summary: false
-```
-
-```yaml
-summary:
- attributes: false
- functions: true
- modules: false
-```
-
-Summaries will be rendered as the corresponding docstring sections.
-For example, the summary for attributes will be rendered as an Attributes docstring section.
-The section will be rendered in accordance with the [`docstring_section_style`][] option.
-If the objects appearing in the summary are also rendered on the page
-(or somewhere else on the site), their name will automatically link to their rendered documentation.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- summary: true
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.module
- options:
- summary: false
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With all summaries
-```
-::: path.to.module.MyClass
- options:
- summary: true
-```
-MyClass
-
-
-
-
-////
-
-//// tab | With methods summary only
-```
-::: path.to.module.MyClass
- options:
- summary:
- functions: true
-```
-
-MyClass
-
-
-////
-///
-
-[](){#option-show_labels}
-## `show_labels`
-
-- **:octicons-package-24: Type [`bool`][] :material-equal: `True`{ title="default value" }**
-
-
-Whether to show labels of the members.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- show_labels: true
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: package.module
- options:
- show_labels: false
-```
-
-```python title="package/module.py"
-class SomeClass:
- some_attr: int
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With labels
-
- some_attr:
- int
-
-instance-attribute
-////
-
-//// tab | Without labels
-
- some_attr:
- int
-
-////
-///
diff --git a/docs/usage/configuration/signatures.md b/docs/usage/configuration/signatures.md
deleted file mode 100644
index 98c865e5..00000000
--- a/docs/usage/configuration/signatures.md
+++ /dev/null
@@ -1,557 +0,0 @@
-# Signatures options
-
-[](){#option-annotations_path}
-## `annotations_path`
-
-- **:octicons-package-24: Type [`str`][] :material-equal: `"brief"`{ title="default value" }**
-
-
-The verbosity for annotations path.
-
-Possible values:
-
-- `brief` (recommended): render only the last component of each type path, not their full paths.
- For example, it will render `Sequence[Path]` and not `typing.Sequence[pathlib.Path]`.
- Brief annotations will cross-reference the right object anyway,
- and show the full path in a tooltip when hovering them.
-- `source`: render annotations as written in the source. For example if you imported `typing` as `t`,
- it will render `typing.Sequence` as `t.Sequence`. Each part will cross-reference the relevant object:
- `t` will link to the `typing` module and `Sequence` will link to the `Sequence` type.
-- `full`: render annotations with their full path (the opposite of brief).
- For example if you import `Sequence` and `Pattern` from `typing` and annoate something using
- `Sequence[Pattern]`, it will render as `typing.Sequence[typing.Pattern]`, with each part
- cross-referencing the corresponding object.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- annotations_path: brief
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.module
- options:
- annotations_path: source
-```
-
-
-/// admonition | Preview
- type: preview
-
-//// tab | Brief annotations
-```python
-import markdown
-import markupsafe
-
-
-def convert(text: str, md: markdown.Markdown) -> markupsafe.Markup:
- """Convert text to Markdown.
-
- Parameters:
- text: The text to convert.
- md: A Markdown instance.
-
- Returns:
- Converted markup.
- """
- return markupsafe.Markup(md.convert(text))
-```
-
-
-convert(text, md)
-convert(text, md)
markdown.Markdown
| A Markdown instance. | *required*
-
-
-convert(text, md)
markdown.Markdown
| A Markdown instance. | *required*
-
-markupsafe.Markup
| `text` | Converted markup.
-////
-///
-
-[](){#option-line_length}
-## `line_length`
-
-- **:octicons-package-24: Type [`int`][] :material-equal: `60`{ title="default value" }**
-
-
-Maximum line length when formatting code/signatures.
-
-When separating signatures from headings with the [`separate_signature`][] option,
-the Python handler will try to format the signatures using a formatter and
-the specified line length.
-
-The handler will automatically try to format using :
-
-1. [Black]
-2. [Ruff]
-
-If a formatter is not found, the handler issues an INFO log once.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- separate_signature: true
- line_length: 60
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.module
- options:
- separate_signature: true
- line_length: 80
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | Line length 60
-long_function_name
-
-////
-
-//// tab | Line length 80
-long_function_name(
- long_parameter_1="hello",
- long_parameter_2="world",
-)
long_function_name
-
-////
-///
-
-[](){#option-modernize_annotations}
-## `modernize_annotations`
-
-[:octicons-heart-fill-24:{ .pulse } Sponsors only](../../insiders/index.md){ .insiders } —
-[:octicons-tag-24: Insiders 1.8.0](../../insiders/changelog.md#1.8.0) —
-**This feature also requires
-[Griffe Insiders](https://mkdocstrings.github.io/griffe/insiders/)
-to be installed.**
-
-- **:octicons-package-24: Type [`bool`][] :material-equal: `False`{ title="default value" }**
-
-
-Modernize annotations with latest features and PEPs of the Python language.
-
-The Python language keeps evolving, and often library developers
-must continue to support a few minor versions of Python.
-Therefore they cannot use some features that were introduced
-in the latest versions.
-
-Yet this doesn't mean they can't enjoy latest features in their docs:
-Griffe allows to "modernize" expressions, for example
-by replacing `typing.Union` with [PEP 604][pep-604] type unions `|`.
-Thanks to this, mkdocstrings' Python handler
-can automatically transform type annotations into their modern equivalent.
-This improves consistency in your docs, and shows users
-how to use your code with the latest features of the language.
-
-[pep-604]: https://peps.python.org/pep-0604/
-
-Modernizations applied:
-
-- `typing.Dict[A, B]` becomes `dict[A, B]`
-- `typing.List[A]` becomes `list[A]`
-- `typing.Set[A]` becomes `set[A]`
-- `typing.Tuple[A]` becomes `tuple[A]`
-- `typing.Union[A, B]` becomes `A | B`
-- `typing.Optional[A]` becomes `A | None`
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- modernize_annotations: true
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.object
- options:
- modernize_annotations: false
-```
-
-/// admonition | Preview
- type: preview
-
-```python
---8<-- "docs/snippets/package/modern.py"
-```
-
-//// tab | Unchanged annotations
-
-```md exec="on"
-::: package.modern.example
- options:
- modernize_annotations: false
- show_symbol_type_heading: false
- show_labels: false
-```
-
-////
-
-//// tab | Modernized annotations
-
-```md exec="on"
-::: package.modern.example
- options:
- modernize_annotations: true
- show_symbol_type_heading: false
- show_labels: false
-```
-
-////
-
-///
-
-[](){#option-show_signature}
-## `show_signature`
-
-- **:octicons-package-24: Type [`bool`][] :material-equal: `True`{ title="default value" }**
-
-
-Show methods and functions signatures.
-
-Without it, just the function/method name is rendered.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- show_signature: true
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.module
- options:
- show_signature: false
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With signature
-long_function_name(long_parameter_1="hello", long_parameter_2="world")
-function(param1, param2=None)
-function
function
-
-```python
-function(
- param1: list[int | float],
- param2: bool | None = None,
-) -> float
-```
-
-function
-
-```python
-function(param1, param2=None)
-```
-
-function
-
-```python
-function(param1, param2=None)
-```
-
-
-function(param1, param2=None)
function
-
-
-```python
-@overload
-function(param1: int): ...
-
-@overload
-function(param1: str): ...
-
-function(param1: str | int)
-```
-Function docstring.
-
-////
-//// tab | Without overloads
-function
-
-```python
-function(param1: str | int)
-```
-Function docstring.
-
-////
-///
-
-[](){#option-signature_crossrefs}
-## `signature_crossrefs`
-
-[:octicons-tag-24: Insiders 1.0.0](../../insiders/changelog.md#1.0.0)
-
-Whether to render cross-references for type annotations in signatures.
-
-When signatures are separated from headings with the [`separate_signature`][] option
-and type annotations are shown with the [`show_signature_annotations`][] option,
-this option will render a cross-reference (link) for each type annotation in the signature.
-
-```yaml title="in mkdocs.yml (global configuration)"
-plugins:
-- mkdocstrings:
- handlers:
- python:
- options:
- separate_signature: true
- show_signature_annotations: true
- signature_crossrefs: false
-```
-
-```md title="or in docs/some_page.md (local configuration)"
-::: path.to.module
- options:
- separate_signature: true
- show_signature_annotations: true
- signature_crossrefs: true
-```
-
-/// admonition | Preview
- type: preview
-
-//// tab | With signature cross-references
-do_format_code
-
-do_format_code
-do_format_code(code: str, line_length: int) -> str
-
-
-
-
-
-
-
-
-
-
mkdocstrings-python
Installation¤
# PEP 621 dependencies declaration
+# adapt to your dependencies manager
+[project]
+dependencies = [
+ "mkdocstrings[python]>=0.18",
+]
+
# PEP 621 dependencies declaration
+# adapt to your dependencies manager
+[project]
+dependencies = [
+ "mkdocstrings-python",
+]
+
Preview¤
Features¤
__init__
methods.Note:
or Warning:
will be transformed to their admonition equivalent. We do not support nested admonitions in docstrings![this object][package.module.object]
or directly with [package.module.object][]
Changelog¤
mkdocstrings-python Insiders¤
1.12.1 May 24, 2025¤
1.12.0 March 24, 2025¤
1.11.0 March 20, 2025¤
1.10.0 March 10, 2025¤
1.9.1 December 26, 2024¤
1.9.0 September 03, 2024¤
1.8.3 June 19, 2024¤
1.8.2 May 09, 2024¤
1.8.1 April 19, 2024¤
1.8.0 March 24, 2024¤
1.7.0 March 24, 2024¤
1.6.0 January 30, 2024¤
parameter_headings
option to render headings for parameters (enabling permalinks and ToC/inventory entries).1.5.1 September 12, 2023¤
1.5.0 September 05, 2023¤
1.4.0 August 27, 2023¤
1.3.0 August 24, 2023¤
1.2.0 August 20, 2023¤
1.1.4 July 17, 2023¤
1.1.3 July 17, 2023¤
1.1.2 July 15, 2023¤
1.1.1 June 27, 2023¤
1.1.0 June 4, 2023¤
1.0.0 May 10, 2023¤
format_signature
filter has changed. The templates that must be updated: class.html
, expression.html
, function.html
and signature.html
.
Insiders¤
What is Insiders?¤
What sponsorships achieve¤
What's in it for me?¤
__all__
public
@warnings.deprecated
(PEP 702)How to become a sponsor¤
Funding ¤
Goals¤
$ 1,000 — GraviFridge Fluid Renewal¤
@warnings.deprecated
(PEP 702)$ 1,500 — HyperLamp Navigation Tips¤
$ 2,000 — FusionDrive Ejection Configuration¤
public
__all__
Goals completed¤
$ 500 — PlasmaVac User Guide¤
Frequently asked questions¤
Compatibility¤
Payment¤
Terms¤
Getting started with Insiders¤
pip
or git
. Note that in order to access the Insiders repository, you need to become an eligible sponsor of @pawamoy on GitHub.Installation¤
with the
insiders
tool¤insiders
is a tool that helps you keep up-to-date versions of Insiders projects in the PyPI index of your choice (self-hosted, Google registry, Artifactory, etc.).with pip (ssh/https)¤
pip
using SSH:pip install git+ssh://git@github.com/pawamoy-insiders/mkdocstrings-python.git
+
pip install git+https://${GH_TOKEN}@github.com/pawamoy-insiders/mkdocstrings-python.git
+
How to get a GitHub personal access token?
GH_TOKEN
environment variable is a GitHub token. It can be obtained by creating a personal access token for your GitHub account. It will give you access to the Insiders repository, programmatically, from the command line or GitHub Actions workflows:
repo
scopewith Git¤
git clone git@github.com:pawamoy-insiders/mkdocstrings-python
+
pip install -e mkdocstrings-python
+
Upgrading¤
8.x.x.4.x.x
means that Insiders 4.x.x
is currently based on 8.x.x
.=m[t]&&t
License¤
ISC License
+
+Copyright (c) 2021, Timothée Mazzucotelli
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
python ¤
config
– mkdocstrings_handlers.python
directly.handler
– mkdocstrings_handlers.python
directly.rendering
– mkdocstrings_handlers.python
directly.
AutoStyleOptions
– AutorefsHook
– GoogleStyleOptions
– Inventory
– NumpyStyleOptions
– PerStyleOptions
– PythonConfig
– PythonHandler
– PythonInputConfig
– PythonInputOptions
– PythonOptions
– SphinxStyleOptions
– SummaryOption
–
do_as_attributes_section
– do_as_classes_section
– do_as_functions_section
– do_as_modules_section
– do_backlink_tree
– do_crossref
– do_filter_objects
– do_format_attribute
– do_format_code
– do_format_signature
– do_get_template
– do_multi_crossref
– do_order_members
– do_split_path
– get_handler
– PythonHandler
.
Order
– Tree
– do_stash_crossref
–
Order
module-attribute
¤Order = Literal['__all__', 'alphabetical', 'source']
+
__all__
: order members according to __all__
module attributes, if declared;alphabetical
: order members alphabetically;source
: order members as they appear in the source file.
Tree
module-attribute
¤
do_stash_crossref
module-attribute
¤do_stash_crossref = _StashCrossRefFilter()
+
AutoStyleOptions
dataclass
¤AutoStyleOptions(
+ method: Literal["heuristics", "max_sections"] = "heuristics",
+ style_order: list[str] = lambda: ["sphinx", "google", "numpy"](),
+ default: str | None = None,
+ per_style_options: PerStyleOptions = PerStyleOptions(),
+)
+
from_data
–
default
(str | None
) – method
(Literal['heuristics', 'max_sections']
) – per_style_options
(PerStyleOptions
) – style_order
(list[str]
) –
default
class-attribute
instance-attribute
¤default: str | None = None
+
method
class-attribute
instance-attribute
¤method: Literal['heuristics', 'max_sections'] = 'heuristics'
+
per_style_options
class-attribute
instance-attribute
¤per_style_options: PerStyleOptions = field(default_factory=PerStyleOptions)
+
style_order
class-attribute
instance-attribute
¤
AutorefsHook ¤
+ flowchart TD
+ mkdocstrings_handlers.python.AutorefsHook[AutorefsHook]
+
+
+
+ click mkdocstrings_handlers.python.AutorefsHook href "" "mkdocstrings_handlers.python.AutorefsHook"
+
(current_object
¤Object | Alias
) –
(config
¤dict[str, Any]
) –
expand_identifier
– get_context
–
config
– current_object
–
current_object
instance-attribute
¤current_object = current_object
+
expand_identifier ¤
expand_identifier(identifier: str) -> str
+
GoogleStyleOptions
dataclass
¤GoogleStyleOptions(
+ ignore_init_summary: bool = False,
+ returns_multiple_items: bool = True,
+ returns_named_value: bool = True,
+ returns_type_in_property_summary: bool = False,
+ receives_multiple_items: bool = True,
+ receives_named_value: bool = True,
+ trim_doctest_flags: bool = True,
+ warn_unknown_params: bool = True,
+)
+
ignore_init_summary
(bool
) – __init__
methods' docstrings.receives_multiple_items
(bool
) – Receives
sections.receives_named_value
(bool
) – Receives
section items as name and description, rather than type and description.returns_multiple_items
(bool
) – Yields
and Returns
sections.returns_named_value
(bool
) – Yields
and Returns
section items as name and description, rather than type and description.returns_type_in_property_summary
(bool
) – str: Summary of the property
.trim_doctest_flags
(bool
) – warn_unknown_params
(bool
) –
ignore_init_summary
class-attribute
instance-attribute
¤ignore_init_summary: bool = False
+
__init__
methods' docstrings.
receives_multiple_items
class-attribute
instance-attribute
¤receives_multiple_items: bool = True
+
Receives
sections.
receives_named_value
class-attribute
instance-attribute
¤receives_named_value: bool = True
+
Receives
section items as name and description, rather than type and description.(int): Description.
. Names are optional: name (int): Description.
. When false, parentheses are optional but the items cannot be named: int: Description
.
returns_multiple_items
class-attribute
instance-attribute
¤returns_multiple_items: bool = True
+
Yields
and Returns
sections.
returns_named_value
class-attribute
instance-attribute
¤returns_named_value: bool = True
+
Yields
and Returns
section items as name and description, rather than type and description.(int): Description.
. Names are optional: name (int): Description.
. When false, parentheses are optional but the items cannot be named: int: Description
.
returns_type_in_property_summary
class-attribute
instance-attribute
¤returns_type_in_property_summary: bool = False
+
str: Summary of the property
.
Inventory
dataclass
¤
NumpyStyleOptions
dataclass
¤NumpyStyleOptions(
+ ignore_init_summary: bool = False,
+ trim_doctest_flags: bool = True,
+ warn_unknown_params: bool = True,
+)
+
ignore_init_summary
(bool
) – __init__
methods' docstrings.trim_doctest_flags
(bool
) – warn_unknown_params
(bool
) –
ignore_init_summary
class-attribute
instance-attribute
¤ignore_init_summary: bool = False
+
__init__
methods' docstrings.
PerStyleOptions
dataclass
¤PerStyleOptions(
+ google: GoogleStyleOptions = GoogleStyleOptions(),
+ numpy: NumpyStyleOptions = NumpyStyleOptions(),
+ sphinx: SphinxStyleOptions = SphinxStyleOptions(),
+)
+
from_data
–
google
(GoogleStyleOptions
) – numpy
(NumpyStyleOptions
) – sphinx
(SphinxStyleOptions
) –
google
class-attribute
instance-attribute
¤google: GoogleStyleOptions = field(default_factory=GoogleStyleOptions)
+
numpy
class-attribute
instance-attribute
¤numpy: NumpyStyleOptions = field(default_factory=NumpyStyleOptions)
+
sphinx
class-attribute
instance-attribute
¤sphinx: SphinxStyleOptions = field(default_factory=SphinxStyleOptions)
+
PythonConfig
dataclass
¤PythonConfig(
+ inventories: list[Inventory] = list(),
+ paths: list[str] = lambda: ["."](),
+ load_external_modules: bool | None = None,
+ options: dict[str, Any] = dict(),
+ locale: str | None = None,
+)
+
+ flowchart TD
+ mkdocstrings_handlers.python.PythonConfig[PythonConfig]
+ mkdocstrings_handlers.python._internal.config.PythonInputConfig[PythonInputConfig]
+
+ mkdocstrings_handlers.python._internal.config.PythonInputConfig --> mkdocstrings_handlers.python.PythonConfig
+
+
+
+ click mkdocstrings_handlers.python.PythonConfig href "" "mkdocstrings_handlers.python.PythonConfig"
+ click mkdocstrings_handlers.python._internal.config.PythonInputConfig href "" "mkdocstrings_handlers.python._internal.config.PythonInputConfig"
+
inventories
(list[Inventory]
) – load_external_modules
(bool | None
) – locale
(str | None
) – options
(dict[str, Any]
) – paths
(list[str]
) –
inventories
class-attribute
instance-attribute
¤
load_external_modules
class-attribute
instance-attribute
¤load_external_modules: bool | None = None
+
locale
class-attribute
instance-attribute
¤locale: str | None = None
+
options
class-attribute
instance-attribute
¤
paths
class-attribute
instance-attribute
¤
PythonHandler ¤
+ flowchart TD
+ mkdocstrings_handlers.python.PythonHandler[PythonHandler]
+ mkdocstrings._internal.handlers.base.BaseHandler[BaseHandler]
+
+ mkdocstrings._internal.handlers.base.BaseHandler --> mkdocstrings_handlers.python.PythonHandler
+
+
+
+ click mkdocstrings_handlers.python.PythonHandler href "" "mkdocstrings_handlers.python.PythonHandler"
+ click mkdocstrings._internal.handlers.base.BaseHandler href "" "mkdocstrings._internal.handlers.base.BaseHandler"
+
(config
¤PythonConfig
) –
(base_dir
¤Path
) –
(**kwargs
¤Any
, default: {}
) –
collect
– do_convert_markdown
– do_heading
– get_aliases
– get_extended_templates_dirs
– get_headings
– get_inventory_urls
– get_options
– get_templates_dir
– load_inventory
– in_file
.normalize_extension_paths
– render
– render_backlinks
– teardown
– update_env
–
base_dir
– config
– custom_templates
– domain
(str
) – enable_inventory
(bool
) – objects.inv
Sphinx inventory file.env
– extra_css
(str
) – fallback_config
(dict
) – fallback_theme
(str
) – global_options
– mkdocs.yml
).md
(Markdown
) – mdx
– mdx_config
– name
(str
) – outer_layer
(bool
) – theme
–
custom_templates
instance-attribute
¤custom_templates = custom_templates
+
domain
class-attribute
¤domain: str = 'py'
+
enable_inventory
class-attribute
¤enable_inventory: bool = True
+
objects.inv
Sphinx inventory file.
env
instance-attribute
¤env = Environment(autoescape=True, loader=FileSystemLoader(paths), auto_reload=False)
+
fallback_config
class-attribute
¤fallback_config: dict = {}
+
global_options
instance-attribute
¤global_options = global_options
+
mkdocs.yml
).
mdx_config
instance-attribute
¤mdx_config = mdx_config
+
collect ¤
collect(identifier: str, options: PythonOptions) -> CollectorItem
+
(identifier
¤str
) –
(options
¤PythonOptions
) –
CollectorItem
–
do_convert_markdown ¤
do_convert_markdown(
+ text: str,
+ heading_level: int,
+ html_id: str = "",
+ *,
+ strip_paragraph: bool = False,
+ autoref_hook: AutorefsHookInterface | None = None
+) -> Markup
+
(text
¤str
) –
(heading_level
¤int
) –
(html_id
¤str
, default: ''
) –
(strip_paragraph
¤bool
, default: False
) – <p>
tag from around the whole output.
Markup
–
do_heading ¤
do_heading(
+ content: Markup,
+ heading_level: int,
+ *,
+ role: str | None = None,
+ hidden: bool = False,
+ toc_label: str | None = None,
+ **attributes: str
+) -> Markup
+
(content
¤Markup
) –
(heading_level
¤int
) – h3
).
(role
¤str | None
, default: None
) –
(hidden
¤bool
, default: False
) –
(toc_label
¤str | None
, default: None
) –
(**attributes
¤str
, default: {}
) –
Markup
–
get_aliases ¤
get_aliases(identifier: str) -> tuple[str, ...]
+
get_extended_templates_dirs ¤
get_headings ¤
get_inventory_urls ¤
get_options ¤
get_options(local_options: Mapping[str, Any]) -> HandlerOptions
+
HandlerOptions
–
get_templates_dir ¤
ModuleNotFoundError
– FileNotFoundError
–
Path
–
load_inventory
staticmethod
¤load_inventory(
+ in_file: BinaryIO,
+ url: str,
+ base_url: str | None = None,
+ domains: list[str] | None = None,
+ **kwargs: Any
+) -> Iterator[tuple[str, str]]
+
in_file
.load_inventory
"protocol" (see mkdocstrings.plugin
).
(in_file
¤BinaryIO
) –
(url
¤str
) – base_url
).
(base_url
¤str | None
, default: None
) –
(domains
¤list[str] | None
, default: None
) –
(**kwargs
¤Any
, default: {}
) –
normalize_extension_paths ¤
normalize_extension_paths(extensions: Sequence) -> Sequence
+
render ¤
render(data: CollectorItem, options: PythonOptions) -> str
+
(data
¤CollectorItem
) –
(options
¤PythonOptions
) –
str
–
render_backlinks ¤
teardown ¤
teardown() -> None
+
PythonInputConfig
dataclass
¤PythonInputConfig(
+ inventories: list[str | Inventory] = list(),
+ paths: list[str] = lambda: ["."](),
+ load_external_modules: bool | None = None,
+ options: PythonInputOptions = PythonInputOptions(),
+ locale: str | None = None,
+)
+
inventories
(list[str | Inventory]
) – load_external_modules
(bool | None
) – locale
(str | None
) – options
(PythonInputOptions
) – paths
(list[str]
) –
inventories
class-attribute
instance-attribute
¤
load_external_modules
class-attribute
instance-attribute
¤load_external_modules: bool | None = None
+
locale
class-attribute
instance-attribute
¤locale: str | None = None
+
options
class-attribute
instance-attribute
¤options: PythonInputOptions = field(default_factory=PythonInputOptions)
+
paths
class-attribute
instance-attribute
¤
PythonInputOptions
dataclass
¤PythonInputOptions(
+ allow_inspection: bool = True,
+ force_inspection: bool = False,
+ annotations_path: Literal["brief", "source", "full"] = "brief",
+ backlinks: Literal["flat", "tree", False] = False,
+ docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+ ) = None,
+ docstring_section_style: Literal["table", "list", "spacy"] = "table",
+ docstring_style: Literal["auto", "google", "numpy", "sphinx"] | None = "google",
+ extensions: list[str | dict[str, Any]] = list(),
+ filters: list[str] | Literal["public"] = lambda: copy()(),
+ find_stubs_package: bool = False,
+ group_by_category: bool = True,
+ heading: str = "",
+ heading_level: int = 2,
+ inherited_members: bool | list[str] = False,
+ line_length: int = 60,
+ members: list[str] | bool | None = None,
+ members_order: Order | list[Order] = "alphabetical",
+ merge_init_into_class: bool = False,
+ modernize_annotations: bool = False,
+ parameter_headings: bool = False,
+ preload_modules: list[str] = list(),
+ relative_crossrefs: bool = False,
+ scoped_crossrefs: bool = False,
+ show_overloads: bool = True,
+ separate_signature: bool = False,
+ show_bases: bool = True,
+ show_category_heading: bool = False,
+ show_docstring_attributes: bool = True,
+ show_docstring_classes: bool = True,
+ show_docstring_description: bool = True,
+ show_docstring_examples: bool = True,
+ show_docstring_functions: bool = True,
+ show_docstring_modules: bool = True,
+ show_docstring_other_parameters: bool = True,
+ show_docstring_parameters: bool = True,
+ show_docstring_raises: bool = True,
+ show_docstring_receives: bool = True,
+ show_docstring_returns: bool = True,
+ show_docstring_warns: bool = True,
+ show_docstring_yields: bool = True,
+ show_if_no_docstring: bool = False,
+ show_inheritance_diagram: bool = False,
+ show_labels: bool = True,
+ show_object_full_path: bool = False,
+ show_root_full_path: bool = True,
+ show_root_heading: bool = False,
+ show_root_members_full_path: bool = False,
+ show_root_toc_entry: bool = True,
+ show_signature_annotations: bool = False,
+ show_signature: bool = True,
+ show_source: bool = True,
+ show_submodules: bool = False,
+ show_symbol_type_heading: bool = False,
+ show_symbol_type_toc: bool = False,
+ signature_crossrefs: bool = False,
+ summary: bool | SummaryOption = SummaryOption(),
+ toc_label: str = "",
+ unwrap_annotated: bool = False,
+ extra: dict[str, Any] = dict(),
+)
+
allow_inspection
(bool
) – annotations_path
(Literal['brief', 'source', 'full']
) – brief
(recommended), source
(as written in the source), or full
.backlinks
(Literal['flat', 'tree', False]
) – docstring_options
(GoogleStyleOptions | NumpyStyleOptions | SphinxStyleOptions | AutoStyleOptions | None
) – docstring_section_style
(Literal['table', 'list', 'spacy']
) – docstring_style
(Literal['auto', 'google', 'numpy', 'sphinx'] | None
) – auto
, google
, numpy
, sphinx
, or None
.extensions
(list[str | dict[str, Any]]
) – extra
(dict[str, Any]
) – filters
(list[str] | Literal['public']
) – "public"
.find_stubs_package
(bool
) – force_inspection
(bool
) – group_by_category
(bool
) – heading
(str
) – heading_level
(int
) – inherited_members
(bool | list[str]
) – line_length
(int
) – members
(list[str] | bool | None
) – members_order
(Order | list[Order]
) – merge_init_into_class
(bool
) – __init__
method into the class' signature and docstring.modernize_annotations
(bool
) – Optional[str]
into str | None
.parameter_headings
(bool
) – preload_modules
(list[str]
) – ::: identifier
).relative_crossrefs
(bool
) – scoped_crossrefs
(bool
) – separate_signature
(bool
) – show_bases
(bool
) – show_category_heading
(bool
) – show_docstring_attributes
(bool
) – show_docstring_classes
(bool
) – show_docstring_description
(bool
) – show_docstring_examples
(bool
) – show_docstring_functions
(bool
) – show_docstring_modules
(bool
) – show_docstring_other_parameters
(bool
) – show_docstring_parameters
(bool
) – show_docstring_raises
(bool
) – show_docstring_receives
(bool
) – show_docstring_returns
(bool
) – show_docstring_warns
(bool
) – show_docstring_yields
(bool
) – show_if_no_docstring
(bool
) – show_inheritance_diagram
(bool
) – show_labels
(bool
) – show_object_full_path
(bool
) – show_overloads
(bool
) – show_root_full_path
(bool
) – show_root_heading
(bool
) – show_root_members_full_path
(bool
) – show_root_toc_entry
(bool
) – show_signature
(bool
) – show_signature_annotations
(bool
) – show_source
(bool
) – show_submodules
(bool
) – show_symbol_type_heading
(bool
) – show_symbol_type_toc
(bool
) – signature_crossrefs
(bool
) – summary
(bool | SummaryOption
) – toc_label
(str
) – unwrap_annotated
(bool
) – Annotated
types to show only the type without the annotations.
allow_inspection
class-attribute
instance-attribute
¤allow_inspection: bool = True
+
annotations_path
class-attribute
instance-attribute
¤annotations_path: Literal['brief', 'source', 'full'] = 'brief'
+
brief
(recommended), source
(as written in the source), or full
.
backlinks
class-attribute
instance-attribute
¤backlinks: Literal['flat', 'tree', False] = False
+
docstring_options
class-attribute
instance-attribute
¤docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+) = None
+
docstring_section_style
class-attribute
instance-attribute
¤docstring_section_style: Literal['table', 'list', 'spacy'] = 'table'
+
docstring_style
class-attribute
instance-attribute
¤docstring_style: Literal['auto', 'google', 'numpy', 'sphinx'] | None = 'google'
+
auto
, google
, numpy
, sphinx
, or None
.
extensions
class-attribute
instance-attribute
¤
extra
class-attribute
instance-attribute
¤
filters
class-attribute
instance-attribute
¤"public"
.!
will exclude matching objects instead of including them. The members
option takes precedence over filters
(filters will still be applied recursively to lower members in the hierarchy).public
method will include only public objects: those added to __all__
or not starting with an underscore (except for special methods/attributes).
find_stubs_package
class-attribute
instance-attribute
¤find_stubs_package: bool = False
+
force_inspection
class-attribute
instance-attribute
¤force_inspection: bool = False
+
group_by_category
class-attribute
instance-attribute
¤group_by_category: bool = True
+
heading
class-attribute
instance-attribute
¤heading: str = ''
+
heading_level
class-attribute
instance-attribute
¤heading_level: int = 2
+
inherited_members
class-attribute
instance-attribute
¤members
. If false or empty list, do not select any inherited member.
line_length
class-attribute
instance-attribute
¤line_length: int = 60
+
members
class-attribute
instance-attribute
¤
members_order
class-attribute
instance-attribute
¤
__all__
: order members according to __all__
module attributes, if declared;alphabetical
: order members alphabetically;source
: order members as they appear in the source file.__all__
is a module-only attribute, it can't be used to sort class members, therefore the members_order
option accepts a list of ordering methods, indicating ordering preferences.
merge_init_into_class
class-attribute
instance-attribute
¤merge_init_into_class: bool = False
+
__init__
method into the class' signature and docstring.
modernize_annotations
class-attribute
instance-attribute
¤modernize_annotations: bool = False
+
Optional[str]
into str | None
.
parameter_headings
class-attribute
instance-attribute
¤parameter_headings: bool = False
+
preload_modules
class-attribute
instance-attribute
¤::: identifier
).__all__
attribute of the importing module.
relative_crossrefs
class-attribute
instance-attribute
¤relative_crossrefs: bool = False
+
scoped_crossrefs
class-attribute
instance-attribute
¤scoped_crossrefs: bool = False
+
separate_signature
class-attribute
instance-attribute
¤separate_signature: bool = False
+
show_bases
class-attribute
instance-attribute
¤show_bases: bool = True
+
show_category_heading
class-attribute
instance-attribute
¤show_category_heading: bool = False
+
show_docstring_attributes
class-attribute
instance-attribute
¤show_docstring_attributes: bool = True
+
show_docstring_classes
class-attribute
instance-attribute
¤show_docstring_classes: bool = True
+
show_docstring_description
class-attribute
instance-attribute
¤show_docstring_description: bool = True
+
show_docstring_examples
class-attribute
instance-attribute
¤show_docstring_examples: bool = True
+
show_docstring_functions
class-attribute
instance-attribute
¤show_docstring_functions: bool = True
+
show_docstring_modules
class-attribute
instance-attribute
¤show_docstring_modules: bool = True
+
show_docstring_other_parameters
class-attribute
instance-attribute
¤show_docstring_other_parameters: bool = True
+
show_docstring_parameters
class-attribute
instance-attribute
¤show_docstring_parameters: bool = True
+
show_docstring_raises
class-attribute
instance-attribute
¤show_docstring_raises: bool = True
+
show_docstring_receives
class-attribute
instance-attribute
¤show_docstring_receives: bool = True
+
show_docstring_returns
class-attribute
instance-attribute
¤show_docstring_returns: bool = True
+
show_docstring_warns
class-attribute
instance-attribute
¤show_docstring_warns: bool = True
+
show_docstring_yields
class-attribute
instance-attribute
¤show_docstring_yields: bool = True
+
show_if_no_docstring
class-attribute
instance-attribute
¤show_if_no_docstring: bool = False
+
show_inheritance_diagram
class-attribute
instance-attribute
¤show_inheritance_diagram: bool = False
+
show_labels
class-attribute
instance-attribute
¤show_labels: bool = True
+
show_object_full_path
class-attribute
instance-attribute
¤show_object_full_path: bool = False
+
show_overloads
class-attribute
instance-attribute
¤show_overloads: bool = True
+
show_root_full_path
class-attribute
instance-attribute
¤show_root_full_path: bool = True
+
show_root_heading
class-attribute
instance-attribute
¤show_root_heading: bool = False
+
:::
.
show_root_members_full_path
class-attribute
instance-attribute
¤show_root_members_full_path: bool = False
+
show_root_toc_entry
class-attribute
instance-attribute
¤show_root_toc_entry: bool = True
+
show_signature
class-attribute
instance-attribute
¤show_signature: bool = True
+
show_signature_annotations
class-attribute
instance-attribute
¤show_signature_annotations: bool = False
+
show_source
class-attribute
instance-attribute
¤show_source: bool = True
+
show_submodules
class-attribute
instance-attribute
¤show_submodules: bool = False
+
show_symbol_type_heading
class-attribute
instance-attribute
¤show_symbol_type_heading: bool = False
+
show_symbol_type_toc
class-attribute
instance-attribute
¤show_symbol_type_toc: bool = False
+
signature_crossrefs
class-attribute
instance-attribute
¤signature_crossrefs: bool = False
+
summary
class-attribute
instance-attribute
¤summary: bool | SummaryOption = field(default_factory=SummaryOption)
+
toc_label
class-attribute
instance-attribute
¤toc_label: str = ''
+
PythonOptions
dataclass
¤PythonOptions(
+ allow_inspection: bool = True,
+ force_inspection: bool = False,
+ annotations_path: Literal["brief", "source", "full"] = "brief",
+ backlinks: Literal["flat", "tree", False] = False,
+ docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+ ) = None,
+ docstring_section_style: Literal["table", "list", "spacy"] = "table",
+ docstring_style: Literal["auto", "google", "numpy", "sphinx"] | None = "google",
+ extensions: list[str | dict[str, Any]] = list(),
+ filters: list[tuple[Pattern, bool]] | Literal["public"] = lambda: [
+ (compile(removeprefix("!")), startswith("!")) for filtr in _DEFAULT_FILTERS
+ ](),
+ find_stubs_package: bool = False,
+ group_by_category: bool = True,
+ heading: str = "",
+ heading_level: int = 2,
+ inherited_members: bool | list[str] = False,
+ line_length: int = 60,
+ members: list[str] | bool | None = None,
+ members_order: Order | list[Order] = "alphabetical",
+ merge_init_into_class: bool = False,
+ modernize_annotations: bool = False,
+ parameter_headings: bool = False,
+ preload_modules: list[str] = list(),
+ relative_crossrefs: bool = False,
+ scoped_crossrefs: bool = False,
+ show_overloads: bool = True,
+ separate_signature: bool = False,
+ show_bases: bool = True,
+ show_category_heading: bool = False,
+ show_docstring_attributes: bool = True,
+ show_docstring_classes: bool = True,
+ show_docstring_description: bool = True,
+ show_docstring_examples: bool = True,
+ show_docstring_functions: bool = True,
+ show_docstring_modules: bool = True,
+ show_docstring_other_parameters: bool = True,
+ show_docstring_parameters: bool = True,
+ show_docstring_raises: bool = True,
+ show_docstring_receives: bool = True,
+ show_docstring_returns: bool = True,
+ show_docstring_warns: bool = True,
+ show_docstring_yields: bool = True,
+ show_if_no_docstring: bool = False,
+ show_inheritance_diagram: bool = False,
+ show_labels: bool = True,
+ show_object_full_path: bool = False,
+ show_root_full_path: bool = True,
+ show_root_heading: bool = False,
+ show_root_members_full_path: bool = False,
+ show_root_toc_entry: bool = True,
+ show_signature_annotations: bool = False,
+ show_signature: bool = True,
+ show_source: bool = True,
+ show_submodules: bool = False,
+ show_symbol_type_heading: bool = False,
+ show_symbol_type_toc: bool = False,
+ signature_crossrefs: bool = False,
+ summary: SummaryOption = SummaryOption(),
+ toc_label: str = "",
+ unwrap_annotated: bool = False,
+ extra: dict[str, Any] = dict(),
+)
+
+ flowchart TD
+ mkdocstrings_handlers.python.PythonOptions[PythonOptions]
+ mkdocstrings_handlers.python._internal.config.PythonInputOptions[PythonInputOptions]
+
+ mkdocstrings_handlers.python._internal.config.PythonInputOptions --> mkdocstrings_handlers.python.PythonOptions
+
+
+
+ click mkdocstrings_handlers.python.PythonOptions href "" "mkdocstrings_handlers.python.PythonOptions"
+ click mkdocstrings_handlers.python._internal.config.PythonInputOptions href "" "mkdocstrings_handlers.python._internal.config.PythonInputOptions"
+
allow_inspection
(bool
) – annotations_path
(Literal['brief', 'source', 'full']
) – brief
(recommended), source
(as written in the source), or full
.backlinks
(Literal['flat', 'tree', False]
) – docstring_options
(GoogleStyleOptions | NumpyStyleOptions | SphinxStyleOptions | AutoStyleOptions | None
) – docstring_section_style
(Literal['table', 'list', 'spacy']
) – docstring_style
(Literal['auto', 'google', 'numpy', 'sphinx'] | None
) – auto
, google
, numpy
, sphinx
, or None
.extensions
(list[str | dict[str, Any]]
) – extra
(dict[str, Any]
) – filters
(list[tuple[Pattern, bool]] | Literal['public']
) – "public"
.find_stubs_package
(bool
) – force_inspection
(bool
) – group_by_category
(bool
) – heading
(str
) – heading_level
(int
) – inherited_members
(bool | list[str]
) – line_length
(int
) – members
(list[str] | bool | None
) – members_order
(Order | list[Order]
) – merge_init_into_class
(bool
) – __init__
method into the class' signature and docstring.modernize_annotations
(bool
) – Optional[str]
into str | None
.parameter_headings
(bool
) – preload_modules
(list[str]
) – ::: identifier
).relative_crossrefs
(bool
) – scoped_crossrefs
(bool
) – separate_signature
(bool
) – show_bases
(bool
) – show_category_heading
(bool
) – show_docstring_attributes
(bool
) – show_docstring_classes
(bool
) – show_docstring_description
(bool
) – show_docstring_examples
(bool
) – show_docstring_functions
(bool
) – show_docstring_modules
(bool
) – show_docstring_other_parameters
(bool
) – show_docstring_parameters
(bool
) – show_docstring_raises
(bool
) – show_docstring_receives
(bool
) – show_docstring_returns
(bool
) – show_docstring_warns
(bool
) – show_docstring_yields
(bool
) – show_if_no_docstring
(bool
) – show_inheritance_diagram
(bool
) – show_labels
(bool
) – show_object_full_path
(bool
) – show_overloads
(bool
) – show_root_full_path
(bool
) – show_root_heading
(bool
) – show_root_members_full_path
(bool
) – show_root_toc_entry
(bool
) – show_signature
(bool
) – show_signature_annotations
(bool
) – show_source
(bool
) – show_submodules
(bool
) – show_symbol_type_heading
(bool
) – show_symbol_type_toc
(bool
) – signature_crossrefs
(bool
) – summary
(SummaryOption
) – toc_label
(str
) – unwrap_annotated
(bool
) – Annotated
types to show only the type without the annotations.
allow_inspection
class-attribute
instance-attribute
¤allow_inspection: bool = True
+
annotations_path
class-attribute
instance-attribute
¤annotations_path: Literal['brief', 'source', 'full'] = 'brief'
+
brief
(recommended), source
(as written in the source), or full
.
backlinks
class-attribute
instance-attribute
¤backlinks: Literal['flat', 'tree', False] = False
+
docstring_options
class-attribute
instance-attribute
¤docstring_options: (
+ GoogleStyleOptions
+ | NumpyStyleOptions
+ | SphinxStyleOptions
+ | AutoStyleOptions
+ | None
+) = None
+
docstring_section_style
class-attribute
instance-attribute
¤docstring_section_style: Literal['table', 'list', 'spacy'] = 'table'
+
docstring_style
class-attribute
instance-attribute
¤docstring_style: Literal['auto', 'google', 'numpy', 'sphinx'] | None = 'google'
+
auto
, google
, numpy
, sphinx
, or None
.
extensions
class-attribute
instance-attribute
¤
extra
class-attribute
instance-attribute
¤
filters
class-attribute
instance-attribute
¤filters: list[tuple[Pattern, bool]] | Literal["public"] = field(
+ default_factory=lambda: [
+ (compile(removeprefix("!")), startswith("!")) for filtr in _DEFAULT_FILTERS
+ ]
+)
+
"public"
.
find_stubs_package
class-attribute
instance-attribute
¤find_stubs_package: bool = False
+
force_inspection
class-attribute
instance-attribute
¤force_inspection: bool = False
+
group_by_category
class-attribute
instance-attribute
¤group_by_category: bool = True
+
heading
class-attribute
instance-attribute
¤heading: str = ''
+
heading_level
class-attribute
instance-attribute
¤heading_level: int = 2
+
inherited_members
class-attribute
instance-attribute
¤members
. If false or empty list, do not select any inherited member.
line_length
class-attribute
instance-attribute
¤line_length: int = 60
+
members
class-attribute
instance-attribute
¤
members_order
class-attribute
instance-attribute
¤
__all__
: order members according to __all__
module attributes, if declared;alphabetical
: order members alphabetically;source
: order members as they appear in the source file.__all__
is a module-only attribute, it can't be used to sort class members, therefore the members_order
option accepts a list of ordering methods, indicating ordering preferences.
merge_init_into_class
class-attribute
instance-attribute
¤merge_init_into_class: bool = False
+
__init__
method into the class' signature and docstring.
modernize_annotations
class-attribute
instance-attribute
¤modernize_annotations: bool = False
+
Optional[str]
into str | None
.
parameter_headings
class-attribute
instance-attribute
¤parameter_headings: bool = False
+
preload_modules
class-attribute
instance-attribute
¤::: identifier
).__all__
attribute of the importing module.
relative_crossrefs
class-attribute
instance-attribute
¤relative_crossrefs: bool = False
+
scoped_crossrefs
class-attribute
instance-attribute
¤scoped_crossrefs: bool = False
+
separate_signature
class-attribute
instance-attribute
¤separate_signature: bool = False
+
show_bases
class-attribute
instance-attribute
¤show_bases: bool = True
+
show_category_heading
class-attribute
instance-attribute
¤show_category_heading: bool = False
+
show_docstring_attributes
class-attribute
instance-attribute
¤show_docstring_attributes: bool = True
+
show_docstring_classes
class-attribute
instance-attribute
¤show_docstring_classes: bool = True
+
show_docstring_description
class-attribute
instance-attribute
¤show_docstring_description: bool = True
+
show_docstring_examples
class-attribute
instance-attribute
¤show_docstring_examples: bool = True
+
show_docstring_functions
class-attribute
instance-attribute
¤show_docstring_functions: bool = True
+
show_docstring_modules
class-attribute
instance-attribute
¤show_docstring_modules: bool = True
+
show_docstring_other_parameters
class-attribute
instance-attribute
¤show_docstring_other_parameters: bool = True
+
show_docstring_parameters
class-attribute
instance-attribute
¤show_docstring_parameters: bool = True
+
show_docstring_raises
class-attribute
instance-attribute
¤show_docstring_raises: bool = True
+
show_docstring_receives
class-attribute
instance-attribute
¤show_docstring_receives: bool = True
+
show_docstring_returns
class-attribute
instance-attribute
¤show_docstring_returns: bool = True
+
show_docstring_warns
class-attribute
instance-attribute
¤show_docstring_warns: bool = True
+
show_docstring_yields
class-attribute
instance-attribute
¤show_docstring_yields: bool = True
+
show_if_no_docstring
class-attribute
instance-attribute
¤show_if_no_docstring: bool = False
+
show_inheritance_diagram
class-attribute
instance-attribute
¤show_inheritance_diagram: bool = False
+
show_labels
class-attribute
instance-attribute
¤show_labels: bool = True
+
show_object_full_path
class-attribute
instance-attribute
¤show_object_full_path: bool = False
+
show_overloads
class-attribute
instance-attribute
¤show_overloads: bool = True
+
show_root_full_path
class-attribute
instance-attribute
¤show_root_full_path: bool = True
+
show_root_heading
class-attribute
instance-attribute
¤show_root_heading: bool = False
+
:::
.
show_root_members_full_path
class-attribute
instance-attribute
¤show_root_members_full_path: bool = False
+
show_root_toc_entry
class-attribute
instance-attribute
¤show_root_toc_entry: bool = True
+
show_signature
class-attribute
instance-attribute
¤show_signature: bool = True
+
show_signature_annotations
class-attribute
instance-attribute
¤show_signature_annotations: bool = False
+
show_source
class-attribute
instance-attribute
¤show_source: bool = True
+
show_submodules
class-attribute
instance-attribute
¤show_submodules: bool = False
+
show_symbol_type_heading
class-attribute
instance-attribute
¤show_symbol_type_heading: bool = False
+
show_symbol_type_toc
class-attribute
instance-attribute
¤show_symbol_type_toc: bool = False
+
signature_crossrefs
class-attribute
instance-attribute
¤signature_crossrefs: bool = False
+
summary
class-attribute
instance-attribute
¤summary: SummaryOption = field(default_factory=SummaryOption)
+
toc_label
class-attribute
instance-attribute
¤toc_label: str = ''
+
unwrap_annotated
class-attribute
instance-attribute
¤unwrap_annotated: bool = False
+
Annotated
types to show only the type without the annotations.
coerce
classmethod
¤coerce(**data: Any) -> MutableMapping[str, Any]
+
SummaryOption
dataclass
¤SummaryOption(
+ attributes: bool = False,
+ functions: bool = False,
+ classes: bool = False,
+ modules: bool = False,
+)
+
attributes
(bool
) – classes
(bool
) – functions
(bool
) – modules
(bool
) –
attributes
class-attribute
instance-attribute
¤attributes: bool = False
+
classes
class-attribute
instance-attribute
¤classes: bool = False
+
do_as_attributes_section ¤
do_as_attributes_section(
+ context: Context, attributes: Sequence[Attribute], *, check_public: bool = True
+) -> DocstringSectionAttributes
+
(attributes
¤Sequence[Attribute]
) –
(check_public
¤bool
, default: True
) –
DocstringSectionAttributes
–
do_as_classes_section ¤
do_as_classes_section(
+ context: Context, classes: Sequence[Class], *, check_public: bool = True
+) -> DocstringSectionClasses
+
do_as_functions_section ¤
do_as_functions_section(
+ context: Context, functions: Sequence[Function], *, check_public: bool = True
+) -> DocstringSectionFunctions
+
do_as_modules_section ¤
do_as_modules_section(
+ context: Context, modules: Sequence[Module], *, check_public: bool = True
+) -> DocstringSectionModules
+
do_backlink_tree ¤
do_backlink_tree(backlinks: list[Backlink]) -> Tree[BacklinkCrumb]
+
do_crossref ¤
do_filter_objects ¤
do_filter_objects(
+ objects_dictionary: dict[str, Object | Alias],
+ *,
+ filters: Sequence[tuple[Pattern, bool]] | Literal["public"] | None = None,
+ members_list: bool | list[str] | None = None,
+ inherited_members: bool | list[str] = False,
+ keep_no_docstrings: bool = True
+) -> list[Object | Alias]
+
(objects_dictionary
¤dict[str, Object | Alias]
) –
(filters
¤Sequence[tuple[Pattern, bool]] | Literal['public'] | None
, default: None
) – "public"
. Each element is a tuple: a pattern, and a boolean indicating whether to reject the object if the pattern matches.
(members_list
¤bool | list[str] | None
, default: None
) –
(inherited_members
¤bool | list[str]
, default: False
) –
(keep_no_docstrings
¤bool
, default: True
) –
do_format_attribute ¤
do_format_attribute(
+ context: Context,
+ attribute_path: Markup,
+ attribute: Attribute,
+ line_length: int,
+ *,
+ crossrefs: bool = False
+) -> str
+
(context
¤Context
) –
(attribute_path
¤Markup
) –
(attribute
¤Attribute
) –
(line_length
¤int
) –
(crossrefs
¤bool
, default: False
) –
str
–
do_format_signature ¤
do_format_signature(
+ context: Context,
+ callable_path: Markup,
+ function: Function,
+ line_length: int,
+ *,
+ annotations: bool | None = None,
+ crossrefs: bool = False
+) -> str
+
(context
¤Context
) –
(callable_path
¤Markup
) –
(function
¤Function
) –
(line_length
¤int
) –
(annotations
¤bool | None
, default: None
) –
(crossrefs
¤bool
, default: False
) –
str
–
do_get_template ¤
do_multi_crossref ¤
do_order_members ¤
do_order_members(
+ members: Sequence[Object | Alias],
+ order: Order | list[Order],
+ members_list: bool | list[str] | None,
+) -> Sequence[Object | Alias]
+
do_split_path ¤
get_handler ¤
get_handler(
+ handler_config: MutableMapping[str, Any], tool_config: MkDocsConfig, **kwargs: Any
+) -> PythonHandler
+
PythonHandler
.
(handler_config
¤MutableMapping[str, Any]
) –
(tool_config
¤MkDocsConfig
) –
PythonHandler
– PythonHandler
.
config ¤
mkdocstrings_handlers.python
directly.
handler ¤
mkdocstrings_handlers.python
directly.
rendering ¤
mkdocstrings_handlers.python
directly.# PEP 621 dependencies declaration\n# adapt to your dependencies manager\n[project]\ndependencies = [\n \"mkdocstrings[python]>=0.18\",\n]\n
"},{"location":"#preview","title":"Preview","text":""},{"location":"#features","title":"Features","text":"# PEP 621 dependencies declaration\n# adapt to your dependencies manager\n[project]\ndependencies = [\n \"mkdocstrings-python\",\n]\n
"},{"location":"changelog/","title":"Changelog","text":"__init__
methods.Note:
or Warning:
will be transformed to their admonition equivalent. We do not support nested admonitions in docstrings![this object][package.module.object]
or directly with [package.module.object][]
"},{"location":"changelog/#11610-2025-04-03","title":"1.16.10 - 2025-04-03","text":"__init__
(7f95686 by Timoth\u00e9e Mazzucotelli). Issue-mkdocstrings-757
"},{"location":"changelog/#1169-2025-04-03","title":"1.16.9 - 2025-04-03","text":"base_url
being ignored (8870eb9 by Stefan Mejlgaard). Issue-268, PR-269
"},{"location":"changelog/#1168-2025-03-24","title":"1.16.8 - 2025-03-24","text":"toc_label
option in a few missing places (337b46b by Timoth\u00e9e Mazzucotelli). Issue-267
"},{"location":"changelog/#code-refactoring","title":"Code Refactoring","text":"
"},{"location":"changelog/#1167-2025-03-20","title":"1.16.7 - 2025-03-20","text":"__all__
value (bfb5b30 by Timoth\u00e9e Mazzucotelli). Issue-219
"},{"location":"changelog/#1166-2025-03-18","title":"1.16.6 - 2025-03-18","text":"public
filtering method feature (fde2019 by Timoth\u00e9e Mazzucotelli). Issue-78mkdocstrings_handler.python
module.
"},{"location":"changelog/#code-refactoring_2","title":"Code Refactoring","text":"
"},{"location":"changelog/#1165-2025-03-10","title":"1.16.5 - 2025-03-10","text":"
"},{"location":"changelog/#1164-2025-03-10","title":"1.16.4 - 2025-03-10","text":"
"},{"location":"changelog/#1163-2025-03-08","title":"1.16.3 - 2025-03-08","text":"
"},{"location":"changelog/#bug-fixes_6","title":"Bug Fixes","text":"
"},{"location":"changelog/#code-refactoring_4","title":"Code Refactoring","text":"
"},{"location":"changelog/#1162-2025-02-24","title":"1.16.2 - 2025-02-24","text":"mkdocstrings
module (da2ba13 by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#1161-2025-02-18","title":"1.16.1 - 2025-02-18","text":"
"},{"location":"changelog/#1160-2025-02-17","title":"1.16.0 - 2025-02-17","text":"sys.path
(0f497d1 by Timoth\u00e9e Mazzucotelli). Issue-248
"},{"location":"changelog/#1151-2025-02-17","title":"1.15.1 - 2025-02-17","text":"
"},{"location":"changelog/#1150-2025-02-11","title":"1.15.0 - 2025-02-11","text":"Annotated
regardless of signature_crossrefs
(d809f1a by Timoth\u00e9e Mazzucotelli). Issue-249
"},{"location":"changelog/#1146-2025-02-07","title":"1.14.6 - 2025-02-07","text":"
"},{"location":"changelog/#code-refactoring_5","title":"Code Refactoring","text":"
"},{"location":"changelog/#1145-2025-02-05","title":"1.14.5 - 2025-02-05","text":"
"},{"location":"changelog/#1144-2025-02-04","title":"1.14.4 - 2025-02-04","text":"
"},{"location":"changelog/#1143-2025-02-04","title":"1.14.3 - 2025-02-04","text":"eval-type-backport
is not available (for modern typing syntax support) (0de0e5e by Timoth\u00e9e Mazzucotelli). Issue-241
"},{"location":"changelog/#1142-2025-02-03","title":"1.14.2 - 2025-02-03","text":"__init__
method, set extra fields in get_options
(477b9e4 by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#1141-2025-02-03","title":"1.14.1 - 2025-02-03","text":"
"},{"location":"changelog/#1140-2025-02-03","title":"1.14.0 - 2025-02-03","text":"
"},{"location":"changelog/#code-refactoring_6","title":"Code Refactoring","text":"heading
and toc_label
options (7cabacf by Yann Van Crombrugge). Issue-mkdocstrings-725, PR-236force_inspection
option to force dynamic analysis (83823be by Uchechukwu Orji). Issue-94, PR-231
"},{"location":"changelog/#1130-2024-12-26","title":"1.13.0 - 2024-12-26","text":"
"},{"location":"changelog/#bug-fixes_15","title":"Bug Fixes","text":"
"},{"location":"changelog/#code-refactoring_7","title":"Code Refactoring","text":"show_signature_annotations
option for attribute signatures in headings (e93d166 by Timoth\u00e9e Mazzucotelli). Issue-griffe-pydantic#9__init__
overloads when merging into class (af6fab3 by Timoth\u00e9e Mazzucotelli). Issue-212linenums
config for pycon
examples in docstrings (53eb82a by Timoth\u00e9e Mazzucotelli). Related-to-#192__init__
docstring into class docstring if such inherited method wasn't selected through the inherited_members
configuration option (6c5b5c3 by Timoth\u00e9e Mazzucotelli). Issue-189
"},{"location":"changelog/#1122-2024-10-19","title":"1.12.2 - 2024-10-19","text":"*
and **
outside of cross-references in signatures (c4506f0 by Timoth\u00e9e Mazzucotelli). Needed-for-PR-216
"},{"location":"changelog/#1121-2024-10-14","title":"1.12.1 - 2024-10-14","text":"
"},{"location":"changelog/#1120-2024-10-12","title":"1.12.0 - 2024-10-12","text":"
"},{"location":"changelog/#features_4","title":"Features","text":"
"},{"location":"changelog/#code-refactoring_8","title":"Code Refactoring","text":"
"},{"location":"changelog/#1111-2024-09-03","title":"1.11.1 - 2024-09-03","text":"
"},{"location":"changelog/#1110-2024-09-03","title":"1.11.0 - 2024-09-03","text":"relative_crossrefs
and scoped_crossrefs
insiders features (dd8b014 by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#1109-2024-08-30","title":"1.10.9 - 2024-08-30","text":"
"},{"location":"changelog/#code-refactoring_10","title":"Code Refactoring","text":"
"},{"location":"changelog/#1108-2024-08-14","title":"1.10.8 - 2024-08-14","text":"
"},{"location":"changelog/#1107-2024-07-25","title":"1.10.7 - 2024-07-25","text":"
"},{"location":"changelog/#1106-2024-07-25","title":"1.10.6 - 2024-07-25","text":"
"},{"location":"changelog/#code-refactoring_11","title":"Code Refactoring","text":"
"},{"location":"changelog/#1105-2024-06-19","title":"1.10.5 - 2024-06-19","text":"
"},{"location":"changelog/#1104-2024-06-18","title":"1.10.4 - 2024-06-18","text":"
"},{"location":"changelog/#1103-2024-05-22","title":"1.10.3 - 2024-05-22","text":"load_external_modules
default value to None
to support new default mode in Griffe (ae5896c by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#1102-2024-05-16","title":"1.10.2 - 2024-05-16","text":"
"},{"location":"changelog/#1101-2024-05-14","title":"1.10.1 - 2024-05-14","text":"
"},{"location":"changelog/#code-refactoring_13","title":"Code Refactoring","text":"once
when logging messages (2bc156b by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#1100-2024-04-19","title":"1.10.0 - 2024-04-19","text":"*.html
top-level templates to extend the *.html.jinja
base templates (a8c540e by Timoth\u00e9e Mazzucotelli). Issue-151*.html
base templates to extend their *.html.jinja
counterpart, while overriding the logs
block to issue a logging message (info) stating that extending *.html
templates is deprecated (e6f1b9c by Timoth\u00e9e Mazzucotelli). Issue-151*.html.jinja
top-level (overridable) templates, extending their base counterpart (7c14924 by Timoth\u00e9e Mazzucotelli). Issue-151*.html.jinja
base templates, which are copies of *.html
templates, with an additional logs
block, and using the updated get_template
filter (eced9a5 by Timoth\u00e9e Mazzucotelli). Issue-151get_template
filter to support both *.html
and *.html.jinja
templates, logging a message (info) when *.html
templates are overridden by users (3546fd7 by Timoth\u00e9e Mazzucotelli). Issue-151
"},{"location":"changelog/#bug-fixes_22","title":"Bug Fixes","text":"doc-section-title
and doc-section-item
in docstring sections (d6e1d68 by Timoth\u00e9e Mazzucotelli). Issue-17
"},{"location":"changelog/#192-2024-04-02","title":"1.9.2 - 2024-04-02","text":"
"},{"location":"changelog/#191-2024-04-02","title":"1.9.1 - 2024-04-02","text":"
"},{"location":"changelog/#code-refactoring_14","title":"Code Refactoring","text":"
"},{"location":"changelog/#190-2024-03-13","title":"1.9.0 - 2024-03-13","text":"
"},{"location":"changelog/#features_7","title":"Features","text":"
"},{"location":"changelog/#code-refactoring_15","title":"Code Refactoring","text":"show_labels
option to show/hide labels (eaf9b82 by Viicos). Issue #120, PR #130
"},{"location":"changelog/#180-2024-01-08","title":"1.8.0 - 2024-01-08","text":"
"},{"location":"changelog/#175-2023-11-21","title":"1.7.5 - 2023-11-21","text":"
griffe-inherited-docstrings
, a Griffe extension for inheriting docstringsgriffe2md
, a tool to output API docs to Markdown using Griffe
"},{"location":"changelog/#174-2023-11-12","title":"1.7.4 - 2023-11-12","text":"
"},{"location":"changelog/#code-refactoring_16","title":"Code Refactoring","text":"
"},{"location":"changelog/#173-2023-10-09","title":"1.7.3 - 2023-10-09","text":"
"},{"location":"changelog/#172-2023-10-05","title":"1.7.2 - 2023-10-05","text":"
"},{"location":"changelog/#code-refactoring_17","title":"Code Refactoring","text":"
"},{"location":"changelog/#171-2023-09-28","title":"1.7.1 - 2023-09-28","text":"
"},{"location":"changelog/#code-refactoring_18","title":"Code Refactoring","text":"
"},{"location":"changelog/#170-2023-09-14","title":"1.7.0 - 2023-09-14","text":"__init__
methods when merging docstrings (b97d51f by Timoth\u00e9e Mazzucotelli). Issue #106
"},{"location":"changelog/#163-2023-09-11","title":"1.6.3 - 2023-09-11","text":"Annotated
types (53db04b by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#code-refactoring_19","title":"Code Refactoring","text":"load_external_modules
a global-only option (266f41f by Timoth\u00e9e Mazzucotelli). Issue #87
"},{"location":"changelog/#162-2023-09-05","title":"1.6.2 - 2023-09-05","text":"
"},{"location":"changelog/#161-2023-09-04","title":"1.6.1 - 2023-09-04","text":"
"},{"location":"changelog/#160-2023-08-27","title":"1.6.0 - 2023-08-27","text":"
"},{"location":"changelog/#code-refactoring_20","title":"Code Refactoring","text":"doc-signature
CSS class to separate signature code blocks (b6c648f by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#152-2023-08-25","title":"1.5.2 - 2023-08-25","text":"format_attribute
filter, preparing for cross-refs in attribute signatures (8f0ade2 by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#code-refactoring_21","title":"Code Refactoring","text":"
"},{"location":"changelog/#151-2023-08-24","title":"1.5.1 - 2023-08-24","text":"
"},{"location":"changelog/#150-2023-08-20","title":"1.5.0 - 2023-08-20","text":"
"},{"location":"changelog/#140-2023-08-18","title":"1.4.0 - 2023-08-18","text":"
"},{"location":"changelog/#code-refactoring_23","title":"Code Refactoring","text":"
"},{"location":"changelog/#130-2023-08-06","title":"1.3.0 - 2023-08-06","text":"crossref
and multi_crossref
filters (4fe3d20 by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#features_13","title":"Features","text":"
"},{"location":"changelog/#121-2023-07-20","title":"1.2.1 - 2023-07-20","text":"
"},{"location":"changelog/#120-2023-07-14","title":"1.2.0 - 2023-07-14","text":"
"},{"location":"changelog/#bug-fixes_34","title":"Bug Fixes","text":"
"},{"location":"changelog/#112-2023-06-04","title":"1.1.2 - 2023-06-04","text":"None
as return annotation of class signatures (3d8724e by Timoth\u00e9e Mazzucotelli). Issue #85
"},{"location":"changelog/#111-2023-06-04","title":"1.1.1 - 2023-06-04","text":"
"},{"location":"changelog/#code-refactoring_25","title":"Code Refactoring","text":"
"},{"location":"changelog/#110-2023-05-25","title":"1.1.0 - 2023-05-25","text":"
"},{"location":"changelog/#100-2023-05-11","title":"1.0.0 - 2023-05-11","text":"
format_signature
filter has changed. If you override templates in your project to customize the output, make sure to update the following templates so that they use the new filter signature:
class.html
expression.html
function.html
signature.html
"},{"location":"changelog/#0101-2023-05-07","title":"0.10.1 - 2023-05-07","text":"
"},{"location":"changelog/#0100-2023-05-07","title":"0.10.0 - 2023-05-07","text":"
"},{"location":"changelog/#bug-fixes_38","title":"Bug Fixes","text":"
"},{"location":"changelog/#code-refactoring_26","title":"Code Refactoring","text":"
"},{"location":"changelog/#090-2023-04-03","title":"0.9.0 - 2023-04-03","text":"
"},{"location":"changelog/#bug-fixes_39","title":"Bug Fixes","text":"
"},{"location":"changelog/#code-refactoring_27","title":"Code Refactoring","text":"
"},{"location":"changelog/#083-2023-01-04","title":"0.8.3 - 2023-01-04","text":"
"},{"location":"changelog/#082-2022-11-19","title":"0.8.2 - 2022-11-19","text":"
"},{"location":"changelog/#081-2022-11-19","title":"0.8.1 - 2022-11-19","text":"
"},{"location":"changelog/#080-2022-11-13","title":"0.8.0 - 2022-11-13","text":"
"},{"location":"changelog/#code-refactoring_29","title":"Code Refactoring","text":"
"},{"location":"changelog/#071-2022-06-12","title":"0.7.1 - 2022-06-12","text":"
"},{"location":"changelog/#070-2022-05-28","title":"0.7.0 - 2022-05-28","text":"/
in signatures (3e927e4 by Timoth\u00e9e Mazzucotelli). Issue #25
"},{"location":"changelog/#features_19","title":"Features","text":"
"},{"location":"changelog/#bug-fixes_43","title":"Bug Fixes","text":"
"},{"location":"changelog/#code-refactoring_30","title":"Code Refactoring","text":"
"},{"location":"changelog/#066-2022-03-06","title":"0.6.6 - 2022-03-06","text":"show_submodules
by default (480d0c3 by Timoth\u00e9e Mazzucotelli).show_root_full_path
for ToC entries (hidden headings) (8f4c853 by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#065-2022-02-24","title":"0.6.5 - 2022-02-24","text":"self
and cls
parameters (7f579d1 by Timoth\u00e9e Mazzucotelli). Issue #7pycon
for examples code blocks (6545900 by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#064-2022-02-22","title":"0.6.4 - 2022-02-22","text":"
"},{"location":"changelog/#063-2022-02-20","title":"0.6.3 - 2022-02-20","text":"
"},{"location":"changelog/#062-2022-02-17","title":"0.6.2 - 2022-02-17","text":"
"},{"location":"changelog/#061-2022-02-17","title":"0.6.1 - 2022-02-17","text":"
"},{"location":"changelog/#060-2022-02-13","title":"0.6.0 - 2022-02-13","text":"
"},{"location":"changelog/#bug-fixes_49","title":"Bug Fixes","text":"__init__
methods' docstrings into their classes' docstrings (1b4d1c0 by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#code-refactoring_32","title":"Code Refactoring","text":"
"},{"location":"changelog/#054-2022-02-13","title":"0.5.4 - 2022-02-13","text":"
"},{"location":"changelog/#053-2022-02-08","title":"0.5.3 - 2022-02-08","text":"
"},{"location":"changelog/#052-2022-02-05","title":"0.5.2 - 2022-02-05","text":"null
as docstring style (f526816 by Timoth\u00e9e Mazzucotelli). Issue #2
"},{"location":"changelog/#051-2022-02-03","title":"0.5.1 - 2022-02-03","text":"
"},{"location":"changelog/#code-refactoring_33","title":"Code Refactoring","text":"
"},{"location":"changelog/#050-2022-02-03","title":"0.5.0 - 2022-02-03","text":"
"},{"location":"changelog/#bug-fixes_52","title":"Bug Fixes","text":"
"},{"location":"changelog/#code-refactoring_34","title":"Code Refactoring","text":"docstring_section_style
option (774988e by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#041-2022-02-01","title":"0.4.1 - 2022-02-01","text":"
"},{"location":"changelog/#040-2022-02-01","title":"0.4.0 - 2022-02-01","text":"
"},{"location":"changelog/#030-2022-01-14","title":"0.3.0 - 2022-01-14","text":"mkdocstrings_handlers
namespace (23c9023 by Timoth\u00e9e Mazzucotelli).
"},{"location":"changelog/#dependencies_5","title":"Dependencies","text":"
"},{"location":"changelog/#code-refactoring_36","title":"Code Refactoring","text":"
"},{"location":"changelog/#020-2021-12-28","title":"0.2.0 - 2021-12-28","text":"
"},{"location":"changelog/#features_23","title":"Features","text":"
"},{"location":"changelog/#bug-fixes_54","title":"Bug Fixes","text":"show_signature
rendering option (0f07c2e by Will Da Silva).
"},{"location":"changelog/#010-2021-12-19","title":"0.1.0 - 2021-12-19","text":"
"},{"location":"changelog/#bug-fixes_55","title":"Bug Fixes","text":"
"},{"location":"changelog/#code-refactoring_37","title":"Code Refactoring","text":"
"},{"location":"code_of_conduct/","title":"Contributor Covenant Code of Conduct","text":""},{"location":"code_of_conduct/#our-pledge","title":"Our Pledge","text":"
"},{"location":"code_of_conduct/#enforcement-responsibilities","title":"Enforcement Responsibilities","text":"cd python\nmake setup\n
curl -LsSf https://astral.sh/uv/install.sh | sh\n
make setup
again, or simply uv sync
.make help
to see all the available actions!make
Python script, located in the scripts
directory. Try running make
to show the available commands and tasks. The commands do not need the Python dependencies to be installed, while the tasks do. The cross-platform tasks are written in Python, thanks to duty.
git switch -c feature-or-bugfix-name
make format
to auto-format the codemake check
to check everything (fix any warning)make test
to run the tests (fix any issue)
make docs
<type>[(scope)]: Subject\n\n[Body]\n
build
: About packaging, building wheels, etc.chore
: About packaging or repo/files management.ci
: About Continuous Integration.deps
: Dependencies update.docs
: About documentation.feat
: New feature.fix
: Bug fix.perf
: About performance.refactor
: Changes that are not features or bug fixes.style
: A change in code style/format.tests
: About tests.Body.\n\nIssue #10: https://github.com/namespace/project/issues/10\nRelated to PR namespace/other-project#15: https://github.com/namespace/other-project/pull/15\n
:
. We expect a full URI for each trailer, not just GitHub autolinks (for example, full GitHub URLs for commits and issues, not the hash or the #issue-number).# SHA is the SHA of the commit you want to fix\ngit commit --fixup=SHA\n
git rebase -i --autosquash main\n
git push -f\n
>=8.0.0, >=7.0
8.1.8
BSD License colorama Cross-platform colored terminal text. >=0.4
0.4.6
BSD License ghp-import Copy your docs directly to the gh-pages branch. >=1.0
2.1.0
Apache Software License griffe Signatures for entire Python programs. Extract the structure, the frame, the skeleton of your project, to generate API documentation or find breaking changes in your API. >=1.6.2
1.7.3.1.3.1
ISC Jinja2 A very fast and expressive template engine. >=2.11.1, >=2.10
3.1.6
BSD License Markdown Python implementation of John Gruber's Markdown. >=3.3.3, >=3.3
3.7
BSD License MarkupSafe Safely add untrusted strings to HTML/XML markup. >=2.0.1, >=2.0
3.0.2
BSD License mergedeep A deep merge function for \ud83d\udc0d. ~=1.3, >=1.3.4
1.3.4
MIT License mkdocs Project documentation with Markdown. >=1.6, >=1.1
1.6.1
BSD-2-Clause mkdocs-autorefs Automatically link across pages in MkDocs. >=1.4
1.4.1
ISC mkdocs-get-deps MkDocs extension that lists all dependencies according to a mkdocs.yml file >=0.2.0
0.2.0
MIT mkdocstrings Automatic documentation from sources, for MkDocs. >=0.29, >=0.28.3
0.29.0
ISC packaging Core utilities for Python packages >=22.0, >=20.5
24.2
Apache Software License + BSD License pathspec Utility library for gitignore style pattern matching of file paths. >=0.9.0, >=0.11.1
0.12.1
Mozilla Public License 2.0 (MPL 2.0) platformdirs A small Python package for determining appropriate platform-specific dirs, e.g. a user data dir
. >=2.2.0, >=2
4.3.6
MIT pymdown-extensions Extension pack for Python Markdown. >=9, >=6.3
10.14.3
MIT python-dateutil Extensions to the standard Python datetime module >=2.8.1
2.9.0.post0
BSD License + Apache Software License PyYAML YAML parser and emitter for Python >=5.1
6.0.2
MIT pyyaml_env_tag A custom YAML tag for referencing environment variables in YAML files. >=0.1
0.1
MIT License six Python 2 and 3 compatibility utilities >=1.5, >=1.15, <2
1.17.0
MIT typing_extensions Backported and Experimental Type Hints for Python 3.8+ >=4.0.1, >=4.0
4.12.2
Python Software Foundation License watchdog Filesystem events monitoring >=2.0
6.0.0
Apache-2.0"},{"location":"credits/#exec-1--development-dependencies","title":"Development dependencies","text":"Project Summary Version (accepted) Version (last resolved) License annotated-types Reusable constraint types to use with typing.Annotated >=0.6.0
0.7.0
MIT License ansimarkup Produce colored terminal text with an xml-like markup ~=1.4
1.5.0
Revised BSD License appdirs A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\". >=1.4
1.4.4
MIT asttokens Annotate AST trees with source code positions >=2.0.5
3.0.0
Apache 2.0 babel Internationalization utilities >=2.7.0
2.17.0
BSD-3-Clause backrefs A wrapper around re and regex that adds additional back references. ~=5.7.post1
5.8
MIT beautifulsoup4 Screen-scraping library >=4.12.3
4.13.3
MIT License black The uncompromising code formatter. >=25.1
25.1.0
MIT build A simple, correct Python build frontend >=1.2
1.2.2.post1
MIT License cappa Declarative CLI argument parser. >=0.22
0.26.6
? certifi Python package for providing Mozilla's CA Bundle. >=2017.4.17
2025.1.31
MPL-2.0 cffi Foreign Function Interface for Python calling C code. >=1.12
1.17.1
MIT charset-normalizer The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet. >=2, <4
3.4.1
MIT click Composable command line interface toolkit >=8.0.0, >=7.0
8.1.8
BSD License colorama Cross-platform colored terminal text. >=0.4
0.4.6
BSD License coverage Code coverage measurement for Python >=7.5
7.7.0
Apache-2.0 cryptography cryptography is a package which provides cryptographic recipes and primitives to Python developers. >=2.0
44.0.2
Apache-2.0 OR BSD-3-Clause csscompressor A python port of YUI CSS Compressor >=0.9.5
0.9.5
BSD docutils Docutils -- Python Documentation Utilities >=0.21.2
0.21.2
Public Domain + Python Software Foundation License + BSD License + GNU General Public License (GPL) duty A simple task runner. >=1.6
1.6.0
ISC execnet execnet: rapid multi-Python deployment >=2.1
2.1.1
MIT executing Get the currently executing AST node of a frame, and other information >=2.2.0
2.2.0
MIT failprint Run a command, print its output only if it fails. >=0.11, !=1.0.0
1.0.3
ISC ghp-import Copy your docs directly to the gh-pages branch. >=1.0
2.1.0
Apache Software License git-changelog Automatic Changelog generator using Jinja2 templates. >=2.5
2.5.3
ISC gitdb Git Object Database >=4.0.1, <5
4.0.12
BSD License GitPython GitPython is a Python library used to interact with Git repositories >=3.1.44
3.1.44
BSD-3-Clause htmlmin2 An HTML Minifier >=0.1.13
0.1.13
BSD humanize Python humanize utilities >=4.9
4.12.1
MIT id A tool for generating OIDC identities 1.5.0
Apache Software License idna Internationalized Domain Names in Applications (IDNA) >=2.5, <4
3.10
BSD License iniconfig brain-dead simple config-ini parsing 2.0.0
MIT inline-snapshot golden master/snapshot/approval testing library which puts the values right into your source code >=0.18
0.20.7
MIT License jaraco.classes Utility functions for Python class constructs 3.4.0
MIT License jaraco.context Useful decorators and context managers 6.0.1
MIT License jaraco.functools Functools like those found in stdlib 4.1.0
MIT License jeepney Low-level, pure Python DBus protocol wrapper. >=0.4.2
0.9.0
MIT Jinja2 A very fast and expressive template engine. >=2.11.1, >=2.10
3.1.6
BSD License jsmin JavaScript minifier. >=3.0.1
3.0.1
MIT License keyring Store and access your passwords safely. >=15.1
25.6.0
MIT License Markdown Python implementation of John Gruber's Markdown. >=3.3.3, >=3.3
3.7
BSD License markdown-callouts Markdown extension: a classier syntax for admonitions >=0.4
0.4.0
MIT markdown-exec Utilities to execute code blocks in Markdown files. >=1.8
1.10.3.1.1.0
ISC markdown-it-py Python port of markdown-it. Markdown parsing, done right! >=2.2.0
3.0.0
MIT License markdownify Convert HTML to markdown. >=0.14
1.1.0
MIT License MarkupSafe Safely add untrusted strings to HTML/XML markup. >=2.0.1, >=2.0
3.0.2
BSD License mdformat CommonMark compliant Markdown formatter >=0.7.21
0.7.22
MIT License mdurl Markdown URL utilities ~=0.1
0.1.2
MIT License mergedeep A deep merge function for \ud83d\udc0d. ~=1.3, >=1.3.4
1.3.4
MIT License mkdocs Project documentation with Markdown. >=1.6, >=1.1
1.6.1
BSD-2-Clause mkdocs-autorefs Automatically link across pages in MkDocs. >=1.4
1.4.1
ISC mkdocs-coverage MkDocs plugin to integrate your coverage HTML report into your site. >=1.0
1.1.0
ISC mkdocs-get-deps MkDocs extension that lists all dependencies according to a mkdocs.yml file >=0.2.0
0.2.0
MIT mkdocs-git-revision-date-localized-plugin Mkdocs plugin that enables displaying the localized date of the last git modification of a markdown file. >=1.2
1.4.5
MIT mkdocs-llmstxt MkDocs plugin to generate an /llms.txt file. >=0.2
0.2.0
ISC mkdocs-material Documentation that simply works >=9.5
9.6.14+insiders.4.53.16
MIT mkdocs-material-extensions Extension pack for Python Markdown and MkDocs Material. ~=1.3
1.3.1
MIT mkdocs-minify-plugin An MkDocs plugin to minify HTML, JS or CSS files prior to being written to disk >=0.8
0.8.0
MIT mkdocs-redirects A MkDocs plugin for dynamic page redirects to prevent broken links >=1.2
1.2.2
MIT mkdocs-section-index MkDocs plugin to allow clickable sections that lead to an index page >=0.3
0.3.9
MIT mkdocstrings Automatic documentation from sources, for MkDocs. >=0.29, >=0.28.3
0.29.0
ISC more-itertools More routines for operating on iterables, beyond itertools 10.6.0
MIT License mypy Optional static typing for Python >=1.10
1.15.0
MIT mypy-extensions Type system extensions for programs checked with the mypy type checker. >=0.4.3
1.0.0
MIT License nh3 Python binding to Ammonia HTML sanitizer Rust crate >=0.2.14
0.2.21
MIT packaging Core utilities for Python packages >=22.0, >=20.5
24.2
Apache Software License + BSD License paginate Divides large result sets into pages for easier browsing ~=0.5
0.5.7
MIT pathspec Utility library for gitignore style pattern matching of file paths. >=0.9.0, >=0.11.1
0.12.1
Mozilla Public License 2.0 (MPL 2.0) platformdirs A small Python package for determining appropriate platform-specific dirs, e.g. a user data dir
. >=2.2.0, >=2
4.3.6
MIT pluggy plugin and hook calling mechanisms for python >=1.5, <2
1.5.0
MIT ptyprocess Run a subprocess in a pseudo terminal ~=0.6
0.7.0
ISC License (ISCL) pycparser C parser in Python 2.22
BSD-3-Clause pydantic Data validation using Python type hints >=2.10
2.10.6
MIT pydantic_core Core functionality for Pydantic validation and serialization ==2.27.2
2.27.2
MIT Pygments Pygments is a syntax highlighting package written in Python. >=2.5.1
2.19.1
BSD-2-Clause pymdown-extensions Extension pack for Python Markdown. >=9, >=6.3
10.14.3
MIT pyproject_hooks Wrappers to call pyproject.toml-based build backend hooks. 1.2.0
MIT License pytest pytest: simple powerful testing with Python >=8.2
8.3.5
MIT pytest-cov Pytest plugin for measuring coverage. >=5.0
6.0.0
MIT pytest-randomly Pytest plugin to randomly order tests and control random.seed. >=3.15
3.16.0
MIT License pytest-xdist pytest xdist plugin for distributed testing, most importantly across multiple CPUs >=3.6
3.6.1
MIT License python-dateutil Extensions to the standard Python datetime module >=2.8.1
2.9.0.post0
BSD License + Apache Software License pytz World timezone definitions, modern and historical >=2025.1
2025.1
MIT PyYAML YAML parser and emitter for Python >=5.1
6.0.2
MIT pyyaml_env_tag A custom YAML tag for referencing environment variables in YAML files. >=0.1
0.1
MIT License readme_renderer readme_renderer is a library for rendering readme descriptions for Warehouse >=35.0
44.0
Apache License, Version 2.0 requests Python HTTP for Humans. >=2.20
2.32.3
Apache-2.0 requests-toolbelt A utility belt for advanced users of python-requests >=0.8.0, !=0.9.0
1.0.0
Apache 2.0 rfc3986 Validating URI References per RFC 3986 >=1.4.0
2.0.0
Apache 2.0 rich Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal >=12.0.0
13.9.4
MIT ruff An extremely fast Python linter and code formatter, written in Rust. >=0.4
0.11.0
MIT SecretStorage Python bindings to FreeDesktop.org Secret Service API >=3.2
3.3.3
BSD 3-Clause License semver Python helper for Semantic Versioning (https://semver.org) >=2.13
3.0.4
BSD License six Python 2 and 3 compatibility utilities >=1.5, >=1.15, <2
1.17.0
MIT smmap A pure Python implementation of a sliding window memory map manager >=3.0.1, <6
5.0.2
BSD-3-Clause soupsieve A modern CSS selector implementation for Beautiful Soup. >1.2
2.6
MIT twine Collection of utilities for publishing packages on PyPI >=5.1
6.1.0
Apache Software License type-lens type-lens is a Python template project designed to simplify the setup of a new project. >=0.2.3
0.2.3
MIT types-Markdown Typing stubs for Markdown >=3.6
3.7.0.20241204
Apache-2.0 types-PyYAML Typing stubs for PyYAML >=6.0
6.0.12.20241230
Apache-2.0 typing_extensions Backported and Experimental Type Hints for Python 3.8+ >=4.0.1, >=4.0
4.12.2
Python Software Foundation License urllib3 HTTP library with thread-safe connection pooling, file post, and more. >=1.26.0
2.3.0
MIT License watchdog Filesystem events monitoring >=2.0
6.0.0
Apache-2.0 yore Manage legacy code with comments. >=0.3.3
0.3.4
ISC
"},{"location":"insiders/","title":"Insiders","text":"ISC License\n\nCopyright (c) 2021, Timoth\u00e9e Mazzucotelli\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\nOR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n
__all__
public
@warnings.deprecated
(PEP 702)
"},{"location":"insiders/#1500-hyperlamp-navigation-tips","title":"$ 1,500 \u2014 HyperLamp Navigation Tips","text":"@warnings.deprecated
(PEP 702)
"},{"location":"insiders/#2000-fusiondrive-ejection-configuration","title":"$ 2,000 \u2014 FusionDrive Ejection Configuration","text":"
"},{"location":"insiders/#goals-completed","title":"Goals completed","text":"public
__all__
"},{"location":"insiders/#frequently-asked-questions","title":"Frequently asked questions","text":""},{"location":"insiders/#compatibility","title":"Compatibility","text":"
"},{"location":"insiders/changelog/","title":"Changelog","text":""},{"location":"insiders/changelog/#mkdocstrings-python-insiders","title":"mkdocstrings-python Insiders","text":""},{"location":"insiders/changelog/#1.12.1","title":"1.12.1 May 24, 2025","text":"
"},{"location":"insiders/changelog/#1.12.0","title":"1.12.0 March 24, 2025","text":"
"},{"location":"insiders/changelog/#1.11.0","title":"1.11.0 March 20, 2025","text":"__all__
"},{"location":"insiders/changelog/#1.10.0","title":"1.10.0 March 10, 2025","text":"public
"},{"location":"insiders/changelog/#1.9.1","title":"1.9.1 December 26, 2024","text":"
"},{"location":"insiders/changelog/#1.9.0","title":"1.9.0 September 03, 2024","text":"
"},{"location":"insiders/changelog/#1.8.3","title":"1.8.3 June 19, 2024","text":"
"},{"location":"insiders/changelog/#1.8.2","title":"1.8.2 May 09, 2024","text":"
"},{"location":"insiders/changelog/#1.8.1","title":"1.8.1 April 19, 2024","text":"
"},{"location":"insiders/changelog/#1.8.0","title":"1.8.0 March 24, 2024","text":"
"},{"location":"insiders/changelog/#1.7.0","title":"1.7.0 March 24, 2024","text":"
"},{"location":"insiders/changelog/#1.6.0","title":"1.6.0 January 30, 2024","text":"
"},{"location":"insiders/changelog/#1.5.1","title":"1.5.1 September 12, 2023","text":"parameter_headings
option to render headings for parameters (enabling permalinks and ToC/inventory entries).
"},{"location":"insiders/changelog/#1.5.0","title":"1.5.0 September 05, 2023","text":"
"},{"location":"insiders/changelog/#1.4.0","title":"1.4.0 August 27, 2023","text":"
"},{"location":"insiders/changelog/#1.3.0","title":"1.3.0 August 24, 2023","text":"
"},{"location":"insiders/changelog/#1.2.0","title":"1.2.0 August 20, 2023","text":"
"},{"location":"insiders/changelog/#1.1.4","title":"1.1.4 July 17, 2023","text":"
"},{"location":"insiders/changelog/#1.1.3","title":"1.1.3 July 17, 2023","text":"
"},{"location":"insiders/changelog/#1.1.2","title":"1.1.2 July 15, 2023","text":"
"},{"location":"insiders/changelog/#1.1.1","title":"1.1.1 June 27, 2023","text":"
"},{"location":"insiders/changelog/#1.1.0","title":"1.1.0 June 4, 2023","text":"
"},{"location":"insiders/changelog/#1.0.0","title":"1.0.0 May 10, 2023","text":"
"},{"location":"insiders/installation/","title":"Getting started with Insiders","text":"format_signature
filter has changed. The templates that must be updated: class.html
, expression.html
, function.html
and signature.html
.pip
or git
. Note that in order to access the Insiders repository, you need to become an eligible sponsor of @pawamoy on GitHub.insiders
tool","text":"insiders
is a tool that helps you keep up-to-date versions of Insiders projects in the PyPI index of your choice (self-hosted, Google registry, Artifactory, etc.).pip
using SSH:pip install git+ssh://git@github.com/pawamoy-insiders/mkdocstrings-python.git\n
How to get a GitHub personal access token? pip install git+https://${GH_TOKEN}@github.com/pawamoy-insiders/mkdocstrings-python.git\n
GH_TOKEN
environment variable is a GitHub token. It can be obtained by creating a personal access token for your GitHub account. It will give you access to the Insiders repository, programmatically, from the command line or GitHub Actions workflows:
repo
scopegit clone git@github.com:pawamoy-insiders/mkdocstrings-python\n
"},{"location":"insiders/installation/#upgrading","title":"Upgrading","text":"pip install -e mkdocstrings-python\n
8.x.x.4.x.x
means that Insiders 4.x.x
is currently based on 8.x.x
.
config
\u2013 mkdocstrings_handlers.python
directly.handler
\u2013 mkdocstrings_handlers.python
directly.rendering
\u2013 mkdocstrings_handlers.python
directly.
AutoStyleOptions
\u2013 AutorefsHook
\u2013 GoogleStyleOptions
\u2013 Inventory
\u2013 NumpyStyleOptions
\u2013 PerStyleOptions
\u2013 PythonConfig
\u2013 PythonHandler
\u2013 PythonInputConfig
\u2013 PythonInputOptions
\u2013 PythonOptions
\u2013 SphinxStyleOptions
\u2013 SummaryOption
\u2013
do_as_attributes_section
\u2013 do_as_classes_section
\u2013 do_as_functions_section
\u2013 do_as_modules_section
\u2013 do_backlink_tree
\u2013 do_crossref
\u2013 do_filter_objects
\u2013 do_format_attribute
\u2013 do_format_code
\u2013 do_format_signature
\u2013 do_get_template
\u2013 do_multi_crossref
\u2013 do_order_members
\u2013 do_split_path
\u2013 get_handler
\u2013 PythonHandler
.
"},{"location":"reference/api/#mkdocstrings_handlers.python.Order","title":"Order Order
\u2013 Tree
\u2013 do_stash_crossref
\u2013 module-attribute
","text":"Order = Literal['__all__', 'alphabetical', 'source']\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.Tree","title":"Tree __all__
: order members according to __all__
module attributes, if declared;alphabetical
: order members alphabetically;source
: order members as they appear in the source file.module-attribute
","text":"Tree = dict[tuple[_T, ...], 'Tree']\n
module-attribute
","text":"do_stash_crossref = _StashCrossRefFilter()\n
dataclass
","text":"AutoStyleOptions(\n method: Literal[\"heuristics\", \"max_sections\"] = \"heuristics\",\n style_order: list[str] = lambda: [\"sphinx\", \"google\", \"numpy\"](),\n default: str | None = None,\n per_style_options: PerStyleOptions = PerStyleOptions(),\n)\n
from_data
\u2013
"},{"location":"reference/api/#mkdocstrings_handlers.python.AutoStyleOptions.default","title":"default default
(str | None
) \u2013 method
(Literal['heuristics', 'max_sections']
) \u2013 per_style_options
(PerStyleOptions
) \u2013 style_order
(list[str]
) \u2013 class-attribute
instance-attribute
","text":"default: str | None = None\n
class-attribute
instance-attribute
","text":"method: Literal['heuristics', 'max_sections'] = 'heuristics'\n
class-attribute
instance-attribute
","text":"per_style_options: PerStyleOptions = field(default_factory=PerStyleOptions)\n
class-attribute
instance-attribute
","text":"style_order: list[str] = field(default_factory=lambda: ['sphinx', 'google', 'numpy'])\n
classmethod
","text":"from_data(**data: Any) -> Self\n
AutorefsHook(current_object: Object | Alias, config: dict[str, Any])\n
\n flowchart TD\n mkdocstrings_handlers.python.AutorefsHook[AutorefsHook]\n\n \n\n click mkdocstrings_handlers.python.AutorefsHook href \"\" \"mkdocstrings_handlers.python.AutorefsHook\"\n
expand_identifier
\u2013 get_context
\u2013
"},{"location":"reference/api/#mkdocstrings_handlers.python.AutorefsHook(current_object)","title":"config
\u2013 current_object
\u2013 current_object
","text":"(Object | Alias
) \u2013 config
","text":"(dict[str, Any]
) \u2013 instance-attribute
","text":"config = config\n
instance-attribute
","text":"current_object = current_object\n
expand_identifier(identifier: str) -> str\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.AutorefsHook.expand_identifier(identifier)","title":"str
\u2013 identifier
","text":"(str
) \u2013 get_context() -> Context\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.GoogleStyleOptions","title":"GoogleStyleOptions Context
\u2013 dataclass
","text":"GoogleStyleOptions(\n ignore_init_summary: bool = False,\n returns_multiple_items: bool = True,\n returns_named_value: bool = True,\n returns_type_in_property_summary: bool = False,\n receives_multiple_items: bool = True,\n receives_named_value: bool = True,\n trim_doctest_flags: bool = True,\n warn_unknown_params: bool = True,\n)\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.GoogleStyleOptions.ignore_init_summary","title":"ignore_init_summary ignore_init_summary
(bool
) \u2013 __init__
methods' docstrings.receives_multiple_items
(bool
) \u2013 Receives
sections.receives_named_value
(bool
) \u2013 Receives
section items as name and description, rather than type and description.returns_multiple_items
(bool
) \u2013 Yields
and Returns
sections.returns_named_value
(bool
) \u2013 Yields
and Returns
section items as name and description, rather than type and description.returns_type_in_property_summary
(bool
) \u2013 str: Summary of the property
.trim_doctest_flags
(bool
) \u2013 warn_unknown_params
(bool
) \u2013 class-attribute
instance-attribute
","text":"ignore_init_summary: bool = False\n
__init__
methods' docstrings.class-attribute
instance-attribute
","text":"receives_multiple_items: bool = True\n
Receives
sections.class-attribute
instance-attribute
","text":"receives_named_value: bool = True\n
Receives
section items as name and description, rather than type and description.(int): Description.
. Names are optional: name (int): Description.
. When false, parentheses are optional but the items cannot be named: int: Description
.class-attribute
instance-attribute
","text":"returns_multiple_items: bool = True\n
Yields
and Returns
sections.class-attribute
instance-attribute
","text":"returns_named_value: bool = True\n
Yields
and Returns
section items as name and description, rather than type and description.(int): Description.
. Names are optional: name (int): Description.
. When false, parentheses are optional but the items cannot be named: int: Description
.class-attribute
instance-attribute
","text":"returns_type_in_property_summary: bool = False\n
str: Summary of the property
.class-attribute
instance-attribute
","text":"trim_doctest_flags: bool = True\n
class-attribute
instance-attribute
","text":"warn_unknown_params: bool = True\n
dataclass
","text":"Inventory(url: str, base_url: str | None = None, domains: list[str] = lambda: ['py']())\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.Inventory.base_url","title":"base_url base_url
(str | None
) \u2013 domains
(list[str]
) \u2013 url
(str
) \u2013 class-attribute
instance-attribute
","text":"base_url: str | None = None\n
class-attribute
instance-attribute
","text":"domains: list[str] = field(default_factory=lambda: ['py'])\n
instance-attribute
","text":"url: str\n
dataclass
","text":"NumpyStyleOptions(\n ignore_init_summary: bool = False,\n trim_doctest_flags: bool = True,\n warn_unknown_params: bool = True,\n)\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.NumpyStyleOptions.ignore_init_summary","title":"ignore_init_summary ignore_init_summary
(bool
) \u2013 __init__
methods' docstrings.trim_doctest_flags
(bool
) \u2013 warn_unknown_params
(bool
) \u2013 class-attribute
instance-attribute
","text":"ignore_init_summary: bool = False\n
__init__
methods' docstrings.class-attribute
instance-attribute
","text":"trim_doctest_flags: bool = True\n
class-attribute
instance-attribute
","text":"warn_unknown_params: bool = True\n
dataclass
","text":"PerStyleOptions(\n google: GoogleStyleOptions = GoogleStyleOptions(),\n numpy: NumpyStyleOptions = NumpyStyleOptions(),\n sphinx: SphinxStyleOptions = SphinxStyleOptions(),\n)\n
from_data
\u2013
"},{"location":"reference/api/#mkdocstrings_handlers.python.PerStyleOptions.google","title":"google google
(GoogleStyleOptions
) \u2013 numpy
(NumpyStyleOptions
) \u2013 sphinx
(SphinxStyleOptions
) \u2013 class-attribute
instance-attribute
","text":"google: GoogleStyleOptions = field(default_factory=GoogleStyleOptions)\n
class-attribute
instance-attribute
","text":"numpy: NumpyStyleOptions = field(default_factory=NumpyStyleOptions)\n
class-attribute
instance-attribute
","text":"sphinx: SphinxStyleOptions = field(default_factory=SphinxStyleOptions)\n
classmethod
","text":"from_data(**data: Any) -> Self\n
dataclass
","text":"PythonConfig(\n inventories: list[Inventory] = list(),\n paths: list[str] = lambda: [\".\"](),\n load_external_modules: bool | None = None,\n options: dict[str, Any] = dict(),\n locale: str | None = None,\n)\n
\n flowchart TD\n mkdocstrings_handlers.python.PythonConfig[PythonConfig]\n mkdocstrings_handlers.python._internal.config.PythonInputConfig[PythonInputConfig]\n\n mkdocstrings_handlers.python._internal.config.PythonInputConfig --> mkdocstrings_handlers.python.PythonConfig\n \n\n\n click mkdocstrings_handlers.python.PythonConfig href \"\" \"mkdocstrings_handlers.python.PythonConfig\"\n click mkdocstrings_handlers.python._internal.config.PythonInputConfig href \"\" \"mkdocstrings_handlers.python._internal.config.PythonInputConfig\"\n
\u00a0python
\u00a0PythonHandler
coerce
\u2013 from_data
\u2013
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonConfig.inventories","title":"inventories inventories
(list[Inventory]
) \u2013 load_external_modules
(bool | None
) \u2013 locale
(str | None
) \u2013 options
(dict[str, Any]
) \u2013 paths
(list[str]
) \u2013 class-attribute
instance-attribute
","text":"inventories: list[Inventory] = field(default_factory=list)\n
class-attribute
instance-attribute
","text":"load_external_modules: bool | None = None\n
class-attribute
instance-attribute
","text":"locale: str | None = None\n
class-attribute
instance-attribute
","text":"options: dict[str, Any] = field(default_factory=dict)\n
class-attribute
instance-attribute
","text":"paths: list[str] = field(default_factory=lambda: ['.'])\n
classmethod
","text":"coerce(**data: Any) -> MutableMapping[str, Any]\n
classmethod
","text":"from_data(**data: Any) -> Self\n
PythonHandler(config: PythonConfig, base_dir: Path, **kwargs: Any)\n
\n flowchart TD\n mkdocstrings_handlers.python.PythonHandler[PythonHandler]\n mkdocstrings._internal.handlers.base.BaseHandler[BaseHandler]\n\n mkdocstrings._internal.handlers.base.BaseHandler --> mkdocstrings_handlers.python.PythonHandler\n \n\n\n click mkdocstrings_handlers.python.PythonHandler href \"\" \"mkdocstrings_handlers.python.PythonHandler\"\n click mkdocstrings._internal.handlers.base.BaseHandler href \"\" \"mkdocstrings._internal.handlers.base.BaseHandler\"\n
\u00a0python
\u00a0get_handler
collect
\u2013 do_convert_markdown
\u2013 do_heading
\u2013 get_aliases
\u2013 get_extended_templates_dirs
\u2013 get_headings
\u2013 get_inventory_urls
\u2013 get_options
\u2013 get_templates_dir
\u2013 load_inventory
\u2013 in_file
.normalize_extension_paths
\u2013 render
\u2013 render_backlinks
\u2013 teardown
\u2013 update_env
\u2013
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler(config)","title":"base_dir
\u2013 config
\u2013 custom_templates
\u2013 domain
(str
) \u2013 enable_inventory
(bool
) \u2013 objects.inv
Sphinx inventory file.env
\u2013 extra_css
(str
) \u2013 fallback_config
(dict
) \u2013 fallback_theme
(str
) \u2013 global_options
\u2013 mkdocs.yml
).md
(Markdown
) \u2013 mdx
\u2013 mdx_config
\u2013 name
(str
) \u2013 outer_layer
(bool
) \u2013 theme
\u2013 config
","text":"(PythonConfig
) \u2013 base_dir
","text":"(Path
) \u2013 **kwargs
","text":"(Any
, default: {}
) \u2013 instance-attribute
","text":"base_dir = base_dir\n
instance-attribute
","text":"config = config\n
instance-attribute
","text":"custom_templates = custom_templates\n
class-attribute
","text":"domain: str = 'py'\n
class-attribute
","text":"enable_inventory: bool = True\n
objects.inv
Sphinx inventory file.instance-attribute
","text":"env = Environment(autoescape=True, loader=FileSystemLoader(paths), auto_reload=False)\n
class-attribute
instance-attribute
","text":"extra_css: str = ''\n
class-attribute
","text":"fallback_config: dict = {}\n
class-attribute
","text":"fallback_theme: str = 'material'\n
instance-attribute
","text":"global_options = global_options\n
mkdocs.yml
).property
","text":"md: Markdown\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.mdx","title":"mdx RuntimeError
\u2013 instance-attribute
","text":"mdx = mdx\n
instance-attribute
","text":"mdx_config = mdx_config\n
class-attribute
","text":"name: str = 'python'\n
property
","text":"outer_layer: bool\n
instance-attribute
","text":"theme = theme\n
collect(identifier: str, options: PythonOptions) -> CollectorItem\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.collect(identifier)","title":"CollectorItem
\u2013 identifier
","text":"(str
) \u2013 options
","text":"(PythonOptions
) \u2013 do_convert_markdown(\n text: str,\n heading_level: int,\n html_id: str = \"\",\n *,\n strip_paragraph: bool = False,\n autoref_hook: AutorefsHookInterface | None = None\n) -> Markup\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.do_convert_markdown(text)","title":"Markup
\u2013 text
","text":"(str
) \u2013 heading_level
","text":"(int
) \u2013 html_id
","text":"(str
, default: ''
) \u2013 strip_paragraph
","text":"(bool
, default: False
) \u2013 <p>
tag from around the whole output.do_heading(\n content: Markup,\n heading_level: int,\n *,\n role: str | None = None,\n hidden: bool = False,\n toc_label: str | None = None,\n **attributes: str\n) -> Markup\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.do_heading(content)","title":"Markup
\u2013 content
","text":"(Markup
) \u2013 heading_level
","text":"(int
) \u2013 h3
).role
","text":"(str | None
, default: None
) \u2013 hidden
","text":"(bool
, default: False
) \u2013 toc_label
","text":"(str | None
, default: None
) \u2013 **attributes
","text":"(str
, default: {}
) \u2013 get_aliases(identifier: str) -> tuple[str, ...]\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.get_aliases(identifier)","title":"tuple[str, ...]
\u2013 identifier
","text":"(str
) \u2013 get_extended_templates_dirs(handler: str) -> list[Path]\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.get_extended_templates_dirs(handler)","title":"list[Path]
\u2013 handler
","text":"(str
) \u2013 get_headings() -> Sequence[Element]\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.get_inventory_urls","title":"get_inventory_urls","text":"Sequence[Element]
\u2013 get_inventory_urls() -> list[tuple[str, dict[str, Any]]]\n
get_options(local_options: Mapping[str, Any]) -> HandlerOptions\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.get_options(local_options)","title":"HandlerOptions
\u2013 local_options
","text":"(Mapping[str, Any]
) \u2013 get_templates_dir(handler: str | None = None) -> Path\n
ModuleNotFoundError
\u2013 FileNotFoundError
\u2013
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.get_templates_dir(handler)","title":"Path
\u2013 handler
","text":"(str | None
, default: None
) \u2013 staticmethod
","text":"load_inventory(\n in_file: BinaryIO,\n url: str,\n base_url: str | None = None,\n domains: list[str] | None = None,\n **kwargs: Any\n) -> Iterator[tuple[str, str]]\n
in_file
.load_inventory
\"protocol\" (see mkdocstrings.plugin
).
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.load_inventory(in_file)","title":"tuple[str, str]
\u2013 in_file
","text":"(BinaryIO
) \u2013 url
","text":"(str
) \u2013 base_url
).base_url
","text":"(str | None
, default: None
) \u2013 domains
","text":"(list[str] | None
, default: None
) \u2013 **kwargs
","text":"(Any
, default: {}
) \u2013 normalize_extension_paths(extensions: Sequence) -> Sequence\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.normalize_extension_paths(extensions)","title":"Sequence
\u2013 extensions
","text":"(Sequence
) \u2013 render(data: CollectorItem, options: PythonOptions) -> str\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.render(data)","title":"str
\u2013 data
","text":"(CollectorItem
) \u2013 options
","text":"(PythonOptions
) \u2013 render_backlinks(backlinks: Mapping[str, Iterable[Backlink]]) -> str\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonHandler.render_backlinks(backlinks)","title":"str
\u2013 backlinks
","text":"(Mapping[str, Iterable[Backlink]]
) \u2013 teardown() -> None\n
update_env(config: Any) -> None\n
config
","text":"(Any
) \u2013 dataclass
","text":"PythonInputConfig(\n inventories: list[str | Inventory] = list(),\n paths: list[str] = lambda: [\".\"](),\n load_external_modules: bool | None = None,\n options: PythonInputOptions = PythonInputOptions(),\n locale: str | None = None,\n)\n
coerce
\u2013 from_data
\u2013
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonInputConfig.inventories","title":"inventories inventories
(list[str | Inventory]
) \u2013 load_external_modules
(bool | None
) \u2013 locale
(str | None
) \u2013 options
(PythonInputOptions
) \u2013 paths
(list[str]
) \u2013 class-attribute
instance-attribute
","text":"inventories: list[str | Inventory] = field(default_factory=list)\n
class-attribute
instance-attribute
","text":"load_external_modules: bool | None = None\n
class-attribute
instance-attribute
","text":"locale: str | None = None\n
class-attribute
instance-attribute
","text":"options: PythonInputOptions = field(default_factory=PythonInputOptions)\n
class-attribute
instance-attribute
","text":"paths: list[str] = field(default_factory=lambda: ['.'])\n
classmethod
","text":"coerce(**data: Any) -> MutableMapping[str, Any]\n
classmethod
","text":"from_data(**data: Any) -> Self\n
dataclass
","text":"PythonInputOptions(\n allow_inspection: bool = True,\n force_inspection: bool = False,\n annotations_path: Literal[\"brief\", \"source\", \"full\"] = \"brief\",\n backlinks: Literal[\"flat\", \"tree\", False] = False,\n docstring_options: (\n GoogleStyleOptions\n | NumpyStyleOptions\n | SphinxStyleOptions\n | AutoStyleOptions\n | None\n ) = None,\n docstring_section_style: Literal[\"table\", \"list\", \"spacy\"] = \"table\",\n docstring_style: Literal[\"auto\", \"google\", \"numpy\", \"sphinx\"] | None = \"google\",\n extensions: list[str | dict[str, Any]] = list(),\n filters: list[str] | Literal[\"public\"] = lambda: copy()(),\n find_stubs_package: bool = False,\n group_by_category: bool = True,\n heading: str = \"\",\n heading_level: int = 2,\n inherited_members: bool | list[str] = False,\n line_length: int = 60,\n members: list[str] | bool | None = None,\n members_order: Order | list[Order] = \"alphabetical\",\n merge_init_into_class: bool = False,\n modernize_annotations: bool = False,\n parameter_headings: bool = False,\n preload_modules: list[str] = list(),\n relative_crossrefs: bool = False,\n scoped_crossrefs: bool = False,\n show_overloads: bool = True,\n separate_signature: bool = False,\n show_bases: bool = True,\n show_category_heading: bool = False,\n show_docstring_attributes: bool = True,\n show_docstring_classes: bool = True,\n show_docstring_description: bool = True,\n show_docstring_examples: bool = True,\n show_docstring_functions: bool = True,\n show_docstring_modules: bool = True,\n show_docstring_other_parameters: bool = True,\n show_docstring_parameters: bool = True,\n show_docstring_raises: bool = True,\n show_docstring_receives: bool = True,\n show_docstring_returns: bool = True,\n show_docstring_warns: bool = True,\n show_docstring_yields: bool = True,\n show_if_no_docstring: bool = False,\n show_inheritance_diagram: bool = False,\n show_labels: bool = True,\n show_object_full_path: bool = False,\n show_root_full_path: bool = True,\n show_root_heading: bool = False,\n show_root_members_full_path: bool = False,\n show_root_toc_entry: bool = True,\n show_signature_annotations: bool = False,\n show_signature: bool = True,\n show_source: bool = True,\n show_submodules: bool = False,\n show_symbol_type_heading: bool = False,\n show_symbol_type_toc: bool = False,\n signature_crossrefs: bool = False,\n summary: bool | SummaryOption = SummaryOption(),\n toc_label: str = \"\",\n unwrap_annotated: bool = False,\n extra: dict[str, Any] = dict(),\n)\n
coerce
\u2013 from_data
\u2013
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonInputOptions.allow_inspection","title":"allow_inspection allow_inspection
(bool
) \u2013 annotations_path
(Literal['brief', 'source', 'full']
) \u2013 brief
(recommended), source
(as written in the source), or full
.backlinks
(Literal['flat', 'tree', False]
) \u2013 docstring_options
(GoogleStyleOptions | NumpyStyleOptions | SphinxStyleOptions | AutoStyleOptions | None
) \u2013 docstring_section_style
(Literal['table', 'list', 'spacy']
) \u2013 docstring_style
(Literal['auto', 'google', 'numpy', 'sphinx'] | None
) \u2013 auto
, google
, numpy
, sphinx
, or None
.extensions
(list[str | dict[str, Any]]
) \u2013 extra
(dict[str, Any]
) \u2013 filters
(list[str] | Literal['public']
) \u2013 \"public\"
.find_stubs_package
(bool
) \u2013 force_inspection
(bool
) \u2013 group_by_category
(bool
) \u2013 heading
(str
) \u2013 heading_level
(int
) \u2013 inherited_members
(bool | list[str]
) \u2013 line_length
(int
) \u2013 members
(list[str] | bool | None
) \u2013 members_order
(Order | list[Order]
) \u2013 merge_init_into_class
(bool
) \u2013 __init__
method into the class' signature and docstring.modernize_annotations
(bool
) \u2013 Optional[str]
into str | None
.parameter_headings
(bool
) \u2013 preload_modules
(list[str]
) \u2013 ::: identifier
).relative_crossrefs
(bool
) \u2013 scoped_crossrefs
(bool
) \u2013 separate_signature
(bool
) \u2013 show_bases
(bool
) \u2013 show_category_heading
(bool
) \u2013 show_docstring_attributes
(bool
) \u2013 show_docstring_classes
(bool
) \u2013 show_docstring_description
(bool
) \u2013 show_docstring_examples
(bool
) \u2013 show_docstring_functions
(bool
) \u2013 show_docstring_modules
(bool
) \u2013 show_docstring_other_parameters
(bool
) \u2013 show_docstring_parameters
(bool
) \u2013 show_docstring_raises
(bool
) \u2013 show_docstring_receives
(bool
) \u2013 show_docstring_returns
(bool
) \u2013 show_docstring_warns
(bool
) \u2013 show_docstring_yields
(bool
) \u2013 show_if_no_docstring
(bool
) \u2013 show_inheritance_diagram
(bool
) \u2013 show_labels
(bool
) \u2013 show_object_full_path
(bool
) \u2013 show_overloads
(bool
) \u2013 show_root_full_path
(bool
) \u2013 show_root_heading
(bool
) \u2013 show_root_members_full_path
(bool
) \u2013 show_root_toc_entry
(bool
) \u2013 show_signature
(bool
) \u2013 show_signature_annotations
(bool
) \u2013 show_source
(bool
) \u2013 show_submodules
(bool
) \u2013 show_symbol_type_heading
(bool
) \u2013 show_symbol_type_toc
(bool
) \u2013 signature_crossrefs
(bool
) \u2013 summary
(bool | SummaryOption
) \u2013 toc_label
(str
) \u2013 unwrap_annotated
(bool
) \u2013 Annotated
types to show only the type without the annotations.class-attribute
instance-attribute
","text":"allow_inspection: bool = True\n
class-attribute
instance-attribute
","text":"annotations_path: Literal['brief', 'source', 'full'] = 'brief'\n
brief
(recommended), source
(as written in the source), or full
.class-attribute
instance-attribute
","text":"backlinks: Literal['flat', 'tree', False] = False\n
class-attribute
instance-attribute
","text":"docstring_options: (\n GoogleStyleOptions\n | NumpyStyleOptions\n | SphinxStyleOptions\n | AutoStyleOptions\n | None\n) = None\n
class-attribute
instance-attribute
","text":"docstring_section_style: Literal['table', 'list', 'spacy'] = 'table'\n
class-attribute
instance-attribute
","text":"docstring_style: Literal['auto', 'google', 'numpy', 'sphinx'] | None = 'google'\n
auto
, google
, numpy
, sphinx
, or None
.class-attribute
instance-attribute
","text":"extensions: list[str | dict[str, Any]] = field(default_factory=list)\n
class-attribute
instance-attribute
","text":"extra: dict[str, Any] = field(default_factory=dict)\n
class-attribute
instance-attribute
","text":"filters: list[str] | Literal['public'] = field(default_factory=lambda: copy())\n
\"public\"
.!
will exclude matching objects instead of including them. The members
option takes precedence over filters
(filters will still be applied recursively to lower members in the hierarchy).public
method will include only public objects: those added to __all__
or not starting with an underscore (except for special methods/attributes).class-attribute
instance-attribute
","text":"find_stubs_package: bool = False\n
class-attribute
instance-attribute
","text":"force_inspection: bool = False\n
class-attribute
instance-attribute
","text":"group_by_category: bool = True\n
class-attribute
instance-attribute
","text":"heading: str = ''\n
class-attribute
instance-attribute
","text":"heading_level: int = 2\n
class-attribute
instance-attribute
","text":"inherited_members: bool | list[str] = False\n
members
. If false or empty list, do not select any inherited member.class-attribute
instance-attribute
","text":"line_length: int = 60\n
class-attribute
instance-attribute
","text":"members: list[str] | bool | None = None\n
class-attribute
instance-attribute
","text":"members_order: Order | list[Order] = 'alphabetical'\n
__all__
: order members according to __all__
module attributes, if declared;alphabetical
: order members alphabetically;source
: order members as they appear in the source file.__all__
is a module-only attribute, it can't be used to sort class members, therefore the members_order
option accepts a list of ordering methods, indicating ordering preferences.class-attribute
instance-attribute
","text":"merge_init_into_class: bool = False\n
__init__
method into the class' signature and docstring.class-attribute
instance-attribute
","text":"modernize_annotations: bool = False\n
Optional[str]
into str | None
.class-attribute
instance-attribute
","text":"parameter_headings: bool = False\n
class-attribute
instance-attribute
","text":"preload_modules: list[str] = field(default_factory=list)\n
::: identifier
).__all__
attribute of the importing module.class-attribute
instance-attribute
","text":"relative_crossrefs: bool = False\n
class-attribute
instance-attribute
","text":"scoped_crossrefs: bool = False\n
class-attribute
instance-attribute
","text":"separate_signature: bool = False\n
class-attribute
instance-attribute
","text":"show_bases: bool = True\n
class-attribute
instance-attribute
","text":"show_category_heading: bool = False\n
class-attribute
instance-attribute
","text":"show_docstring_attributes: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_classes: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_description: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_examples: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_functions: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_modules: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_other_parameters: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_parameters: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_raises: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_receives: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_returns: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_warns: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_yields: bool = True\n
class-attribute
instance-attribute
","text":"show_if_no_docstring: bool = False\n
class-attribute
instance-attribute
","text":"show_inheritance_diagram: bool = False\n
class-attribute
instance-attribute
","text":"show_labels: bool = True\n
class-attribute
instance-attribute
","text":"show_object_full_path: bool = False\n
class-attribute
instance-attribute
","text":"show_overloads: bool = True\n
class-attribute
instance-attribute
","text":"show_root_full_path: bool = True\n
class-attribute
instance-attribute
","text":"show_root_heading: bool = False\n
:::
.class-attribute
instance-attribute
","text":"show_root_members_full_path: bool = False\n
class-attribute
instance-attribute
","text":"show_root_toc_entry: bool = True\n
class-attribute
instance-attribute
","text":"show_signature: bool = True\n
class-attribute
instance-attribute
","text":"show_signature_annotations: bool = False\n
class-attribute
instance-attribute
","text":"show_source: bool = True\n
class-attribute
instance-attribute
","text":"show_submodules: bool = False\n
class-attribute
instance-attribute
","text":"show_symbol_type_heading: bool = False\n
class-attribute
instance-attribute
","text":"show_symbol_type_toc: bool = False\n
class-attribute
instance-attribute
","text":"signature_crossrefs: bool = False\n
class-attribute
instance-attribute
","text":"summary: bool | SummaryOption = field(default_factory=SummaryOption)\n
class-attribute
instance-attribute
","text":"toc_label: str = ''\n
class-attribute
instance-attribute
","text":"unwrap_annotated: bool = False\n
Annotated
types to show only the type without the annotations.classmethod
","text":"coerce(**data: Any) -> MutableMapping[str, Any]\n
classmethod
","text":"from_data(**data: Any) -> Self\n
dataclass
","text":"PythonOptions(\n allow_inspection: bool = True,\n force_inspection: bool = False,\n annotations_path: Literal[\"brief\", \"source\", \"full\"] = \"brief\",\n backlinks: Literal[\"flat\", \"tree\", False] = False,\n docstring_options: (\n GoogleStyleOptions\n | NumpyStyleOptions\n | SphinxStyleOptions\n | AutoStyleOptions\n | None\n ) = None,\n docstring_section_style: Literal[\"table\", \"list\", \"spacy\"] = \"table\",\n docstring_style: Literal[\"auto\", \"google\", \"numpy\", \"sphinx\"] | None = \"google\",\n extensions: list[str | dict[str, Any]] = list(),\n filters: list[tuple[Pattern, bool]] | Literal[\"public\"] = lambda: [\n (compile(removeprefix(\"!\")), startswith(\"!\")) for filtr in _DEFAULT_FILTERS\n ](),\n find_stubs_package: bool = False,\n group_by_category: bool = True,\n heading: str = \"\",\n heading_level: int = 2,\n inherited_members: bool | list[str] = False,\n line_length: int = 60,\n members: list[str] | bool | None = None,\n members_order: Order | list[Order] = \"alphabetical\",\n merge_init_into_class: bool = False,\n modernize_annotations: bool = False,\n parameter_headings: bool = False,\n preload_modules: list[str] = list(),\n relative_crossrefs: bool = False,\n scoped_crossrefs: bool = False,\n show_overloads: bool = True,\n separate_signature: bool = False,\n show_bases: bool = True,\n show_category_heading: bool = False,\n show_docstring_attributes: bool = True,\n show_docstring_classes: bool = True,\n show_docstring_description: bool = True,\n show_docstring_examples: bool = True,\n show_docstring_functions: bool = True,\n show_docstring_modules: bool = True,\n show_docstring_other_parameters: bool = True,\n show_docstring_parameters: bool = True,\n show_docstring_raises: bool = True,\n show_docstring_receives: bool = True,\n show_docstring_returns: bool = True,\n show_docstring_warns: bool = True,\n show_docstring_yields: bool = True,\n show_if_no_docstring: bool = False,\n show_inheritance_diagram: bool = False,\n show_labels: bool = True,\n show_object_full_path: bool = False,\n show_root_full_path: bool = True,\n show_root_heading: bool = False,\n show_root_members_full_path: bool = False,\n show_root_toc_entry: bool = True,\n show_signature_annotations: bool = False,\n show_signature: bool = True,\n show_source: bool = True,\n show_submodules: bool = False,\n show_symbol_type_heading: bool = False,\n show_symbol_type_toc: bool = False,\n signature_crossrefs: bool = False,\n summary: SummaryOption = SummaryOption(),\n toc_label: str = \"\",\n unwrap_annotated: bool = False,\n extra: dict[str, Any] = dict(),\n)\n
\n flowchart TD\n mkdocstrings_handlers.python.PythonOptions[PythonOptions]\n mkdocstrings_handlers.python._internal.config.PythonInputOptions[PythonInputOptions]\n\n mkdocstrings_handlers.python._internal.config.PythonInputOptions --> mkdocstrings_handlers.python.PythonOptions\n \n\n\n click mkdocstrings_handlers.python.PythonOptions href \"\" \"mkdocstrings_handlers.python.PythonOptions\"\n click mkdocstrings_handlers.python._internal.config.PythonInputOptions href \"\" \"mkdocstrings_handlers.python._internal.config.PythonInputOptions\"\n
\u00a0python
\u00a0PythonHandler
\u00a0collect
\u00a0render
coerce
\u2013 from_data
\u2013
"},{"location":"reference/api/#mkdocstrings_handlers.python.PythonOptions.allow_inspection","title":"allow_inspection allow_inspection
(bool
) \u2013 annotations_path
(Literal['brief', 'source', 'full']
) \u2013 brief
(recommended), source
(as written in the source), or full
.backlinks
(Literal['flat', 'tree', False]
) \u2013 docstring_options
(GoogleStyleOptions | NumpyStyleOptions | SphinxStyleOptions | AutoStyleOptions | None
) \u2013 docstring_section_style
(Literal['table', 'list', 'spacy']
) \u2013 docstring_style
(Literal['auto', 'google', 'numpy', 'sphinx'] | None
) \u2013 auto
, google
, numpy
, sphinx
, or None
.extensions
(list[str | dict[str, Any]]
) \u2013 extra
(dict[str, Any]
) \u2013 filters
(list[tuple[Pattern, bool]] | Literal['public']
) \u2013 \"public\"
.find_stubs_package
(bool
) \u2013 force_inspection
(bool
) \u2013 group_by_category
(bool
) \u2013 heading
(str
) \u2013 heading_level
(int
) \u2013 inherited_members
(bool | list[str]
) \u2013 line_length
(int
) \u2013 members
(list[str] | bool | None
) \u2013 members_order
(Order | list[Order]
) \u2013 merge_init_into_class
(bool
) \u2013 __init__
method into the class' signature and docstring.modernize_annotations
(bool
) \u2013 Optional[str]
into str | None
.parameter_headings
(bool
) \u2013 preload_modules
(list[str]
) \u2013 ::: identifier
).relative_crossrefs
(bool
) \u2013 scoped_crossrefs
(bool
) \u2013 separate_signature
(bool
) \u2013 show_bases
(bool
) \u2013 show_category_heading
(bool
) \u2013 show_docstring_attributes
(bool
) \u2013 show_docstring_classes
(bool
) \u2013 show_docstring_description
(bool
) \u2013 show_docstring_examples
(bool
) \u2013 show_docstring_functions
(bool
) \u2013 show_docstring_modules
(bool
) \u2013 show_docstring_other_parameters
(bool
) \u2013 show_docstring_parameters
(bool
) \u2013 show_docstring_raises
(bool
) \u2013 show_docstring_receives
(bool
) \u2013 show_docstring_returns
(bool
) \u2013 show_docstring_warns
(bool
) \u2013 show_docstring_yields
(bool
) \u2013 show_if_no_docstring
(bool
) \u2013 show_inheritance_diagram
(bool
) \u2013 show_labels
(bool
) \u2013 show_object_full_path
(bool
) \u2013 show_overloads
(bool
) \u2013 show_root_full_path
(bool
) \u2013 show_root_heading
(bool
) \u2013 show_root_members_full_path
(bool
) \u2013 show_root_toc_entry
(bool
) \u2013 show_signature
(bool
) \u2013 show_signature_annotations
(bool
) \u2013 show_source
(bool
) \u2013 show_submodules
(bool
) \u2013 show_symbol_type_heading
(bool
) \u2013 show_symbol_type_toc
(bool
) \u2013 signature_crossrefs
(bool
) \u2013 summary
(SummaryOption
) \u2013 toc_label
(str
) \u2013 unwrap_annotated
(bool
) \u2013 Annotated
types to show only the type without the annotations.class-attribute
instance-attribute
","text":"allow_inspection: bool = True\n
class-attribute
instance-attribute
","text":"annotations_path: Literal['brief', 'source', 'full'] = 'brief'\n
brief
(recommended), source
(as written in the source), or full
.class-attribute
instance-attribute
","text":"backlinks: Literal['flat', 'tree', False] = False\n
class-attribute
instance-attribute
","text":"docstring_options: (\n GoogleStyleOptions\n | NumpyStyleOptions\n | SphinxStyleOptions\n | AutoStyleOptions\n | None\n) = None\n
class-attribute
instance-attribute
","text":"docstring_section_style: Literal['table', 'list', 'spacy'] = 'table'\n
class-attribute
instance-attribute
","text":"docstring_style: Literal['auto', 'google', 'numpy', 'sphinx'] | None = 'google'\n
auto
, google
, numpy
, sphinx
, or None
.class-attribute
instance-attribute
","text":"extensions: list[str | dict[str, Any]] = field(default_factory=list)\n
class-attribute
instance-attribute
","text":"extra: dict[str, Any] = field(default_factory=dict)\n
class-attribute
instance-attribute
","text":"filters: list[tuple[Pattern, bool]] | Literal[\"public\"] = field(\n default_factory=lambda: [\n (compile(removeprefix(\"!\")), startswith(\"!\")) for filtr in _DEFAULT_FILTERS\n ]\n)\n
\"public\"
.class-attribute
instance-attribute
","text":"find_stubs_package: bool = False\n
class-attribute
instance-attribute
","text":"force_inspection: bool = False\n
class-attribute
instance-attribute
","text":"group_by_category: bool = True\n
class-attribute
instance-attribute
","text":"heading: str = ''\n
class-attribute
instance-attribute
","text":"heading_level: int = 2\n
class-attribute
instance-attribute
","text":"inherited_members: bool | list[str] = False\n
members
. If false or empty list, do not select any inherited member.class-attribute
instance-attribute
","text":"line_length: int = 60\n
class-attribute
instance-attribute
","text":"members: list[str] | bool | None = None\n
class-attribute
instance-attribute
","text":"members_order: Order | list[Order] = 'alphabetical'\n
__all__
: order members according to __all__
module attributes, if declared;alphabetical
: order members alphabetically;source
: order members as they appear in the source file.__all__
is a module-only attribute, it can't be used to sort class members, therefore the members_order
option accepts a list of ordering methods, indicating ordering preferences.class-attribute
instance-attribute
","text":"merge_init_into_class: bool = False\n
__init__
method into the class' signature and docstring.class-attribute
instance-attribute
","text":"modernize_annotations: bool = False\n
Optional[str]
into str | None
.class-attribute
instance-attribute
","text":"parameter_headings: bool = False\n
class-attribute
instance-attribute
","text":"preload_modules: list[str] = field(default_factory=list)\n
::: identifier
).__all__
attribute of the importing module.class-attribute
instance-attribute
","text":"relative_crossrefs: bool = False\n
class-attribute
instance-attribute
","text":"scoped_crossrefs: bool = False\n
class-attribute
instance-attribute
","text":"separate_signature: bool = False\n
class-attribute
instance-attribute
","text":"show_bases: bool = True\n
class-attribute
instance-attribute
","text":"show_category_heading: bool = False\n
class-attribute
instance-attribute
","text":"show_docstring_attributes: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_classes: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_description: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_examples: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_functions: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_modules: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_other_parameters: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_parameters: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_raises: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_receives: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_returns: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_warns: bool = True\n
class-attribute
instance-attribute
","text":"show_docstring_yields: bool = True\n
class-attribute
instance-attribute
","text":"show_if_no_docstring: bool = False\n
class-attribute
instance-attribute
","text":"show_inheritance_diagram: bool = False\n
class-attribute
instance-attribute
","text":"show_labels: bool = True\n
class-attribute
instance-attribute
","text":"show_object_full_path: bool = False\n
class-attribute
instance-attribute
","text":"show_overloads: bool = True\n
class-attribute
instance-attribute
","text":"show_root_full_path: bool = True\n
class-attribute
instance-attribute
","text":"show_root_heading: bool = False\n
:::
.class-attribute
instance-attribute
","text":"show_root_members_full_path: bool = False\n
class-attribute
instance-attribute
","text":"show_root_toc_entry: bool = True\n
class-attribute
instance-attribute
","text":"show_signature: bool = True\n
class-attribute
instance-attribute
","text":"show_signature_annotations: bool = False\n
class-attribute
instance-attribute
","text":"show_source: bool = True\n
class-attribute
instance-attribute
","text":"show_submodules: bool = False\n
class-attribute
instance-attribute
","text":"show_symbol_type_heading: bool = False\n
class-attribute
instance-attribute
","text":"show_symbol_type_toc: bool = False\n
class-attribute
instance-attribute
","text":"signature_crossrefs: bool = False\n
class-attribute
instance-attribute
","text":"summary: SummaryOption = field(default_factory=SummaryOption)\n
class-attribute
instance-attribute
","text":"toc_label: str = ''\n
class-attribute
instance-attribute
","text":"unwrap_annotated: bool = False\n
Annotated
types to show only the type without the annotations.classmethod
","text":"coerce(**data: Any) -> MutableMapping[str, Any]\n
classmethod
","text":"from_data(**data: Any) -> Self\n
dataclass
","text":"SphinxStyleOptions()\n
dataclass
","text":"SummaryOption(\n attributes: bool = False,\n functions: bool = False,\n classes: bool = False,\n modules: bool = False,\n)\n
Used by: \u00a0python
\u00a0PythonOptions
\u00a0summary
\u00a0python
\u00a0PythonOptions
"},{"location":"reference/api/#mkdocstrings_handlers.python.SummaryOption.attributes","title":"attributes attributes
(bool
) \u2013 classes
(bool
) \u2013 functions
(bool
) \u2013 modules
(bool
) \u2013 class-attribute
instance-attribute
","text":"attributes: bool = False\n
class-attribute
instance-attribute
","text":"classes: bool = False\n
class-attribute
instance-attribute
","text":"functions: bool = False\n
class-attribute
instance-attribute
","text":"modules: bool = False\n
do_as_attributes_section(\n context: Context, attributes: Sequence[Attribute], *, check_public: bool = True\n) -> DocstringSectionAttributes\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_as_attributes_section(attributes)","title":"DocstringSectionAttributes
\u2013 attributes
","text":"(Sequence[Attribute]
) \u2013 check_public
","text":"(bool
, default: True
) \u2013 do_as_classes_section(\n context: Context, classes: Sequence[Class], *, check_public: bool = True\n) -> DocstringSectionClasses\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_as_classes_section(classes)","title":"DocstringSectionClasses
\u2013 classes
","text":"(Sequence[Class]
) \u2013 check_public
","text":"(bool
, default: True
) \u2013 do_as_functions_section(\n context: Context, functions: Sequence[Function], *, check_public: bool = True\n) -> DocstringSectionFunctions\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_as_functions_section(functions)","title":"DocstringSectionFunctions
\u2013 functions
","text":"(Sequence[Function]
) \u2013 check_public
","text":"(bool
, default: True
) \u2013 do_as_modules_section(\n context: Context, modules: Sequence[Module], *, check_public: bool = True\n) -> DocstringSectionModules\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_as_modules_section(modules)","title":"DocstringSectionModules
\u2013 modules
","text":"(Sequence[Module]
) \u2013 check_public
","text":"(bool
, default: True
) \u2013 do_backlink_tree(backlinks: list[Backlink]) -> Tree[BacklinkCrumb]\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_backlink_tree(backlinks)","title":"Tree[BacklinkCrumb]
\u2013 backlinks
","text":"(list[Backlink]
) \u2013 do_crossref(path: str, *, brief: bool = True) -> Markup\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_crossref(path)","title":"Markup
\u2013 path
","text":"(str
) \u2013 brief
","text":"(bool
, default: True
) \u2013 do_filter_objects(\n objects_dictionary: dict[str, Object | Alias],\n *,\n filters: Sequence[tuple[Pattern, bool]] | Literal[\"public\"] | None = None,\n members_list: bool | list[str] | None = None,\n inherited_members: bool | list[str] = False,\n keep_no_docstrings: bool = True\n) -> list[Object | Alias]\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_filter_objects(objects_dictionary)","title":"list[Object | Alias]
\u2013 objects_dictionary
","text":"(dict[str, Object | Alias]
) \u2013 filters
","text":"(Sequence[tuple[Pattern, bool]] | Literal['public'] | None
, default: None
) \u2013 \"public\"
. Each element is a tuple: a pattern, and a boolean indicating whether to reject the object if the pattern matches.members_list
","text":"(bool | list[str] | None
, default: None
) \u2013 inherited_members
","text":"(bool | list[str]
, default: False
) \u2013 keep_no_docstrings
","text":"(bool
, default: True
) \u2013 do_format_attribute(\n context: Context,\n attribute_path: Markup,\n attribute: Attribute,\n line_length: int,\n *,\n crossrefs: bool = False\n) -> str\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_format_attribute(context)","title":"str
\u2013 context
","text":"(Context
) \u2013 attribute_path
","text":"(Markup
) \u2013 attribute
","text":"(Attribute
) \u2013 line_length
","text":"(int
) \u2013 crossrefs
","text":"(bool
, default: False
) \u2013 do_format_code(code: str, line_length: int) -> str\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_format_code(code)","title":"str
\u2013 code
","text":"(str
) \u2013 line_length
","text":"(int
) \u2013 do_format_signature(\n context: Context,\n callable_path: Markup,\n function: Function,\n line_length: int,\n *,\n annotations: bool | None = None,\n crossrefs: bool = False\n) -> str\n
Referenced by: str
\u2013
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_format_signature(context)","title":"context
","text":"(Context
) \u2013 callable_path
","text":"(Markup
) \u2013 function
","text":"(Function
) \u2013 line_length
","text":"(int
) \u2013 annotations
","text":"(bool | None
, default: None
) \u2013 crossrefs
","text":"(bool
, default: False
) \u2013 do_get_template(env: Environment, obj: str | Object) -> str\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_get_template(env)","title":"str
\u2013 env
","text":"(Environment
) \u2013 obj
","text":"(str | Object
) \u2013 do_multi_crossref(text: str, *, code: bool = True) -> Markup\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_multi_crossref(text)","title":"Markup
\u2013 text
","text":"(str
) \u2013 code
","text":"(bool
, default: True
) \u2013 do_order_members(\n members: Sequence[Object | Alias],\n order: Order | list[Order],\n members_list: bool | list[str] | None,\n) -> Sequence[Object | Alias]\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_order_members(members)","title":"Sequence[Object | Alias]
\u2013 members
","text":"(Sequence[Object | Alias]
) \u2013 order
","text":"(Order | list[Order]
) \u2013 members_list
","text":"(bool | list[str] | None
) \u2013 do_split_path(path: str, full_path: str) -> Iterator[tuple[str, str, str, str]]\n
"},{"location":"reference/api/#mkdocstrings_handlers.python.do_split_path(path)","title":"tuple[str, str, str, str]
\u2013 path
","text":"(str
) \u2013 full_path
","text":"(str
) \u2013 get_handler(\n handler_config: MutableMapping[str, Any], tool_config: MkDocsConfig, **kwargs: Any\n) -> PythonHandler\n
PythonHandler
.
"},{"location":"reference/api/#mkdocstrings_handlers.python.get_handler(handler_config)","title":"PythonHandler
\u2013 PythonHandler
.handler_config
","text":"(MutableMapping[str, Any]
) \u2013 tool_config
","text":"(MkDocsConfig
) \u2013 mkdocstrings_handlers.python
directly.mkdocstrings_handlers.python
directly.mkdocstrings_handlers.python
directly.# PEP 621 dependencies declaration\n# adapt to your dependencies manager\n[project]\ndependencies = [\n \"mkdocstrings[python]>=0.18\",\n]\n
# PEP 621 dependencies declaration\n# adapt to your dependencies manager\n[project]\ndependencies = [\n \"mkdocstrings-python\",\n]\n
default_handler
configuration option of mkdocstrings
in mkdocs.yml
:
"},{"location":"usage/#injecting-documentation","title":"Injecting documentation","text":"plugins:\n- mkdocstrings:\n default_handler: python\n
::: path.to.object\n
handler
option:
"},{"location":"usage/#configuration","title":"Configuration","text":"::: path.to.object\n handler: python\n
mkdocs.yml
:
"},{"location":"usage/#global-only-options","title":"Global-only options","text":"plugins:\n- mkdocstrings:\n handlers:\n python:\n ... # the Python handler configuration\n
inventories
","text":"plugins:\n- mkdocstrings:\n handlers:\n python:\n inventories:\n - https://docs.python.org/3/objects.inv\n
domains
option in the inventory options, which allows to select the inventory domains to load. By default the Python handler only selects the py
domain (for Python objects). You might find useful to also enable the std
domain:
"},{"location":"usage/#load_external_modules","title":"plugins:\n- mkdocstrings:\n handlers:\n python:\n inventories:\n - url: https://docs.python-requests.org/en/master/objects.inv\n domains: [std, py]\n
load_external_modules
","text":"True
will tell the handler to resolve aliases recursively when they are made public through the __all__
variable. By default, the handler will only resolve aliases when they point at a private sibling of the source package, for example aliases going from ast
to _ast
. Set load_external_modules
to False
to prevent even that.preload_modules
option instead, which acts as an include-list rather than as include-all.
"},{"location":"usage/#locale","title":"plugins:\n- mkdocstrings:\n handlers:\n python:\n load_external_modules: true\n
locale
","text":"paths
","text":"plugins:\n- mkdocstrings:\n handlers:\n python:\n paths: [src] # search packages in the src folder\n
options
key. For example, globally:plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n do_something: true\n
::: package.module.class\n options:\n do_something: false\n
"},{"location":"usage/#finding-modules","title":"Finding modules","text":"paths
option, as it's the only one that works with the -f
option of MkDocs, allowing to build the documentation from any location on the file system. Indeed, the paths provided with the paths
option are computed as relative to the configuration file (mkdocs.yml), so that the current working directory has no impact on the build process: you can build the docs from any location on your filesystem.paths
option","text":"
\ud83d\udcc1 root/\n\u251c\u2500\u2500 mkdocs.yml\n\u2514\u2500\u2500 \ud83d\udcc1 package/\n
plugins:\n- mkdocstrings:\n handlers:\n python:\n paths: [.] # actually not needed, default\n
mkdocs.yml in root, package in subfolder
\ud83d\udcc1 root/\n\u251c\u2500\u2500 mkdocs.yml\n\u2514\u2500\u2500 \ud83d\udcc1 src/\n \u2514\u2500\u2500 \ud83d\udcc1 package/\n
mkdocs.ymlplugins:\n- mkdocstrings:\n handlers:\n python:\n paths: [src]\n
mkdocs.yml in subfolder, package in root
\ud83d\udcc1 root/\n\u251c\u2500\u2500 \ud83d\udcc1 docs/\n\u2502 \u2514\u2500\u2500 mkdocs.yml\n\u2514\u2500\u2500 \ud83d\udcc1 package/\n
mkdocs.ymlplugins:\n- mkdocstrings:\n handlers:\n python:\n paths: [..]\n
mkdocs.yml in subfolder, package in subfolder
\ud83d\udcc1 root/\n\u251c\u2500\u2500 \ud83d\udcc1 docs/\n\u2502 \u2514\u2500\u2500 mkdocs.yml\n\u2514\u2500\u2500 \ud83d\udcc1 src/\n \u2514\u2500\u2500 \ud83d\udcc1 package/\n
mkdocs.ymlplugins:\n- mkdocstrings:\n handlers:\n python:\n paths: [../src]\n
Except for case 1, which is supported by default, we strongly recommend setting the path to your packages using this option, even if it works without it (for example because your project manager automatically adds src
to PYTHONPATH), to make sure anyone can build your docs from any location on their filesystem.
This method has limitations.
This method might work for you, with your current setup, but not for others trying your build your docs with their own setup/environment. We recommend using the paths
method instead.
You can take advantage of the usual Python loading mechanisms. In Bash and other shells, you can run your command like this (note the prepended PYTHONPATH=...
):
mkdocs.yml in root, package in root
\ud83d\udcc1 root/\n\u251c\u2500\u2500 mkdocs.yml\n\u2514\u2500\u2500 \ud83d\udcc1 package/\n
PYTHONPATH=. mkdocs build # actually not needed, default\n
mkdocs.yml in root, package in subfolder
\ud83d\udcc1 root/\n\u251c\u2500\u2500 mkdocs.yml\n\u2514\u2500\u2500 \ud83d\udcc1 src/\n \u2514\u2500\u2500 \ud83d\udcc1 package/\n
PYTHONPATH=src mkdocs build\n
mkdocs.yml in subfolder, package in root
\ud83d\udcc1 root/\n\u251c\u2500\u2500 \ud83d\udcc1 docs/\n\u2502 \u2514\u2500\u2500 mkdocs.yml\n\u2514\u2500\u2500 \ud83d\udcc1 package/\n
PYTHONPATH=. mkdocs build -f docs/mkdocs.yml\n
mkdocs.yml in subfolder, package in subfolder
\ud83d\udcc1 root/\n\u251c\u2500\u2500 \ud83d\udcc1 docs/\n\u2502 \u2514\u2500\u2500 mkdocs.yml\n\u2514\u2500\u2500 \ud83d\udcc1 src/\n \u2514\u2500\u2500 \ud83d\udcc1 package/\n
PYTHONPATH=src mkdocs build -f docs/mkdocs.yml\n
This method has limitations.
This method might work for you, with your current setup, but not for others trying your build your docs with their own setup/environment. We recommend using the paths
method instead.
Install your package in the current environment, and run MkDocs:
pipPDMPoetry. venv/bin/activate\npip install -e .\nmkdocs build\n
pdm install\npdm run mkdocs build\n
poetry install\npoetry run mkdocs build\n
"},{"location":"usage/customization/","title":"Customization","text":"It is possible to customize the output of the generated documentation with CSS and/or by overriding templates.
"},{"location":"usage/customization/#css-classes","title":"CSS classes","text":"Our templates add CSS classes to many HTML elements to make it possible for users to customize the resulting look and feel.
To add CSS rules and style mkdocstrings' output, put them in a CSS file in your docs folder, for example in docs/css/mkdocstrings.css
, and reference this file in MkDocs' extra_css
configuration option:
extra_css:\n- css/mkdocstrings.css\n
Example:
docs/css/mkdocstrings.css.doc-section-title {\n font-weight: bold;\n}\n
The following CSS classes are used in the generated HTML:
doc
: on all the following elementsdoc-children
: on div
s containing the children of an objectdoc-object
: on div
s containing an objectdoc-attribute
: on div
s containing an attributedoc-class
: on div
s containing a classdoc-function
: on div
s containing a functiondoc-module
: on div
s containing a moduledoc-heading
: on objects headingsdoc-object-name
: on span
s wrapping objects names/paths in the headingdoc-KIND-name
: as above, specific to the kind of object (module, class, function, attribute)doc-contents
: on div
s wrapping the docstring then the children (if any)first
: same, but only on the root object's contents div
doc-labels
: on span
s wrapping the object's labelsdoc-label
: on small
elements containing a labeldoc-label-LABEL
: same, where LABEL
is replaced by the actual labeldoc-section-title
: on section titles (depend on the selected style for section rendering)doc-section-item
: on section items (depend on the selected style for section rendering)doc-md-description
: on div
s containing HTML descriptions converted from Markdown docstringsdoc-symbol
: on code
tags of symbol typesdoc-symbol-heading
: on symbol types in headingsdoc-symbol-toc
: on symbol types in the ToCdoc-symbol-KIND
: specific to the kind of object (module
, class
, function
, method
, attribute
)Example with colorful labels
CSSResult.doc-label { border-radius: 15px; padding: 2px 8px; font-weight: bold; }\n.doc-label-special { background-color: #3330E4; color: white; }\n.doc-label-private { background-color: #F637EC; color: white; }\n.doc-label-property { background-color: #FBB454; color: black; }\n.doc-label-read-only { background-color: #FAEA48; color: black; }\n
special private property read-only
"},{"location":"usage/customization/#symbol-types","title":"Symbol types","text":""},{"location":"usage/customization/#colors","title":"Colors","text":"You can customize the colors of the symbol types (see show_symbol_type_heading
and show_symbol_type_toc
) by overriding the values of our CSS variables, for example:
[data-md-color-scheme=\"default\"] {\n --doc-symbol-parameter-fg-color: #df50af;\n --doc-symbol-attribute-fg-color: #0079ff;\n --doc-symbol-function-fg-color: #00dfa2;\n --doc-symbol-method-fg-color: #00dfa2;\n --doc-symbol-class-fg-color: #d1b619;\n --doc-symbol-module-fg-color: #ff0060;\n\n --doc-symbol-parameter-bg-color: #df50af1a;\n --doc-symbol-attribute-bg-color: #0079ff1a;\n --doc-symbol-function-bg-color: #00dfa21a;\n --doc-symbol-method-bg-color: #00dfa21a;\n --doc-symbol-class-bg-color: #d1b6191a;\n --doc-symbol-module-bg-color: #ff00601a;\n}\n\n[data-md-color-scheme=\"slate\"] {\n --doc-symbol-parameter-fg-color: #ffa8cc;\n --doc-symbol-attribute-fg-color: #963fb8;\n --doc-symbol-function-fg-color: #6d67e4;\n --doc-symbol-method-fg-color: #6d67e4;\n --doc-symbol-class-fg-color: #46c2cb;\n --doc-symbol-module-fg-color: #f2f7a1;\n\n --doc-symbol-parameter-bg-color: #ffa8cc1a;\n --doc-symbol-attribute-bg-color: #963fb81a;\n --doc-symbol-function-bg-color: #6d67e41a;\n --doc-symbol-method-bg-color: #6d67e41a;\n --doc-symbol-class-bg-color: #46c2cb1a;\n --doc-symbol-module-bg-color: #f2f7a11a;\n}\n
The [data-md-color-scheme=\"*\"]
selectors work with the Material for MkDocs theme. If you are using another theme, adapt the selectors to this theme if it supports light and dark themes, otherwise just override the variables at root level:
:root {\n --doc-symbol-parameter-fg-color: #df50af;\n --doc-symbol-attribute-fg-color: #0079ff;\n --doc-symbol-function-fg-color: #00dfa2;\n --doc-symbol-method-fg-color: #00dfa2;\n --doc-symbol-class-fg-color: #d1b619;\n --doc-symbol-module-fg-color: #ff0060;\n\n --doc-symbol-parameter-bg-color: #df50af1a;\n --doc-symbol-attribute-bg-color: #0079ff1a;\n --doc-symbol-function-bg-color: #00dfa21a;\n --doc-symbol-method-bg-color: #00dfa21a;\n --doc-symbol-class-bg-color: #d1b6191a;\n --doc-symbol-module-bg-color: #ff00601a;\n}\n
Preview
Try cycling through the themes to see the colors for each theme:
You can also change the actual symbol names. For example, to use single letters instead of truncated types:
docs/css/mkdocstrings.css.doc-symbol-parameter::after {\n content: \"P\";\n}\n\n.doc-symbol-attribute::after {\n content: \"A\";\n}\n\n.doc-symbol-function::after {\n content: \"F\";\n}\n\n.doc-symbol-method::after {\n content: \"M\";\n}\n\n.doc-symbol-class::after {\n content: \"C\";\n}\n\n.doc-symbol-module::after {\n content: \"M\";\n}\n
Preview
Templates are organized into the following tree:
\ud83d\udcc1 theme/\n\u251c\u2500\u2500 attribute.html\n\u251c\u2500\u2500 attribute.html.jinja\n\u251c\u2500\u2500 backlinks.html.jinja\n\u251c\u2500\u2500 children.html\n\u251c\u2500\u2500 children.html.jinja\n\u251c\u2500\u2500 class.html\n\u251c\u2500\u2500 class.html.jinja\n\u251c\u2500\u2500 \ud83d\udcc1 docstring/\n\u2502 \u251c\u2500\u2500 admonition.html\n\u2502 \u251c\u2500\u2500 admonition.html.jinja\n\u2502 \u251c\u2500\u2500 attributes.html\n\u2502 \u251c\u2500\u2500 attributes.html.jinja\n\u2502 \u251c\u2500\u2500 classes.html\n\u2502 \u251c\u2500\u2500 classes.html.jinja\n\u2502 \u251c\u2500\u2500 examples.html\n\u2502 \u251c\u2500\u2500 examples.html.jinja\n\u2502 \u251c\u2500\u2500 functions.html\n\u2502 \u251c\u2500\u2500 functions.html.jinja\n\u2502 \u251c\u2500\u2500 modules.html\n\u2502 \u251c\u2500\u2500 modules.html.jinja\n\u2502 \u251c\u2500\u2500 other_parameters.html\n\u2502 \u251c\u2500\u2500 other_parameters.html.jinja\n\u2502 \u251c\u2500\u2500 parameters.html\n\u2502 \u251c\u2500\u2500 parameters.html.jinja\n\u2502 \u251c\u2500\u2500 raises.html\n\u2502 \u251c\u2500\u2500 raises.html.jinja\n\u2502 \u251c\u2500\u2500 receives.html\n\u2502 \u251c\u2500\u2500 receives.html.jinja\n\u2502 \u251c\u2500\u2500 returns.html\n\u2502 \u251c\u2500\u2500 returns.html.jinja\n\u2502 \u251c\u2500\u2500 warns.html\n\u2502 \u251c\u2500\u2500 warns.html.jinja\n\u2502 \u251c\u2500\u2500 yields.html\n\u2502 \u2514\u2500\u2500 yields.html.jinja\n\u251c\u2500\u2500 docstring.html\n\u251c\u2500\u2500 docstring.html.jinja\n\u251c\u2500\u2500 expression.html\n\u251c\u2500\u2500 expression.html.jinja\n\u251c\u2500\u2500 function.html\n\u251c\u2500\u2500 function.html.jinja\n\u251c\u2500\u2500 labels.html\n\u251c\u2500\u2500 labels.html.jinja\n\u251c\u2500\u2500 language.html\n\u251c\u2500\u2500 language.html.jinja\n\u251c\u2500\u2500 \ud83d\udcc1 languages/\n\u2502 \u251c\u2500\u2500 en.html\n\u2502 \u251c\u2500\u2500 en.html.jinja\n\u2502 \u251c\u2500\u2500 ja.html\n\u2502 \u251c\u2500\u2500 ja.html.jinja\n\u2502 \u251c\u2500\u2500 zh.html\n\u2502 \u2514\u2500\u2500 zh.html.jinja\n\u251c\u2500\u2500 module.html\n\u251c\u2500\u2500 module.html.jinja\n\u251c\u2500\u2500 signature.html\n\u251c\u2500\u2500 signature.html.jinja\n\u251c\u2500\u2500 \ud83d\udcc1 summary/\n\u2502 \u251c\u2500\u2500 attributes.html\n\u2502 \u251c\u2500\u2500 attributes.html.jinja\n\u2502 \u251c\u2500\u2500 classes.html\n\u2502 \u251c\u2500\u2500 classes.html.jinja\n\u2502 \u251c\u2500\u2500 functions.html\n\u2502 \u251c\u2500\u2500 functions.html.jinja\n\u2502 \u251c\u2500\u2500 modules.html\n\u2502 \u2514\u2500\u2500 modules.html.jinja\n\u251c\u2500\u2500 summary.html\n\u2514\u2500\u2500 summary.html.jinja\n
See them in the repository. See the general mkdocstrings documentation to learn how to override them: https://mkdocstrings.github.io/theming/#templates.
Each one of these templates extends a base version in theme/_base
. Example:
{% extends \"_base/class.html\" %}\n
Some of these templates define Jinja blocks. allowing to customize only parts of a template without having to fully copy-paste it into your project:
templates/theme/class.html{% extends \"_base/class.html\" %}\n{% block contents %}\n {{ block.super }}\n Additional contents\n{% endblock contents %}\n
"},{"location":"usage/customization/#available-blocks","title":"Available blocks","text":"Only the templates for the Material for MkDocs provide Jinja blocks. The following tables show the block names, description, and the Jinja context available in their scope.
"},{"location":"usage/customization/#modulehtml","title":"module.html
","text":"heading
: The module heading.labels
: The module labels.contents
: The module contents: docstring and children blocks.docstring
: The module docstring.summary
: The automatic summaries of members.children
: The module children.Available context:
config
: The handler configuration (dictionary).module
: The Module instance.class.html
","text":"heading
: The class heading.labels
: The class labels.signature
: The class signature.contents
: The class contents: bases, docstring, source and children blocks.bases
: The class bases.docstring
: The class docstring.summary
: The automatic summaries of members.source
: The class source code.children
: The class children.Available context:
config
: The handler configuration (dictionary).class
: The Class instance.function.html
","text":"heading
: The function heading.labels
: The function labels.signature
: The function signature.contents
: The function contents: docstring and source blocks.docstring
: The function docstring.source
: The function source code.Available context:
config
: The handler configuration (dictionary).function
: The Function instance.attribute.html
","text":"heading
: The attribute heading.labels
: The attribute labels.signature
: The attribute signature.contents
: The attribute contents: docstring block.docstring
: The attribute docstring.Available context:
config
: The handler configuration (dictionary).attribute
: The Attribute instance.In docstring/attributes.html
, docstring/functions.html
, docstring/classes.html
, docstring/modules.html
, docstring/other_parameters.html
, docstring/parameters.html
, docstring/raises.html
, docstring/receives.html
, docstring/returns.html
, docstring/warns.html
, and docstring/yields.html
:
table_style
: The section as a table.list_style
: The section as a list.spacy_style
: The section as a Spacy table.Available context:
section
: The DocstringSection instance (see DocstringSection*
subclasses).You can customize the colors in syntax highlighted signatures. If you are using the Material for MkDocs theme, here are some customization examples:
/* Fancier color for operators such as * and |. */\n.doc-signature .o {\n color: var(--md-code-hl-special-color);\n}\n\n/* Fancier color for constants such as None, True, and False. */\n.doc-signature .kc {\n color: var(--md-code-hl-constant-color);\n}\n\n/* Fancier color for built-in types (only useful when cross-references are used). */\n.doc-signature .n > a[href^=\"https://docs.python.org/\"][href*=\"/functions.html#\"],\n.doc-signature .n > a[href^=\"https://docs.python.org/\"][href*=\"/stdtypes.html#\"] {\n color: var(--md-code-hl-constant-color);\n}\n
For other themes, use their own CSS variables, or use plain colors such as violet
or #2987f2
.
Here are some CSS rules for the Material for MkDocs theme:
/* Indentation. */\ndiv.doc-contents:not(.first) {\n padding-left: 25px;\n border-left: .05rem solid var(--md-typeset-table-color);\n}\n\n/* Mark external links as such. */\na.external::after,\na.autorefs-external::after {\n /* https://primer.style/octicons/arrow-up-right-24 */\n mask-image: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M18.25 15.5a.75.75 0 00.75-.75v-9a.75.75 0 00-.75-.75h-9a.75.75 0 000 1.5h7.19L6.22 16.72a.75.75 0 101.06 1.06L17.5 7.56v7.19c0 .414.336.75.75.75z\"></path></svg>');\n -webkit-mask-image: url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M18.25 15.5a.75.75 0 00.75-.75v-9a.75.75 0 00-.75-.75h-9a.75.75 0 000 1.5h7.19L6.22 16.72a.75.75 0 101.06 1.06L17.5 7.56v7.19c0 .414.336.75.75.75z\"></path></svg>');\n content: ' ';\n\n display: inline-block;\n vertical-align: middle;\n position: relative;\n\n height: 1em;\n width: 1em;\n background-color: currentColor;\n}\n\na.external:hover::after,\na.autorefs-external:hover::after {\n background-color: var(--md-accent-fg-color);\n}\n\n/* Tree-like output for backlinks. */\n.doc-backlink-list {\n --tree-clr: var(--md-default-fg-color);\n --tree-font-size: 1rem;\n --tree-item-height: 1;\n --tree-offset: 1rem;\n --tree-thickness: 1px;\n --tree-style: solid;\n display: grid;\n list-style: none !important;\n}\n\n.doc-backlink-list li > span:first-child {\n text-indent: .3rem;\n}\n.doc-backlink-list li {\n padding-inline-start: var(--tree-offset);\n border-left: var(--tree-thickness) var(--tree-style) var(--tree-clr);\n position: relative;\n margin-left: 0 !important;\n\n &:last-child {\n border-color: transparent;\n }\n &::before{\n content: '';\n position: absolute;\n top: calc(var(--tree-item-height) / 2 * -1 * var(--tree-font-size) + var(--tree-thickness));\n left: calc(var(--tree-thickness) * -1);\n width: calc(var(--tree-offset) + var(--tree-thickness) * 2);\n height: calc(var(--tree-item-height) * var(--tree-font-size));\n border-left: var(--tree-thickness) var(--tree-style) var(--tree-clr);\n border-bottom: var(--tree-thickness) var(--tree-style) var(--tree-clr);\n }\n &::after{\n content: '';\n position: absolute;\n border-radius: 50%;\n background-color: var(--tree-clr);\n top: calc(var(--tree-item-height) / 2 * 1rem);\n left: var(--tree-offset) ;\n translate: calc(var(--tree-thickness) * -1) calc(var(--tree-thickness) * -1);\n }\n}\n
"},{"location":"usage/customization/#readthedocs","title":"ReadTheDocs","text":"Here are some CSS rules for the built-in ReadTheDocs theme:
/* Indentation. */\ndiv.doc-contents:not(.first) {\n padding-left: 25px;\n border-left: .05rem solid rgba(200, 200, 200, 0.2);\n}\n
"},{"location":"usage/extensions/","title":"Extensions","text":""},{"location":"usage/extensions/#work-in-progress","title":"Work in Progress!","text":"The Python handler supports extensions through mkdocstrings' handler extensions.
Specifically, additional templates can be added to the handler, and Griffe extensions can instruct the handler to use a particular template for a particular object by setting a value in the Griffe object's extra
dictionary:
obj = ... # get a reference to a Griffe object\nif \"mkdocstrings\" not in obj.extra:\n obj.extra[\"mkdocstrings\"] = {}\nobj.extra[\"mkdocstrings\"][\"template\"] = \"template_name.html\"\n
"},{"location":"usage/configuration/docstrings/","title":"Docstrings options","text":""},{"location":"usage/configuration/docstrings/#docstring_style","title":"docstring_style
","text":"str
\"google\"
The docstring style to expect when parsing docstrings.
Possible values:
\"google\"
: see Google style.\"numpy\"
: see Numpy style.\"sphinx\"
: see Sphinx style.None
(null
or ~
in YAML): no style at all, parse as regular text.plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n docstring_style: google\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n docstring_style: numpy\n
The style is applied to the specified object only, not its members.
Local docstring_style
options (in :::
instructions) will only be applied to the specified object, and not its members. Instead of changing the style when rendering, we strongly recommend to set the right style as early as possible, for example by using the auto-style (sponsors only), or with a custom Griffe extension
Preview
Every style gets rendered the same way. Here are some docstring examples.
GoogleNumpySphinxdef greet(name: str) -> str:\n \"\"\"Greet someone.\n\n Parameters:\n name: The name of the person to greet.\n\n Returns:\n A greeting message.\n \"\"\"\n return f\"Hello {name}!\"\n
def greet(name: str) -> str:\n \"\"\"Greet someone.\n\n Parameters\n ----------\n name\n The name of the person to greet.\n\n Returns\n -------\n A greeting message.\n \"\"\"\n return f\"Hello {name}!\"\n
def greet(name: str) -> str:\n \"\"\"Greet someone.\n\n :param name: The name of the person to greet.\n :return: A greeting message.\n \"\"\"\n return f\"Hello {name}!\"\n
"},{"location":"usage/configuration/docstrings/#docstring_options","title":"docstring_options
PrintOK
PrintOK
","text":"dict
{}
The options for the docstring parser.
The Sphinx style does not offer any option.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n docstring_options:\n ignore_init_summary: false\n trim_doctest_flags: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n docstring_options:\n ignore_init_summary: true\n trim_doctest_flags: false\n
class PrintOK:\n \"\"\"Class docstring.\"\"\"\n\n def __init__(self):\n \"\"\"Initialize the instance.\n\n Examples:\n >>> PrintOK() # doctest: +NORMALIZE_WHITESPACE\n ok\n \"\"\"\n print(\"ok\")\n
Preview
Ignore init summary, trim doctest flagsKeep init summary and doctest flagsClass docstring.
__init__
Examples:
>>> PrintOK()\nok\n
Class docstring.
__init__
Initialize the instance.
Examples:
>>> PrintOK() # doctest: +NORMALIZE_WHITESPACE\nok\n
"},{"location":"usage/configuration/docstrings/#docstring_section_style","title":"docstring_section_style
","text":"str
\"table\"
The style used to render docstring sections.
A section is a block of text that has a special meaning in a docstring. There are sections for documenting attributes of an object, parameters of a function, exceptions raised by a function, the return value of a function, etc.
Sections are parsed as structured data and can therefore be rendered in different ways. Possible values:
\"table\"
: a simple table, usually with type, name and description columns\"list\"
: a simple list, akin to what you get with the ReadTheDocs Sphinx theme\"spacy\"
: a poor implementation of the amazing tables in Spacy's documentationplugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n docstring_section_style: table\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n docstring_section_style: list\n
Preview
TableListSpacyTables work well when you have lots of items with short names, type annotations, descriptions, etc.. With longer strings, the columns risk getting squished horizontally. In that case, the Spacy tables can help.
Parameters:
Type Name Description Defaultint
threshold
Threshold for something. required bool
flag
Enable something. False
Other Parameters:
Type Name Description Defaultlist[int | float]
gravity_forces
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. required VacuumType | Literal[\"regular\"]
vacuum_type
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. VacuumType.PLASMA
Lists work well whatever the length of names, type annotations, descriptions, etc.
Parameters:
threshold
(int
) \u2014 Threshold for something.flag
(bool
) \u2014 Enable something.Other Parameters:
gravity_forces
(list[int | float]
) \u2014 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.vacuum_type
(VacuumType | Literal[\"regular\"]
) \u2014 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Spacy tables work better than regular tables with longer names, type annotations, descriptions, etc., by reserving more horizontal space on the second column.
Parameters:
Name Descriptionthreshold
Threshold for something.TYPE: int
DEFAULT: required flag
Enable something.TYPE: bool
DEFAULT: False
Other Parameters:
Name Descriptiongravity_forces
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.TYPE: list[int | float]
DEFAULT: required vacuum_type
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.TYPE:VacuumType | Literal[\"regular\"]
DEFAULT: VacuumType.PLASMA
"},{"location":"usage/configuration/docstrings/#merge_init_into_class","title":"merge_init_into_class
Thing(value=0)
Thing
","text":"bool
False
Whether to merge the __init__
method into the class' signature and docstring.
By default, only the class name is rendered in headings. When merging, the __init__
method parameters are added after the class name, like a signature, and the __init__
method docstring is appended to the class' docstring. This option is well used in combination with the ignore_init_summary
docstring option, to discard the first line of the __init__
docstring which is not often useful.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n docstring_options:\n ignore_init_summary: false\n merge_init_into_class: false\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n docstring_options:\n ignore_init_summary: true\n merge_init_into_class: true\n
class Thing:\n \"\"\"A class for things.\"\"\"\n\n def __init__(self, value: int = 0):\n \"\"\"Initialize a thing.\n\n Parameters:\n value: The thing's value.\n \"\"\"\n self.value = value\n
Preview
Merged, summary discardedUnmerged, summary keptClass docstring.
Parameters:
Type Name Description Defaultint
value
The thing's value. 0
Class docstring.
__init__(value=0)
Initialize a thing.
Parameters:
Type Name Description Defaultint
value
The thing's value. 0
"},{"location":"usage/configuration/docstrings/#relative_crossrefs","title":"relative_crossrefs
","text":"Sponsors only \u2014 Insiders 1.9.0
bool
False
Whether to enable the relative-crossref syntax.
The relative-crossref syntax lets you reference the current object or its parent by prefixing a crossref identifier with dots. For example, to cross-reference the current object's name
member, you can write [link to name attribute][.name]
. The \"current object\" is the object containing the docstring being rendered.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n relative_crossrefs: false\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n relative_crossrefs: true\n
Examples
pkg/module.py\"\"\"Summary.\n\n- Link to [`module`][.].\n- Link to [`module_attribute`][.module_attribute].\n- Link to [`Class`][.Class].\n- Link to [`class_attribute`][.Class.class_attribute].\n- Link to [`instance_attribute`][.Class.instance_attribute].\n- Link to [`method`][.Class.method].\n\"\"\"\n\nmodule_attribute = 0\n\"\"\"Summary.\n\n- Link to [`module`][..].\n- Link to [`module_attribute`][.].\n- Link to [`Class`][..Class].\n- Link to [`class_attribute`][..Class.class_attribute].\n- Link to [`instance_attribute`][..Class.instance_attribute].\n- Link to [`method`][..Class.method].\n\"\"\"\n\nclass Class:\n \"\"\"Summary.\n\n - Link to [`module`][..].\n - Link to [`module_attribute`][..module_attribute].\n - Link to [`Class`][.].\n - Link to [`class_attribute`][.class_attribute].\n - Link to [`instance_attribute`][.instance_attribute].\n - Link to [`method`][.method].\n \"\"\"\n\n class_attribute = 0\n \"\"\"Summary.\n\n - Link to [`module`][...].\n - Link to [`module_attribute`][...module_attribute].\n - Link to [`Class`][..].\n - Link to [`class_attribute`][.].\n - Link to [`instance_attribute`][..instance_attribute].\n - Link to [`method`][..method].\n \"\"\"\n\n def __init__(self):\n \"\"\"Summary.\n\n - Link to [`module`][...].\n - Link to [`module_attribute`][...module_attribute].\n - Link to [`Class`][..].\n - Link to [`class_attribute`][..class_attribute].\n - Link to [`instance_attribute`][..instance_attribute].\n - Link to [`method`][..method].\n \"\"\"\n self.instance_attribute = 0\n \"\"\"Summary.\n\n - Link to [`module`][...].\n - Link to [`module_attribute`][...module_attribute].\n - Link to [`Class`][..].\n - Link to [`class_attribute`][..class_attribute].\n - Link to [`instance_attribute`][.].\n - Link to [`method`][..method].\n \"\"\"\n\n def method(self):\n \"\"\"Summary.\n\n - Link to [`module`][...].\n - Link to [`module_attribute`][...module_attribute].\n - Link to [`Class`][..].\n - Link to [`class_attribute`][..class_attribute].\n - Link to [`instance_attribute`][..instance_attribute].\n - Link to [`method`][.].\n \"\"\"\n
There is an alternative, third-party Python handler that handles relative references: mkdocstrings-python-xref.
"},{"location":"usage/configuration/docstrings/#scoped_crossrefs","title":"scoped_crossrefs
","text":"Sponsors only \u2014 Insiders 1.9.0
bool
False
Whether to enable scoped cross-references.
With scoped cross-references, you can write identifiers as if you wanted to access them from the current object's scope. The scoping rules do not exactly match Python's: you can reference members and siblings too, without prefixing with self.
or cls.
.
The following order is applied when resolving a name in a given scope:
In practice, it means that the name is first looked up in members, then it is compared against the parent name (only if it's a class), then it is looked up in siblings. It continues climbing up the object tree until there's no parent, in which case it raises a name resolution error.
Cross-referencing an imported object will directly link to this object if the objects inventory of the project it comes from was loaded. You won't be able to cross-reference it within your own documentation with scoped references, if you happen to be rendering this external object too. In that case, you can use an absolute reference or a relative one instead.
Another limitation is that you won't be able to reference an external package if its name can be resolved in the current object's scope.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n scoped_crossrefs: false\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n scoped_crossrefs: true\n
Examples
pkg/module.py\"\"\"Summary.\n\n- Link to [`module_attribute`][module_attribute].\n- Link to [`Class`][Class].\n- Link to [`class_attribute`][Class.class_attribute].\n- Link to [`instance_attribute`][Class.instance_attribute].\n- Link to [`method`][Class.method].\n\"\"\"\n\nmodule_attribute = 0\n\"\"\"Summary.\n\n- Link to [`Class`][Class].\n- Link to [`class_attribute`][Class.class_attribute].\n- Link to [`instance_attribute`][Class.instance_attribute].\n- Link to [`method`][Class.method].\n\"\"\"\n\nclass Class:\n \"\"\"Summary.\n\n - Link to [`module_attribute`][module_attribute].\n - Link to [`class_attribute`][class_attribute].\n - Link to [`instance_attribute`][instance_attribute].\n - Link to [`method`][method].\n \"\"\"\n\n class_attribute = 0\n \"\"\"Summary.\n\n - Link to [`module_attribute`][module_attribute].\n - Link to [`Class`][Class].\n - Link to [`instance_attribute`][instance_attribute].\n - Link to [`method`][method].\n \"\"\"\n\n def __init__(self):\n \"\"\"Summary.\n\n - Link to [`module_attribute`][module_attribute].\n - Link to [`Class`][Class].\n - Link to [`class_attribute`][class_attribute].\n - Link to [`instance_attribute`][instance_attribute].\n - Link to [`method`][method].\n \"\"\"\n self.instance_attribute = 0\n \"\"\"Summary.\n\n - Link to [`module_attribute`][module_attribute].\n - Link to [`Class`][Class].\n - Link to [`class_attribute`][class_attribute].\n - Link to [`method`][method].\n \"\"\"\n\n def method(self):\n \"\"\"Summary.\n\n - Link to [`module_attribute`][module_attribute].\n - Link to [`Class`][Class].\n - Link to [`class_attribute`][class_attribute].\n - Link to [`instance_attribute`][instance_attribute].\n \"\"\"\n
"},{"location":"usage/configuration/docstrings/#show_if_no_docstring","title":"show_if_no_docstring
function_without_docstring
function_with_docstring
ClassWithoutDocstring
function_with_docstring
ClassWithoutDocstring
","text":"bool
False
Show the object heading even if it has no docstring or children with docstrings.
Without an explicit list of members
, members are selected based on filters
, and then filtered again to keep only those with docstrings. Checking if a member has a docstring is done recursively: if at least one of its direct or indirect members (lower in the tree) has a docstring, the member is rendered. If the member does not have a docstring, and none of its members have a docstring, it is excluded.
With this option you can tell the Python handler to skip the docstring check.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_if_no_docstring: false\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_if_no_docstring: true\n
def function_without_docstring():\n ...\n\n\ndef function_with_docstring():\n \"\"\"Hello.\"\"\"\n\n\nclass ClassWithoutDocstring:\n def method_without_docstring(self):\n ...\n\n def method_with_docstring(self):\n \"\"\"Hello.\"\"\"\n
Preview
ShowDon't showHello.
method_without_docstring
method_with_docstring
Hello.
Hello.
method_with_docstring
Hello.
"},{"location":"usage/configuration/docstrings/#show_docstring_attributes","title":"show_docstring_attributes
Class
Class
","text":"bool
True
Whether to render the \"Attributes\" sections of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_attributes: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_attributes: false\n
class Class:\n \"\"\"Summary.\n\n Attributes:\n attr: Some attribute.\n \"\"\"\n\n attr: int = 1\n
Preview
With attributesWithout attributesSummary.
Attributes:
Type Name Descriptionint
attr
Some attribute. Summary.
"},{"location":"usage/configuration/docstrings/#show_docstring_functions","title":"show_docstring_functions
modulemodule","text":"bool
True
Whether to render the \"Functions\" or \"Methods\" sections of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_functions: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_functions: false\n
\"\"\"Summary.\n\nFunctions:\n foo: Some function.\n\"\"\"\n\n\ndef foo():\n ...\n\n\nclass Class:\n \"\"\"Summary.\n\n Methods:\n bar: Some method.\n \"\"\"\n\n def bar(self):\n ...\n
Preview
With functionsWithout functionsSummary.
Functions:
Name Descriptionfoo
Some function. Class
Summary.
Methods:
Name Descriptionbar
Some method. Summary.
Class
Summary.
"},{"location":"usage/configuration/docstrings/#show_docstring_classes","title":"show_docstring_classes
modulemodule","text":"bool
True
Whether to render the \"Classes\" sections of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_classes: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_classes: false\n
\"\"\"Summary.\n\nClasses:\n Class: Some class.\n\"\"\"\n\n\nclass Class:\n \"\"\"Summary.\"\"\"\n
Preview
With classesWithout classesSummary.
Classes:
Name DescriptionClass
Some class. Class
Summary.
Summary.
Class
Summary.
"},{"location":"usage/configuration/docstrings/#show_docstring_modules","title":"show_docstring_modules
modulemodule","text":"bool
True
Whether to render the \"Modules\" sections of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_modules: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_modules: false\n
\ud83d\udcc1 module/\n\u251c\u2500\u2500 __init__.py\n\u2514\u2500\u2500 submodule.py\n
module/__init__.py\"\"\"Summary.\n\nModules:\n submodule: Some module.\n\"\"\"\n
Preview
With modulesWithout modulesSummary.
Modules:
Name Descriptionsubmodule
Some module. Summary.
"},{"location":"usage/configuration/docstrings/#show_docstring_description","title":"show_docstring_description
Class
Class
","text":"bool
True
Whether to render the textual blocks (including admonitions) of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_description: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_description: false\n
class Class:\n \"\"\"Summary.\n\n Long description.\n\n Warning: Deprecated\n Stop using this class.\n\n Attributes:\n attr: Some attribute.\n \"\"\"\n\n attr: int = 1\n
Preview
With description blocksWithout description blocksSummary.
Long description.
DeprecatedStop using this class.
Attributes:
Type Name Descriptionint
attr
Some attribute. Attributes:
Type Name Descriptionint
attr
Some attribute. "},{"location":"usage/configuration/docstrings/#show_docstring_examples","title":"show_docstring_examples
print_hello
print_hello
","text":"bool
True
Whether to render the \"Examples\" section of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_examples: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_examples: false\n
def print_hello():\n \"\"\"Print hello.\n\n Examples:\n >>> print(\"hello\")\n hello\n \"\"\"\n print(\"hello\")\n
Preview
With examplesWithout examplesPrint hello.
Examples:
>>> print(\"hello\")\nhello\n
Print hello.
"},{"location":"usage/configuration/docstrings/#show_docstring_other_parameters","title":"show_docstring_other_parameters
do_something
do_something
","text":"bool
True
Whether to render the \"Other Parameters\" section of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_other_parameters: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_other_parameters: false\n
def do_something(**kwargs):\n \"\"\"Do something.\n\n Other parameters:\n whatever (int): Some integer.\n \"\"\"\n
Preview
With other parametersWithout other parametersDo something.
Other parameters:
Type Name Descriptionint
whatever
Some integer. Do something.
"},{"location":"usage/configuration/docstrings/#show_docstring_parameters","title":"show_docstring_parameters
do_something
do_something
","text":"bool
True
Whether to render the \"Parameters\" section of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_parameters: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_parameters: false\n
def do_something(whatever: int = 0):\n \"\"\"Do something.\n\n Parameters:\n whatever: Some integer.\n \"\"\"\n
Preview
With parametersWithout parametersDo something.
Parameters:
Type Name Description Defaultint
whatever
Some integer. 0
Do something.
"},{"location":"usage/configuration/docstrings/#show_docstring_raises","title":"show_docstring_raises
raise_runtime_error
raise_runtime_error
","text":"bool
True
Whether to render the \"Raises\" section of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_raises: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_raises: false\n
def raise_runtime_error():\n \"\"\"Raise a runtime error.\n\n Raises:\n RuntimeError: Not good.\n \"\"\"\n raise RuntimeError\n
Preview
With exceptionsWithout exceptionsRaise a runtime error.
Raises:
Type DescriptionRuntimeError
Not good. Raise a runtime error.
"},{"location":"usage/configuration/docstrings/#show_docstring_receives","title":"show_docstring_receives
iter_skip
iter_skip
","text":"bool
True
Whether to render the \"Receives\" section of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_receives: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_receives: false\n
def iter_skip(\n iterable: Iterable[T],\n initial_skip: int = 0,\n) -> Generator[T, int, None]:\n \"\"\"Iterate and skip elements.\n\n Receives:\n skip: Number of elements to skip.\n \"\"\"\n skip = initial_skip\n for element in iterable:\n if skip or 0 > 0:\n skip -= 1\n else:\n skip = yield element\n
Preview
With received valuesWithout received valuesIterate and skip elements.
Receives:
Type Descriptionint
Number of elements to skip. Iterate and skip elements.
"},{"location":"usage/configuration/docstrings/#show_docstring_returns","title":"show_docstring_returns
rand
rand
","text":"bool
True
Whether to render the \"Returns\" section of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_returns: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_returns: false\n
def rand() -> int:\n \"\"\"Return a random number.\n\n Returns:\n A random number.\n \"\"\"\n return random.randint(0, 1000)\n
Preview
With return valueWithout return valueReturn a random number.
Returns:
Type Descriptionint
A random number. Return a random number.
"},{"location":"usage/configuration/docstrings/#show_docstring_warns","title":"show_docstring_warns
warn
warn
","text":"bool
True
Whether to render the \"Warns\" section of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_warns: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_warns: false\n
def warn():\n \"\"\"Warn user.\n\n Warns:\n UserWarning: When this is inappropriate.\n \"\"\"\n warnings.warn(UserWarning(\"This is inappropriate\"))\n
Preview
With warningsWithout warningsWarn user.
Warns:
Type DescriptionUserWarning
When this is inappropriate. Warn user.
"},{"location":"usage/configuration/docstrings/#show_docstring_yields","title":"show_docstring_yields
iter_skip
iter_skip
","text":"bool
True
Whether to render the \"Yields\" section of docstrings.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_docstring_yields: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_docstring_yields: false\n
def iter_skip(\n iterable: Iterable[T],\n initial_skip: int = 0,\n) -> Generator[T, int, None]:\n \"\"\"Iterate and skip elements.\n\n Yields:\n Elements of the iterable.\n \"\"\"\n skip = initial_skip\n for element in iterable:\n if skip or 0 > 0:\n skip -= 1\n else:\n skip = yield element\n
Preview
With yielded valuesWithout yielded valuesIterate and skip elements.
Yields:
Type DescriptionT
Elements of the iterable. Iterate and skip elements.
"},{"location":"usage/configuration/general/","title":"General options","text":""},{"location":"usage/configuration/general/#allow_inspection","title":"allow_inspection
SomeClass
SomeClass
","text":"bool
True
Whether to allow inspecting modules (importing them) when it is not possible to visit them (parse their source code).
When loading data for a given package, Griffe discovers every Python module, compiled or not, and inspects or visits them accordingly.
If you have compiled modules but also provide stubs for them, you might want to disable the inspection of these modules, because inspection picks up many more members, and sometimes the collected data is inaccurate (depending on the tool that was used to compile the module) or too low-level/technical for API documentation.
See also force_inspection
.
Packages are loaded only once.
When mkdocstrings-python collects data from a Python package (thanks to Griffe), it collects the entire package and caches it. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. The allow_inspection
option will therefore only have an effect the first time a package is collected, and will do nothing for objects rendered afterwards.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n allow_inspection: true\n
or in docs/some_page.md (local configuration)::: path.to.object\n options:\n allow_inspection: false\n
Preview
With inspectionWithout inspectionDocstring of the class.
__eq__
Method docstring.
__weakref__
Method docstring.
documented_method
Method docstring.
Docstring of the class.
documented_method
Method docstring.
"},{"location":"usage/configuration/general/#backlinks","title":"backlinks
","text":"Sponsors only \u2014 Insiders 1.10.0
Literal[\"flat\", \"tree\", False]
False
The backlinks
option enables rendering of backlinks within your API documentation.
When an arbitrary section of your documentation links to an API symbol, this link will be collected as a backlink, and rendered below your API symbol. In short, the API symbol will link back to the section that links to it. Such backlinks will help your users navigate the documentation, as they will immediately which functions return a specific symbol, or where a specific symbol is accepted as parameter, etc..
Each backlink is a list of breadcrumbs that represent the navigation, from the root page down to the given section.
The available styles for rendering backlinks are flat
and tree
.
flat
will render backlinks as a single-layer list. This can lead to repetition of breadcrumbs.tree
will combine backlinks into a tree, to remove repetition of breadcrumbs.Global-only option.
For now, the option only works when set globally in mkdocs.yml
.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n backlinks: tree\n
Preview
FlatTree "},{"location":"usage/configuration/general/#extensions","title":"extensions
","text":"list[str | dict[str, dict[str, Any]]]
[]
The extensions
option lets you enable Griffe extensions, which enhance or modify the data collected from Python sources (or compiled modules).
Elements in the list can be strings or dictionaries.
Strings denote the path to an extension module, like griffe_typingdoc
, or to an extension class directly, like griffe_typingdoc.TypingDocExtension
. When using a module path, all extensions within that module will be loaded and enabled. Strings can also be the path to a Python module, and a class name separated with :
, like scripts/griffe_extensions.py
or scripts/griffe_extensions.py:MyExtension
.
Dictionaries have a single key, which is the module/class path (as a dot-separated qualifier or file path and colon-separated class name, like above), and its value is another dictionary specifying options that will be passed when to class constructors when instantiating extensions.
Packages are loaded only once.
When mkdocstrings-python collects data from a Python package (thanks to Griffe), it collects the entire package and caches it. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. Only the extensions specified the first time the package is loaded will be used. You cannot use a different set of extensions for specific objects rendered afterwards, and you cannot deactivate extensions for objects rendered afterwards either.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n extensions:\n - griffe_sphinx\n - griffe_pydantic: {schema: true}\n - scripts/exts.py:DynamicDocstrings:\n paths: [mypkg.mymod.myobj]\n
or in docs/some_page.md (local configuration)::: your_package.your_module.your_func\n options:\n extensions:\n - griffe_typingdoc\n
"},{"location":"usage/configuration/general/#extra","title":"extra
","text":"dict
{}
The extra
option lets you inject additional variables into the Jinja context used when rendering templates. You can then use this extra context in your overridden templates.
Local extra
options will be merged into the global extra
option:
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n extra:\n hello: world\n
in docs/some_page.md (local configuration)::: your_package.your_module.your_func\n options:\n extra:\n foo: bar\n
...will inject both hello
and foo
into the Jinja context when rendering your_package.your_module.your_func
.
Warning
Previously, extra options were supported directly under the options
key.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n hello: world\n
Now that we introduced optional validation of options and automatic JSON schema generation thanks to Pydantic, we require extra options to be put under options.extra
. Extra options directly under options
are still supported, but deprecated, and will emit deprecation warnings. Support will be removed in a future version of mkdocstrings-python.
find_stubs_package
your_func
your_func
","text":"bool
False
When looking for documentation specified in autodoc instructions (::: identifier
), also look for the stubs package as defined in PEP 561 if it exists. This is useful when most of your documentation is separately provided by such a package and not inline in your main package.
Packages are loaded only once.
When mkdocstrings-python collects data from a Python package (thanks to Griffe), it collects the entire package and caches it. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. The find_stubs_package
option will therefore only have an effect the first time a package is collected, and will do nothing for objects rendered afterwards.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n find_stubs_package: true\n
or in docs/some_page.md (local configuration)::: your_package.your_module.your_func\n options:\n find_stubs_package: true\n
your_package/your_module.pydef your_func(a, b):\n # Function code\n ...\n\n# rest of your code\n
your_package-stubs/your_module.pyidef your_func(a: int, b: str):\n \"\"\"\n <Function docstring>\n \"\"\"\n ...\n\n# rest of your code\n
Preview
With find_stubs_packageWithout find_stubs_packageFunction docstring
"},{"location":"usage/configuration/general/#force_inspection","title":"force_inspection
","text":"bool
False
Whether to force inspecting modules (importing them) even if their source code is available.
This option is useful when you know that dynamic analysis (inspection) yields better results than static analysis. Do not use this blindly: the recommended approach is to write a Griffe extension that will improve extracted API data. See How to selectively inspect objects.
See also allow_inspection
.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n force_inspection: false\n
or in docs/some_page.md (local configuration)::: path.to.object\n options:\n force_inspection: true\n
Packages are loaded only once.
When mkdocstrings-python collects data from a Python package (thanks to Griffe), it collects the entire package and caches it. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. The force_inspection
option will therefore only have an effect the first time a package is collected, and will do nothing for objects rendered afterwards.
preload_modules
your_module
your_module
","text":"list[str] | None
None
Pre-load modules that are not specified directly in autodoc instructions (::: identifier
). It is useful when you want to render documentation for a particular member of an object, and this member is imported from another package than its parent.
For an imported member to be rendered, you need to add it to the __all__
attribute of the importing module. The package from which the imported object originates must be accessible to the handler (see Finding modules).
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n preload_modules:\n - their_package\n
or in docs/some_page.md (local configuration)::: your_package.your_module\n options:\n preload_modules:\n - their_package\n
your_package/your_module.pyfrom their_package.their_module import their_object\n\n__all__ = [\"their_object\"]\n\n# rest of your code\n
Preview
With preloaded modulesWithout preloaded modulesDocstring of your module.
their_object
Docstring of their object.
Docstring of your module.
"},{"location":"usage/configuration/general/#show_bases","title":"show_bases
SomeClass()
SomeClass()
","text":"bool
True
Show the base classes of a class.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_bases: true\n
or in docs/some_page.md (local configuration)::: path.to.object\n options:\n show_bases: false\n
Preview
With basesWithout basesBases: SomeBaseClass
Docstring of the class.
Docstring of the class.
"},{"location":"usage/configuration/general/#show_inheritance_diagram","title":"show_inheritance_diagram
","text":"Sponsors only \u2014 Insiders 1.7.0
bool
False
Show the inheritance diagram of a class using Mermaid.
With this option enabled, an inheritance diagram (as a flowchart) will be displayed after a class signature. Each node will act as a cross-reference and will bring you to the relevant class' documentation when clicking on it.
It should work out of the box with Material for MkDocs. For other themes, you must include Mermaid's Javascript code manually:
mkdocs.ymlextra_javascript:\n- https://unpkg.com/mermaid@10.9.0/dist/mermaid.min.js\n
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_inheritance_diagram: true\n
or in docs/some_page.md (local configuration)::: path.to.object\n options:\n show_inheritance_diagram: false\n
Preview
With the following classes:
class SuperAbstract:\n \"\"\"Super abstract class.\"\"\"\nclass Mixin1:\n \"\"\"Mixin 1.\"\"\"\nclass Abstract(SuperAbstract, Mixin1):\n \"\"\"Abstract class.\"\"\"\nclass Mixin2A:\n \"\"\"Mixin 2A.\"\"\"\nclass Mixin2B(Mixin2A):\n \"\"\"Mixin 2B.\"\"\"\nclass Concrete(Abstract, Mixin2B):\n \"\"\"Concrete class.\"\"\"\nclass SuperConcrete(Concrete):\n \"\"\"Super concrete class.\"\"\"\n
The diagram for SuperConcrete
will look like this:
flowchart TD\nSuperConcrete[SuperConcrete]\nConcrete[Concrete]\nAbstract[Abstract]\nSuperAbstract[SuperAbstract]\nMixin1[Mixin1]\nMixin2B[Mixin2B]\nMixin2A[Mixin2A]\n\nConcrete --> SuperConcrete\nAbstract --> Concrete\nSuperAbstract --> Abstract\nMixin1 --> Abstract\nMixin2B --> Concrete\nMixin2A --> Mixin2B
Nodes are not clickable in this example because these classes do not exist in our documentation.
"},{"location":"usage/configuration/general/#show_source","title":"show_source
some_function()
some_function()
","text":"bool
True
Show the source code of this object.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_source: true\n
or in docs/some_page.md (local configuration)::: path.to.object\n options:\n show_source: false\n
Preview
With sourceWithout sourceDocstring of the function.
Source code inpackage/module.py
def some_function():\n ...\n
Docstring of the function.
"},{"location":"usage/configuration/headings/","title":"Headings options","text":""},{"location":"usage/configuration/headings/#heading","title":"heading
","text":"str
\"\"
A custom string to use as the heading of the root object (i.e. the object specified directly after the identifier :::
). This will override the default heading generated by the plugin. See also the toc_label
option.
Not advised to be used as a global configuration option.
This option is not advised to be used as a global configuration option, as it will override the default heading for all objects. It is recommended to use it only in specific cases where you want to override the heading for a specific object.
in docs/some_page.md (local configuration)::: path.to.module\n options:\n heading: \"My fancy module\"\n
"},{"location":"usage/configuration/headings/#heading_level","title":"heading_level
","text":"int
2
The initial heading level to use.
When injecting documentation for an object, the object itself and its members are rendered. For each layer of objects, we increase the heading level by 1.
The initial heading level will be used for the first layer. If you set it to 3, then headings will start with <h3>
.
If the heading for the root object is not shown, then the initial heading level is used for its members.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n heading_level: 2\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n heading_level: 3\n
Preview
With level 3 and root headingWith level 3, without root headingmodule
(3) Docstring of the module.
ClassA
(4) Docstring of class A.
ClassB
(4) Docstring of class B.
method_1
(5) Docstring of the method.
Docstring of the module.
ClassA
(3) Docstring of class A.
ClassB
(3) Docstring of class B.
method_1
(4) Docstring of the method.
"},{"location":"usage/configuration/headings/#parameter_headings","title":"parameter_headings
","text":"Insiders 1.6.0
bool
False
Whether to render headings for function/method parameters.
With this option enabled, each function/method parameter (including parameters of __init__
methods merged in their parent class with the merge_init_into_class
option) gets a permalink, an entry in the Table of Contents, and an entry in the generated objects inventory. The permalink and inventory entry allow cross-references from internal and external pages.
The identifier used in the permalink and inventory is of the following form: path.to.function(param_name)
. To manually cross-reference a parameter, you can therefore use this Markdown syntax:
- Class parameter: [`param`][package.module.Class(param)]\n- Method parameter: [`param`][package.module.Class.method(param)]\n- Function parameter: [`param`][package.module.function(param)]\n- Variadic positional parameters: [`*args`][package.module.function(*args)]\n- Variadic keyword parameters: [`**kwargs`][package.module.function(**kwargs)]\n
Enabling this option along with signature_crossrefs
will automatically render cross-references to parameters in class/function/method signatures and attributes values.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n parameter_headings: false\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n parameter_headings: true\n
Preview: Cross-references
Preview: Parameter sections
Table styleList styleSpacy styleParameters:
Name Type Description Defaultstr
A distribution name.
'mkdocstrings-python'
Parameters:
A distribution name.
TYPE: str
DEFAULT: 'mkdocstrings-python'
Preview: Table of contents (with symbol types)
get_version
dist
To customize symbols, see Customizing symbol types.
"},{"location":"usage/configuration/headings/#package.get_version","title":"get_version","text":"get_version(dist: str = 'mkdocstrings-python') -> str\n
Get version of the given distribution.
Parameters:
Returns:
str
\u2013 A version number.
dist
","text":"(str
, default: 'mkdocstrings-python'
) \u2013 A distribution name.
"},{"location":"usage/configuration/headings/#package.current_version","title":"current_versionmodule-attribute
","text":"current_version: str = get_version(dist='mkdocstrings-python')\n
Current package version.
"},{"location":"usage/configuration/headings/#package.get_version(dist)","title":"dist
","text":""},{"location":"usage/configuration/headings/#package.get_version(dist)","title":"dist
","text":"(str
, default: 'mkdocstrings-python'
) \u2013 A distribution name.
"},{"location":"usage/configuration/headings/#package.get_version(dist)","title":"dist
","text":""},{"location":"usage/configuration/headings/#show_root_heading","title":"show_root_heading
ClassA
(2)ClassB
(2)method_a1
(2)method_b1
(2)","text":"bool
False
Show the heading of the object at the root of the documentation tree (i.e. the object referenced by the identifier after :::
).
It is pretty common to inject documentation for one module per page, especially when following our automatic reference pages recipe. Since each page already has a title, usually being the module's name, we can spare one heading level by not showing the heading for the module itself (heading levels are limited to 6 by the HTML specification).
Sparing that extra level can be helpful when your objects tree is deeply nested (e.g. method in a class in a class in a module). If your objects tree is not deeply nested, and you are injecting documentation for many different objects on a single page, it might be preferable to render the heading of each object.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_root_heading: false\n
or in docs/some_page.md (local configuration)::: path.to.ClassA\n options:\n show_root_heading: true\n\n::: path.to.ClassB\n options:\n show_root_heading: true\n
Preview
With root headingWithout root headingDocstring of class A.
method_a1
(3) Docstring of the method.
Docstring of class B.
method_b1
(3) Docstring of the method.
Docstring of class A.
Docstring of the method.
Docstring of class B.
Docstring of the method.
"},{"location":"usage/configuration/headings/#show_root_toc_entry","title":"show_root_toc_entry
","text":"bool
True
If the root heading is not shown, at least add a ToC entry for it.
If you inject documentation for an object in the middle of a page, after long paragraphs, and without showing the root heading, then you will not be able to link to this particular object as it won't have a permalink and will be \"lost\" in the middle of text. In that case, it is useful to add a hidden anchor to the document, which will also appear in the table of contents.
In other cases, you might want to disable the entry to avoid polluting the ToC. It is not possible to show the root heading and hide the ToC entry.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_root_toc_entry: true\n
or in docs/some_page.md (local configuration)## Some heading\n\nLots of text.\n\n::: path.to.object\n options:\n show_root_toc_entry: false\n\n## Other heading.\n\nMore text.\n
Preview
With ToC entryWithout ToC entryTable of contents Some heading object
Other heading
Table of contents Some heading Other heading
"},{"location":"usage/configuration/headings/#show_root_full_path","title":"show_root_full_path
package.module.Class.method
method
","text":"bool
True
Show the full Python path for the root object heading.
The path of a Python object is the dot-separated list of names under which it is accessible, for example package.module.Class.method
.
With this option you can choose to show the full path of the object you inject documentation for, or just its name. This option impacts only the object you specify, not its members. For members, see the two other options show_root_members_full_path
and show_object_full_path
.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_root_full_path: true\n
or in docs/some_page.md (local configuration)::: package.module.Class.method\n options:\n show_root_full_path: false\n
Preview
With root full pathWithout root full pathDocstring of the method.
Docstring of the method.
"},{"location":"usage/configuration/headings/#show_root_members_full_path","title":"show_root_members_full_path
package.module.Class
Class
","text":"bool
False
Show the full Python path of the root members.
This option does the same thing as show_root_full_path
, but for direct members of the root object instead of the root object itself.
To show the full path for every member recursively, see show_object_full_path
.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_root_members_full_path: true\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n show_root_members_full_path: false\n
Preview
With members full pathWithout members full pathDocstring of the module.
Docstring of the class.
method
Docstring of the method.
Docstring of the module.
Docstring of the class.
method
Docstring of the method.
"},{"location":"usage/configuration/headings/#show_object_full_path","title":"show_object_full_path
package.module.Class
Class
","text":"bool
False
Show the full Python path of every object.
Same as for show_root_members_full_path
, but for every member, recursively. This option takes precedence over show_root_members_full_path
:
show_root_members_full_path
show_object_full_path
Direct root members path False False Name only False True Full True False Full True True Full in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_object_full_path: true\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n show_object_full_path: false\n
Preview
With objects full pathWithout objects full pathDocstring of the module.
Docstring of the class.
package.module.Class.method
Docstring of the method.
Docstring of the module.
Docstring of the class.
method
Docstring of the method.
"},{"location":"usage/configuration/headings/#show_category_heading","title":"show_category_heading
Attributes (2)Classes (2)module_attribute
(2)Class
(2)","text":"bool
False
When grouped by categories, show a heading for each category. These category headings will appear in the table of contents, allowing you to link to them using their permalinks.
Not recommended with deeply nested objects.
When injecting documentation for deeply nested objects, you'll quickly run out of heading levels, and the objects at the bottom of the tree risk all getting documented using H6 headings, which might decrease the readability of your API docs.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n group_by_category: true\n show_category_heading: true\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n group_by_category: true\n show_category_heading: false\n
Preview
With category headingsWithout category headingsDocstring of the module.
module_attribute
(3) Docstring of the module attribute.
Class
(3) Docstring of the class.
Attributes (4)class_attribute
(5) Docstring of the class attribute.
Methods (4)method
(5) Docstring of the method.
Docstring of the module.
Docstring of the module attribute.
Docstring of the class.
class_attribute
(3) Docstring of the class attribute.
method
(3) Docstring of the method.
"},{"location":"usage/configuration/headings/#show_symbol_type_heading","title":"show_symbol_type_heading
attribute
function
Class
attribute
function
Class
","text":"Insiders 1.1.0
bool
False
Show the symbol type in headings.
This option will prefix headings with ,
,
,
or
types. See also
show_symbol_type_toc
.
To customize symbols, see Customizing symbol types.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_symbol_type_heading: true\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n show_symbol_type_heading: false\n
Preview
With symbol type in headingsWithout symbol type in headings
module
Docstring of the module.
Docstring of the module attribute.
Docstring of the function.
Docstring of the class.
method
Docstring of the method.
module
Docstring of the module.
Docstring of the module attribute.
Docstring of the function.
Docstring of the class.
method
Docstring of the method.
"},{"location":"usage/configuration/headings/#show_symbol_type_toc","title":"show_symbol_type_toc
","text":"Insiders 1.1.0
bool
False
Show the symbol type in the Table of Contents.
This option will prefix items in the ToC with ,
,
,
or
types. See also
show_symbol_type_heading
.
To customize symbols, see Customizing symbol types.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_symbol_type_toc: true\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n show_symbol_type_toc: false\n
Preview
With symbol type in ToCWithout symbol type in ToC
module
attribute
function
Class
methodtoc_label
","text":"str
\"\"
A custom string to use as the label in the Table of Contents for the root object (i.e. the one specified directly after the identifier :::
). This will override the default label generated by the plugin. See also the heading
option.
Not advised to be used as a global configuration option.
This option is not advised to be used as a global configuration option, as it will override the default label for all objects. It is recommended to use it only in specific cases where you want to override the label for a specific object.
Use with/without heading
.
If you use this option without specifying a custom heading
, the default heading will be used in the page, but the label in the Table of Contents will be the one you specified. By providing both an option for heading
and toc_label
, we leave the customization entirely up to you.
::: path.to.module\n options:\n heading: \"My fancy module\"\n toc_label: \"My fancy module\"\n
"},{"location":"usage/configuration/members/","title":"Members options","text":""},{"location":"usage/configuration/members/#members","title":"members
this_function
ThisClass
this_attribute
ThisClass
","text":"list[str] | bool | None
None
An explicit list of members to render.
Only members declared in this list will be rendered. A member without a docstring will still be rendered, even if show_if_no_docstring
is set to false.
The members will be rendered in the specified order, regardless of the value of members_order
. Note that members will still be grouped by category, according to the group_by_category
option.
Passing a falsy value (no
, false
in YAML) or an empty list ([]
) will tell the Python handler not to render any member. Passing a truthy value (yes
, true
in YAML) will tell the Python handler to render every member.
Any given value, except for an explicit None
(null
in YAML) will tell the handler to ignore filters
for the object's members. Filters will still be applied to the next layers of members (grand-children).
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n members:\n - hello # (1)\n
::: package.module\n options:\n members:\n - ThisClass\n - this_function\n
package/module.py\"\"\"Module docstring.\"\"\"\n\n\ndef this_function():\n \"\"\"Function docstring.\"\"\"\n\n\nclass ThisClass:\n \"\"\"Class docstring.\"\"\"\n\n def method(self):\n \"\"\"Method docstring.\"\"\"\n\n\nthis_attribute = 0\n\"\"\"Attribute docstring.\"\"\"\n
Preview
Withmembers: true
With members: false
or members: []
With members: [ThisClass]
Module docstring.
Function docstring.
Class docstring.
method
Method docstring.
Attribute docstring.
Module docstring.
Module docstring.
Class docstring.
method
Method docstring.
The default behavior (with unspecified members
or members: null
) is to use filters
.
inherited_members
Base
Main
Base
Main
","text":"list[str] | bool
False
An explicit list of inherited members (for classes) to render.
Inherited members are always fetched from classes that are in the same package as the currently rendered class. To fetch members inherited from base classes, themselves coming from external packages, use the preload_modules
option. For example, if your class inherits from Pydantic's BaseModel
, and you want to render BaseModel
's methods in your class, use preload_modules: [pydantic]
. The pydantic
package must be available in the current environment.
Passing a falsy value (no
, false
in YAML) or an empty list ([]
) will tell the Python handler not to render any inherited member. Passing a truthy value (yes
, true
in YAML) will tell the Python handler to render every inherited member.
When all inherited members are selected with inherited_members: true
, it is possible to specify both members and inherited members in the members
list:
inherited_members: true\nmembers:\n- inherited_member_a\n- inherited_member_b\n- member_x\n- member_y\n
The alternative is not supported:
inherited_members:\n- inherited_member_a\n- inherited_member_b\nmembers:\n- member_x\n- member_y\n
...because it would make members ordering ambiguous/unspecified.
You can render inherited members only by setting inherited_members: true
(or a list of inherited members) and setting members: false
:
inherited_members: true\nmembers: false\n
inherited_members:\n- inherited_member_a\n- inherited_member_b\nmembers: false\n
You can render all declared members and all or specific inherited members by leaving members
as null (default):
inherited_members:\n- inherited_member_a\n- inherited_member_b\n# members: null # (1)\n
filters
and docstrings
.inherited_members: true # (1)\n# members: null\n
filters
and docstrings
.You can render all declared members and all or specific inherited members, avoiding further filtering with filters
and docstrings
by setting members: true
:
inherited_members: true\nmembers: true\n
inherited_members:\n- inherited_member_a\n- inherited_member_b\nmembers: true\n
The general rule is that declared or inherited members specified in lists are never filtered out.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n inherited_members: false\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n inherited_members: true\n
package/module.py\"\"\"Module docstring.\"\"\"\n\n\nclass Base:\n \"\"\"Base class.\"\"\"\n\n def base(self):\n \"\"\"Base method.\"\"\"\n\n\nclass Main(Base):\n \"\"\"Main class.\"\"\"\n\n def main(self):\n \"\"\"Main method.\"\"\"\n
Preview
With inherited membersWithout inherited membersModule docstring.
Base class.
base
Base method.
Main class.
base
Base method.
main
Main method.
Module docstring.
Base class.
base
Base method.
Main class.
main
Main method.
"},{"location":"usage/configuration/members/#members_order","title":"members_order
function_a
function_b
function_c
function_b
function_a
function_c
","text":"str | list[str]
\"alphabetical\"
The members ordering to use. Possible values:
__all__
( Sponsors only \u2014 Insiders 1.12.0): Order according to __all__
attributes. Since classes do not define __all__
attributes, you can specify a second ordering method by using a list.alphabetical
: Order by the members names.source
: Order members as they appear in the source file.The order applies for all members, recursively. The order will be ignored for members that are explicitely sorted using the members
option. Note that members will still be grouped by category, according to the group_by_category
option.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n members_order: alphabetical\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n members_order: source\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n members_order: [__all__, source]\n
package/module.py\"\"\"Module docstring.\"\"\"\n\n\ndef function_b():\n \"\"\"Function a.\"\"\"\n\n\ndef function_a():\n \"\"\"Function b.\"\"\"\n\n\ndef function_c():\n \"\"\"Function c.\"\"\"\n
Preview
With alphabetical orderWith source orderModule docstring.
Function a.
Function b.
Function c.
Module docstring.
Function b.
Function a.
Function c.
"},{"location":"usage/configuration/members/#filters","title":"filters
hello
_world
hello
_world
","text":"list[str] | Literal[\"public\"] | None
[\"!^_[^_]\"]
A list of filters, or \"public\"
.
Filtering methods
Sponsors only \u2014 Insiders 1.11.0
The public
filtering method will include only public objects: those added to the __all__
attribute of modules, or not starting with a single underscore. Special methods and attributes (\"dunder\" methods/attributes, starting and ending with two underscores), like __init__
, __call__
, __mult__
, etc., are always considered public.
List of filters
Filters are regular expressions. These regular expressions are evaluated by Python and so must match the syntax supported by the re
module. A filter starting with !
(negative filter) will exclude matching objects instead of including them.
The default value ([\"!^_[^_]\"]
) means: render every object, except those starting with one underscore, unless they start with two underscores. It means that an object whose name is hello
, __hello
, or __hello__
will be rendered, but not one whose name is _hello
.
Each filter takes precedence over the previous one. This allows for fine-grain selection of objects by adding more specific filters. For example, you can start by unselecting objects that start with _
, and add a second filter that re-select objects that start with __
. The default filters can therefore be rewritten like this:
filters:\n- \"!^_\"\n- \"^__\"\n
If there are no negative filters, the handler considers that everything is unselected first, and then selects things based on your positive filters. If there is at least one negative filter, the handler considers that everything is selected first, and then re-selects/unselects things based on your other filters. In short, filters: [\"a\"]
means \"keep nothing except names containing a
\", while filters: [\"!a\"]
means \"keep everything except names containing a
\".
An empty list of filters tells the Python handler to render every object. The members
option takes precedence over filters (filters will still be applied recursively to lower members in the hierarchy).
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n filters:\n - \"!^_[^_]\"\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n filters: public\n
package/module.pydef hello():\n ...\n\n\ndef _world():\n ...\n
Preview
Withfilters: []
With filters: [\"hello\"]
With filters: [\"!hello\"]
Module docstring.
Function docstring.
Function docstring.
Module docstring.
Function docstring.
Module docstring.
Function docstring.
Common filters
Here are some common filters that you might to want to use.
[\"!^_\"]
: exclude all private/protected/special objects[\"!^_\", \"^__init__$\"]
: same as above, but keep __init__
methods[\"!^_[^_]\"]
: exclude all private/protected objects, keep special ones (default filters)group_by_category
attribute_c
ClassB
function_a
function_d
function_a
ClassB
attribute_c
function_d
","text":"bool
True
Group the object members by categories: attributes, classes, functions, and modules.
Members within a same category will be ordered according to the members_order
option. You can use the show_category_heading
option to also render a heading for each category.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n group_by_category: true\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n group_by_category: false\n
package/module.pydef function_a():\n ...\n\n\nclass ClassB:\n ...\n\n\nattribute_C = 0\n\n\ndef function_d():\n ...\n
Preview
With category groupingWithout category groupingModule docstring.
Attribute docstring.
Class docstring.
Function docstring.
Function docstring.
Module docstring.
Function docstring.
Class docstring.
Attribute docstring.
Function docstring.
"},{"location":"usage/configuration/members/#show_submodules","title":"show_submodules
subpackage_member
submodule
subpackage_member
","text":"bool
False
When rendering a module, show its submodules recursively.
This is false by default, because most of the time we render only one module per page, and when rendering a package (a tree of modules and their members) on a single page, we quickly run out of heading levels.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_submodules: true\n
or in docs/some_page.md (local configuration)::: package.subpackage\n options:\n show_submodules: false\n
package\ud83d\udcc1 package\n\u251c\u2500\u2500 __init__.py\n\u2514\u2500\u2500 \ud83d\udcc1 subpackage\n \u251c\u2500\u2500 __init__.py\n \u2514\u2500\u2500 submodule.py\n
Preview
With submodulesWithout submodulesSubpackage docstring.
Member docstring.
Submodule docstring.
submodule_member
Member docstring.
Subpackage docstring.
Member docstring.
"},{"location":"usage/configuration/members/#summary","title":"summary
MyClassMyClass","text":"Insiders 1.2.0
bool | dict[str, bool]
False
Whether to render summaries of modules, classes, functions (methods) and attributes.
This option accepts a boolean (yes
, true
, no
, false
in YAML) or a dictionary with one or more of the following keys: attributes
, functions
, classes
, modules
, with booleans as values. Class methods summary is (de)activated with the functions
key. By default, summary
is false, and by extension all values are false.
Examples:
summary: true\n
summary: false\n
summary:\n attributes: false\n functions: true\n modules: false\n
Summaries will be rendered as the corresponding docstring sections. For example, the summary for attributes will be rendered as an Attributes docstring section. The section will be rendered in accordance with the docstring_section_style
option. If the objects appearing in the summary are also rendered on the page (or somewhere else on the site), their name will automatically link to their rendered documentation.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n summary: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n summary: false\n
Preview
With all summariesWith methods summary only::: path.to.module.MyClass\n options:\n summary: true\n
Class docstring.
Methods:
Attributes:
::: path.to.module.MyClass\n options:\n summary:\n functions: true\n
Class docstring.
Methods:
show_labels
","text":"bool
True
Whether to show labels of the members.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_labels: true\n
or in docs/some_page.md (local configuration)::: package.module\n options:\n show_labels: false\n
package/module.pyclass SomeClass:\n some_attr: int\n
Preview
With labelsWithout labels some_attr: int
instance-attribute
some_attr: int
annotations_path
convert(text, md)
convert(text, md)
convert(text, md)
","text":"str
\"brief\"
The verbosity for annotations path.
Possible values:
brief
(recommended): render only the last component of each type path, not their full paths. For example, it will render Sequence[Path]
and not typing.Sequence[pathlib.Path]
. Brief annotations will cross-reference the right object anyway, and show the full path in a tooltip when hovering them.source
: render annotations as written in the source. For example if you imported typing
as t
, it will render typing.Sequence
as t.Sequence
. Each part will cross-reference the relevant object: t
will link to the typing
module and Sequence
will link to the Sequence
type.full
: render annotations with their full path (the opposite of brief). For example if you import Sequence
and Pattern
from typing
and annoate something using Sequence[Pattern]
, it will render as typing.Sequence[typing.Pattern]
, with each part cross-referencing the corresponding object.plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n annotations_path: brief\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n annotations_path: source\n
Preview
Brief annotationsSource annotationsFull annotationsimport markdown\nimport markupsafe\n\n\ndef convert(text: str, md: markdown.Markdown) -> markupsafe.Markup:\n \"\"\"Convert text to Markdown.\n\n Parameters:\n text: The text to convert.\n md: A Markdown instance.\n\n Returns:\n Converted markup.\n \"\"\"\n return markupsafe.Markup(md.convert(text))\n
Convert text to Markdown.
Parameters:
Type Description Defaultstr
The text to convert. required Markdown
A Markdown instance. required Returns:
Type Name DescriptionMarkup
text
Converted markup. import markdown\nfrom markupsafe import Markup\n\n\ndef convert(text: str, md: markdown.Markdown) -> Markup:\n \"\"\"Convert text to Markdown.\n\n Parameters:\n text: The text to convert.\n md: A Markdown instance.\n\n Returns:\n Converted markup.\n \"\"\"\n return Markup(md.convert(text))\n
Convert text to Markdown.
Parameters:
Type Description Defaultstr
The text to convert. required markdown.Markdown
A Markdown instance. required Returns:
Type Name DescriptionMarkup
text
Converted markup. from markdown import Markdown\nfrom markupsafe import Markup\n\n\ndef convert(text: str, md: Markdown) -> Markup:\n \"\"\"Convert text to Markdown.\n\n Parameters:\n text: The text to convert.\n md: A Markdown instance.\n\n Returns:\n Converted markup.\n \"\"\"\n return Markup(md.convert(text))\n
Convert text to Markdown.
Parameters:
Type Description Defaultstr
The text to convert. required markdown.Markdown
A Markdown instance. required Returns:
Type Name Descriptionmarkupsafe.Markup
text
Converted markup. "},{"location":"usage/configuration/signatures/#line_length","title":"line_length
long_function_namelong_function_name","text":"int
60
Maximum line length when formatting code/signatures.
When separating signatures from headings with the separate_signature
option, the Python handler will try to format the signatures using a formatter and the specified line length.
The handler will automatically try to format using :
If a formatter is not found, the handler issues an INFO log once.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n separate_signature: true\n line_length: 60\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n separate_signature: true\n line_length: 80\n
Preview
Line length 60Line length 80long_function_name(\n long_parameter_1=\"hello\",\n long_parameter_2=\"world\",\n)
long_function_name(long_parameter_1=\"hello\", long_parameter_2=\"world\")
"},{"location":"usage/configuration/signatures/#modernize_annotations","title":"modernize_annotations
","text":"Sponsors only \u2014 Insiders 1.8.0 \u2014 This feature also requires Griffe Insiders to be installed.
bool
False
Modernize annotations with latest features and PEPs of the Python language.
The Python language keeps evolving, and often library developers must continue to support a few minor versions of Python. Therefore they cannot use some features that were introduced in the latest versions.
Yet this doesn't mean they can't enjoy latest features in their docs: Griffe allows to \"modernize\" expressions, for example by replacing typing.Union
with PEP 604 type unions |
. Thanks to this, mkdocstrings' Python handler can automatically transform type annotations into their modern equivalent. This improves consistency in your docs, and shows users how to use your code with the latest features of the language.
Modernizations applied:
typing.Dict[A, B]
becomes dict[A, B]
typing.List[A]
becomes list[A]
typing.Set[A]
becomes set[A]
typing.Tuple[A]
becomes tuple[A]
typing.Union[A, B]
becomes A | B
typing.Optional[A]
becomes A | None
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n modernize_annotations: true\n
or in docs/some_page.md (local configuration)::: path.to.object\n options:\n modernize_annotations: false\n
Preview
from typing import Optional, Union, List\n\nexample: Optional[Union[int, List[int]]] = None\n
Unchanged annotationsModernized annotations "},{"location":"usage/configuration/signatures/#package.modern.example","title":"example","text":"example: Optional[Union[int, List[int]]] = None\n
"},{"location":"usage/configuration/signatures/#package.modern.example","title":"example","text":"example: int | list[int] | None = None\n
"},{"location":"usage/configuration/signatures/#show_signature","title":"show_signature
function(param1, param2=None)
function
","text":"bool
True
Show methods and functions signatures.
Without it, just the function/method name is rendered.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_signature: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_signature: false\n
Preview
With signatureWithout signatureFunction docstring.
Function docstring.
"},{"location":"usage/configuration/signatures/#show_signature_annotations","title":"show_signature_annotations
functionfunction","text":"bool
False
Show the type annotations in methods and functions signatures.
Since the heading can become quite long when annotations are rendered, it is usually best to separate the signature from the heading.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n separate_signature: true\n show_signature_annotations: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n separate_signature: true\n show_signature_annotations: false\n
Preview
With signature annotationsWithout signature annotationsfunction(\n param1: list[int | float],\n param2: bool | None = None,\n) -> float\n
Function docstring.
function(param1, param2=None)\n
Function docstring.
"},{"location":"usage/configuration/signatures/#separate_signature","title":"separate_signature
functionfunction(param1, param2=None)
","text":"bool
False
Whether to put the whole signature in a code block below the heading.
When separating signatures from headings, the Python handler will try to format the signatures using a formatter and the specified line length.
The handler will automatically try to format using :
If a formatter is not found, the handler issues an INFO log once.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n separate_signature: false\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n separate_signature: true\n
Preview
With separate signatureWithout separate signaturefunction(param1, param2=None)\n
Function docstring.
Function docstring.
"},{"location":"usage/configuration/signatures/#show_overloads","title":"show_overloads
functionfunction","text":"Whether to render function / method overloads.
in mkdocs.yml (global configuration)plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n show_overloads: true\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n show_overloads: false\n
Preview
With overloadsWithout overloads@overload\nfunction(param1: int): ...\n\n@overload\nfunction(param1: str): ...\n\nfunction(param1: str | int)\n
Function docstring. function(param1: str | int)\n
Function docstring. "},{"location":"usage/configuration/signatures/#signature_crossrefs","title":"signature_crossrefs
do_format_codedo_format_code","text":"Insiders 1.0.0
Whether to render cross-references for type annotations in signatures.
When signatures are separated from headings with the separate_signature
option and type annotations are shown with the show_signature_annotations
option, this option will render a cross-reference (link) for each type annotation in the signature.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n separate_signature: true\n show_signature_annotations: true\n signature_crossrefs: false\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n separate_signature: true\n show_signature_annotations: true\n signature_crossrefs: true\n
Preview
With signature cross-referencesWithout signature cross-referencesdo_format_code(code: str, line_length: int) -> str\n
Function docstring.
do_format_code(code: str, line_length: int) -> str\n
Function docstring.
"},{"location":"usage/configuration/signatures/#unwrap_annotated","title":"unwrap_annotated
","text":"bool
False
Whether to unwrap Annotated
types to show only the type without the annotations.
For example, unwrapping Annotated[int, Gt(10)]
will render int
.
plugins:\n- mkdocstrings:\n handlers:\n python:\n options:\n unwrap_annotated: false\n
or in docs/some_page.md (local configuration)::: path.to.module\n options:\n unwrap_annotated: true\n
"},{"location":"usage/docstrings/google/","title":"Google style","text":""},{"location":"usage/docstrings/google/#work-in-progress","title":"Work in Progress!","text":""},{"location":"usage/docstrings/google/#google-style-admonitions","title":"Google-style admonitions","text":"With Google-style docstrings, any section that is not recognized will be transformed into its admonition equivalent. For example:
DocstringResult\"\"\"\nNote:\n It looks like a section, but it will be rendered as an admonition.\n\nTip: You can even choose a title.\n This admonition has a custom title!\n\"\"\"\n
Note
It looks like a section, but it will be rendered as an admonition.
You can even choose a title.
This admonition has a custom title!
See Napoleon's documentation. See the supported docstring sections on Griffe's documentation.
"},{"location":"usage/docstrings/numpy/","title":"Numpydoc style","text":""},{"location":"usage/docstrings/numpy/#work-in-progress","title":"Work in Progress!","text":"Note
As Numpy-style is partially supported by the underlying parser, you may experience problems in the building process if your docstring has a Methods
section in the class docstring (see #366).
See Numpydoc's documentation. See the supported docstring sections on Griffe's documentation.
"},{"location":"usage/docstrings/sphinx/","title":"Sphinx style","text":""},{"location":"usage/docstrings/sphinx/#work-in-progress","title":"Work in Progress!","text":"See Sphinx's documentation. See the supported docstring sections on Griffe's documentation.
"}]} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..0b14bb69 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,87 @@ + +{text}
"
- return Markup(text).format(**variables) # noqa: S704
-
-
-_split_path_re = re.compile(r"([.(]?)([\w]+)(\))?")
-_splitable_re = re.compile(r"[().]")
-
-
-def do_split_path(path: str, full_path: str) -> Iterator[tuple[str, str, str, str]]:
- """Split object paths for building cross-references.
-
- Parameters:
- path: The path to split.
- full_path: The full path, used to compute correct paths for each part of the path.
-
- Yields:
- 4-tuples: prefix, word, full path, suffix.
- """
- # Path is a single word, yield full path directly.
- if not _splitable_re.search(path):
- yield ("", path, full_path, "")
- return
-
- current_path = ""
- if path == full_path:
- # Split full path and yield directly without storing data in a dict.
- for match in _split_path_re.finditer(full_path):
- prefix, word, suffix = match.groups()
- current_path = f"{current_path}{prefix}{word}{suffix or ''}" if current_path else word
- yield prefix or "", word, current_path, suffix or ""
- return
-
- # Split full path first to store tuples in a dict.
- elements = {}
- for match in _split_path_re.finditer(full_path):
- prefix, word, suffix = match.groups()
- current_path = f"{current_path}{prefix}{word}{suffix or ''}" if current_path else word
- elements[word] = (prefix or "", word, current_path, suffix or "")
-
- # Then split path and pick tuples from the dict.
- first = True
- for match in _split_path_re.finditer(path):
- prefix, word, current_path, suffix = elements[match.group(2)]
- yield "" if first else prefix, word, current_path, suffix
- first = False
-
-
-def _keep_object(name: str, filters: Sequence[tuple[Pattern, bool]]) -> bool:
- keep = None
- rules = set()
- for regex, exclude in filters:
- rules.add(exclude)
- if regex.search(name):
- keep = not exclude
- if keep is None:
- # When we only include stuff, no match = reject.
- # When we only exclude stuff, or include and exclude stuff, no match = keep.
- return rules != {False}
- return keep
-
-
-def _parents(obj: Alias) -> set[str]:
- parent: Object | Alias = obj.parent # type: ignore[assignment]
- parents = {obj.path, parent.path}
- if parent.is_alias:
- parents.add(parent.final_target.path) # type: ignore[union-attr]
- while parent.parent:
- parent = parent.parent
- parents.add(parent.path)
- if parent.is_alias:
- parents.add(parent.final_target.path) # type: ignore[union-attr]
- return parents
-
-
-def _remove_cycles(objects: list[Object | Alias]) -> Iterator[Object | Alias]:
- suppress_errors = suppress(AliasResolutionError, CyclicAliasError)
- for obj in objects:
- if obj.is_alias:
- with suppress_errors:
- if obj.final_target.path in _parents(obj): # type: ignore[arg-type,union-attr]
- continue
- yield obj
-
-
-def do_filter_objects(
- objects_dictionary: dict[str, Object | Alias],
- *,
- filters: Sequence[tuple[Pattern, bool]] | Literal["public"] | None = None,
- members_list: bool | list[str] | None = None,
- inherited_members: bool | list[str] = False,
- keep_no_docstrings: bool = True,
-) -> list[Object | Alias]:
- """Filter a dictionary of objects based on their docstrings.
-
- Parameters:
- objects_dictionary: The dictionary of objects.
- filters: Filters to apply, based on members' names, or `"public"`.
- Each element is a tuple: a pattern, and a boolean indicating whether
- to reject the object if the pattern matches.
- members_list: An optional, explicit list of members to keep.
- When given and empty, return an empty list.
- When given and not empty, ignore filters and docstrings presence/absence.
- inherited_members: Whether to keep inherited members or exclude them.
- keep_no_docstrings: Whether to keep objects with no/empty docstrings (recursive check).
-
- Returns:
- A list of objects.
- """
- inherited_members_specified = False
- if inherited_members is True:
- # Include all inherited members.
- objects = list(objects_dictionary.values())
- elif inherited_members is False:
- # Include no inherited members.
- objects = [obj for obj in objects_dictionary.values() if not obj.inherited]
- else:
- # Include specific inherited members.
- inherited_members_specified = True
- objects = [
- obj for obj in objects_dictionary.values() if not obj.inherited or obj.name in set(inherited_members)
- ]
-
- if members_list is True:
- # Return all pre-selected members.
- return objects
-
- if members_list is False or members_list == []:
- # Return selected inherited members, if any.
- return [obj for obj in objects if obj.inherited]
-
- if members_list is not None:
- # Return selected members (keeping any pre-selected inherited members).
- return [
- obj for obj in objects if obj.name in set(members_list) or (inherited_members_specified and obj.inherited)
- ]
-
- # Use filters and docstrings.
- if filters == "public":
- objects = [obj for obj in objects if obj.is_public]
- elif filters:
- objects = [
- obj for obj in objects if _keep_object(obj.name, filters) or (inherited_members_specified and obj.inherited)
- ]
- if not keep_no_docstrings:
- objects = [obj for obj in objects if obj.has_docstrings or (inherited_members_specified and obj.inherited)]
-
- # Prevent infinite recursion.
- if objects:
- objects = list(_remove_cycles(objects))
-
- return objects
-
-
-@lru_cache(maxsize=1)
-def _get_formatter() -> Callable[[str, int], str]:
- for formatter_function in [
- _get_black_formatter,
- _get_ruff_formatter,
- ]:
- if (formatter := formatter_function()) is not None:
- return formatter
-
- _logger.info("Formatting signatures requires either Black or Ruff to be installed.")
- return lambda text, _: text
-
-
-def _get_ruff_formatter() -> Callable[[str, int], str] | None:
- try:
- from ruff.__main__ import find_ruff_bin
- except ImportError:
- return None
-
- try:
- ruff_bin = find_ruff_bin()
- except FileNotFoundError:
- ruff_bin = "ruff"
-
- def formatter(code: str, line_length: int) -> str:
- try:
- completed_process = subprocess.run( # noqa: S603
- [
- ruff_bin,
- "format",
- "--config",
- f"line-length={line_length}",
- "--stdin-filename",
- "file.py",
- "-",
- ],
- check=True,
- capture_output=True,
- text=True,
- input=code,
- )
- except subprocess.CalledProcessError:
- return code
- else:
- return completed_process.stdout
-
- return formatter
-
-
-def _get_black_formatter() -> Callable[[str, int], str] | None:
- try:
- from black import InvalidInput, Mode, format_str
- except ModuleNotFoundError:
- return None
-
- def formatter(code: str, line_length: int) -> str:
- mode = Mode(line_length=line_length)
- try:
- return format_str(code, mode=mode)
- except InvalidInput:
- return code
-
- return formatter
-
-
-# YORE: Bump 2: Remove line.
-@pass_environment
-# YORE: Bump 2: Replace `env: Environment, ` with `` within line.
-# YORE: Bump 2: Replace `str | ` with `` within line.
-def do_get_template(env: Environment, obj: str | Object) -> str:
- """Get the template name used to render an object.
-
- Parameters:
- env: The Jinja environment, passed automatically.
- obj: A Griffe object, or a template name.
-
- Returns:
- A template name.
- """
- name = obj
- if isinstance(obj, (Alias, Object)):
- extra_data = getattr(obj, "extra", {}).get("mkdocstrings", {})
- if name := extra_data.get("template", ""):
- return name
- name = obj.kind.value
- # YORE: Bump 2: Replace block with `return f"{name}.html.jinja"`.
- try:
- template = env.get_template(f"{name}.html")
- except TemplateNotFound:
- return f"{name}.html.jinja"
- our_template = Path(template.filename).is_relative_to(Path(__file__).parent.parent) # type: ignore[arg-type]
- if our_template:
- return f"{name}.html.jinja"
- _logger.warning(
- f"DeprecationWarning: Overriding '{name}.html' is deprecated, override '{name}.html.jinja' instead. ",
- once=True,
- )
- return f"{name}.html"
-
-
-@pass_context
-def do_as_attributes_section(
- context: Context, # noqa: ARG001
- attributes: Sequence[Attribute],
- *,
- check_public: bool = True,
-) -> DocstringSectionAttributes:
- """Build an attributes section from a list of attributes.
-
- Parameters:
- attributes: The attributes to build the section from.
- check_public: Whether to check if the attribute is public.
-
- Returns:
- An attributes docstring section.
- """
-
- def _parse_docstring_summary(attribute: Attribute) -> str:
- if attribute.docstring is None:
- return ""
- line = attribute.docstring.value.split("\n", 1)[0]
- if ":" in line and attribute.docstring.parser_options.get("returns_type_in_property_summary", False):
- _, line = line.split(":", 1)
- return line
-
- return DocstringSectionAttributes(
- [
- DocstringAttribute(
- name=attribute.name,
- description=_parse_docstring_summary(attribute),
- annotation=attribute.annotation,
- value=attribute.value, # type: ignore[arg-type]
- )
- for attribute in attributes
- if not check_public or attribute.is_public
- ],
- )
-
-
-@pass_context
-def do_as_functions_section(
- context: Context,
- functions: Sequence[Function],
- *,
- check_public: bool = True,
-) -> DocstringSectionFunctions:
- """Build a functions section from a list of functions.
-
- Parameters:
- functions: The functions to build the section from.
- check_public: Whether to check if the function is public.
-
- Returns:
- A functions docstring section.
- """
- keep_init_method = not context.parent["config"].merge_init_into_class
- return DocstringSectionFunctions(
- [
- DocstringFunction(
- name=function.name,
- description=function.docstring.value.split("\n", 1)[0] if function.docstring else "",
- )
- for function in functions
- if (not check_public or function.is_public) and (function.name != "__init__" or keep_init_method)
- ],
- )
-
-
-@pass_context
-def do_as_classes_section(
- context: Context, # noqa: ARG001
- classes: Sequence[Class],
- *,
- check_public: bool = True,
-) -> DocstringSectionClasses:
- """Build a classes section from a list of classes.
-
- Parameters:
- classes: The classes to build the section from.
- check_public: Whether to check if the class is public.
-
- Returns:
- A classes docstring section.
- """
- return DocstringSectionClasses(
- [
- DocstringClass(
- name=cls.name,
- description=cls.docstring.value.split("\n", 1)[0] if cls.docstring else "",
- )
- for cls in classes
- if not check_public or cls.is_public
- ],
- )
-
-
-@pass_context
-def do_as_modules_section(
- context: Context, # noqa: ARG001
- modules: Sequence[Module],
- *,
- check_public: bool = True,
-) -> DocstringSectionModules:
- """Build a modules section from a list of modules.
-
- Parameters:
- modules: The modules to build the section from.
- check_public: Whether to check if the module is public.
-
- Returns:
- A modules docstring section.
- """
- return DocstringSectionModules(
- [
- DocstringModule(
- name=module.name,
- description=module.docstring.value.split("\n", 1)[0] if module.docstring else "",
- )
- for module in modules
- if not check_public or module.is_public
- ],
- )
-
-
-class AutorefsHook(AutorefsHookInterface):
- """Autorefs hook.
-
- With this hook, we're able to add context to autorefs (cross-references),
- such as originating file path and line number, to improve error reporting.
- """
-
- def __init__(self, current_object: Object | Alias, config: dict[str, Any]) -> None:
- """Initialize the hook.
-
- Parameters:
- current_object: The object being rendered.
- config: The configuration dictionary.
- """
- self.current_object = current_object
- """The current object being rendered."""
- self.config = config
- """The configuration options."""
-
- def expand_identifier(self, identifier: str) -> str:
- """Expand an identifier.
-
- Parameters:
- identifier: The identifier to expand.
-
- Returns:
- The expanded identifier.
- """
- return identifier
-
- def get_context(self) -> AutorefsHookInterface.Context:
- """Get the context for the current object.
-
- Returns:
- The context.
- """
- role = {
- "attribute": "data" if self.current_object.parent and self.current_object.parent.is_module else "attr",
- "class": "class",
- "function": "meth" if self.current_object.parent and self.current_object.parent.is_class else "func",
- "module": "mod",
- }.get(self.current_object.kind.value.lower(), "obj")
- origin = self.current_object.path
- try:
- filepath = self.current_object.docstring.parent.filepath # type: ignore[union-attr]
- lineno = self.current_object.docstring.lineno or 0 # type: ignore[union-attr]
- except AttributeError:
- filepath = self.current_object.filepath
- lineno = 0
-
- return AutorefsHookInterface.Context(
- domain="py",
- role=role,
- origin=origin,
- filepath=str(filepath),
- lineno=lineno,
- )
-
-
-_T = TypeVar("_T")
-_Tree = dict[_T, "_Tree"]
-_rtree = lambda: defaultdict(_rtree) # type: ignore[has-type,var-annotated] # noqa: E731
-
-Tree = dict[tuple[_T, ...], "Tree"]
-"""A tree type. Each node holds a tuple of items."""
-
-
-def _tree(data: Iterable[tuple[_T, ...]]) -> _Tree:
- new_tree = _rtree()
- for nav in data:
- *path, leaf = nav
- node = new_tree
- for key in path:
- node = node[key]
- node[leaf] = _rtree()
- return new_tree
-
-
-def _compact_tree(tree: _Tree) -> Tree:
- new_tree = _rtree()
- for key, value in tree.items():
- child = _compact_tree(value)
- if len(child) == 1:
- child_key, child_value = next(iter(child.items()))
- new_key = (key, *child_key)
- new_tree[new_key] = child_value
- else:
- new_tree[(key,)] = child
- return new_tree
-
-
-def do_backlink_tree(backlinks: list[Backlink]) -> Tree[BacklinkCrumb]:
- """Build a tree of backlinks.
-
- Parameters:
- backlinks: The list of backlinks.
-
- Returns:
- A tree of backlinks.
- """
- return _compact_tree(_tree(backlink.crumbs for backlink in backlinks))
diff --git a/src/mkdocstrings_handlers/python/config.py b/src/mkdocstrings_handlers/python/config.py
deleted file mode 100644
index 5edab089..00000000
--- a/src/mkdocstrings_handlers/python/config.py
+++ /dev/null
@@ -1,17 +0,0 @@
-"""Deprecated. Import from `mkdocstrings_handlers.python` directly."""
-
-# YORE: Bump 2: Remove file.
-
-import warnings
-from typing import Any
-
-from mkdocstrings_handlers.python._internal import config
-
-
-def __getattr__(name: str) -> Any:
- warnings.warn(
- "Importing from `mkdocstrings_handlers.python.config` is deprecated. Import from `mkdocstrings_handlers.python` directly.",
- DeprecationWarning,
- stacklevel=2,
- )
- return getattr(config, name)
diff --git a/src/mkdocstrings_handlers/python/handler.py b/src/mkdocstrings_handlers/python/handler.py
deleted file mode 100644
index 5b334860..00000000
--- a/src/mkdocstrings_handlers/python/handler.py
+++ /dev/null
@@ -1,17 +0,0 @@
-"""Deprecated. Import from `mkdocstrings_handlers.python` directly."""
-
-# YORE: Bump 2: Remove file.
-
-import warnings
-from typing import Any
-
-from mkdocstrings_handlers.python._internal import handler
-
-
-def __getattr__(name: str) -> Any:
- warnings.warn(
- "Importing from `mkdocstrings_handlers.python.handler` is deprecated. Import from `mkdocstrings_handlers.python` directly.",
- DeprecationWarning,
- stacklevel=2,
- )
- return getattr(handler, name)
diff --git a/src/mkdocstrings_handlers/python/py.typed b/src/mkdocstrings_handlers/python/py.typed
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/mkdocstrings_handlers/python/rendering.py b/src/mkdocstrings_handlers/python/rendering.py
deleted file mode 100644
index 5cd4d200..00000000
--- a/src/mkdocstrings_handlers/python/rendering.py
+++ /dev/null
@@ -1,17 +0,0 @@
-"""Deprecated. Import from `mkdocstrings_handlers.python` directly."""
-
-# YORE: Bump 2: Remove file.
-
-import warnings
-from typing import Any
-
-from mkdocstrings_handlers.python._internal import rendering
-
-
-def __getattr__(name: str) -> Any:
- warnings.warn(
- "Importing from `mkdocstrings_handlers.python.rendering` is deprecated. Import from `mkdocstrings_handlers.python` directly.",
- DeprecationWarning,
- stacklevel=2,
- )
- return getattr(rendering, name)
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html b/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html
deleted file mode 100644
index 37c8702c..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{# YORE: Bump 2: Remove file. #}
-{% extends "_base/attribute.html.jinja" %}
-
-{% block logs scoped %}
- {{ super() }}
- {{ log.warning(
- "DeprecationWarning: Extending '_base/attribute.html' is deprecated, extend '_base/attribute.html.jinja' instead. ",
- once=True,
- ) }}
-{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja
deleted file mode 100644
index 519590e5..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja
+++ /dev/null
@@ -1,128 +0,0 @@
-{#- Template for Python attributes.
-
-This template renders a Python attribute (or variable).
-This can be a module attribute or a class attribute.
-
-Context:
- attribute (griffe.Attribute): The attribute to render.
- root (bool): Whether this is the root object, injected with `:::` in a Markdown page.
- heading_level (int): The HTML heading level to use.
- config (dict): The configuration options.
--#}
-
-{% block logs scoped %}
- {#- Logging block.
-
- This block can be used to log debug messages, deprecation messages, warnings, etc.
- -#}
- {{ log.debug("Rendering " + attribute.path) }}
-{% endblock logs %}
-
-
'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else attribute.name),
- ) %}
-
- {% block heading scoped %}
- {#- Heading block.
-
- This block renders the heading for the attribute.
- -#}
- {% if config.show_symbol_type_heading %}
{% endif %}
- {% if config.heading and root %}
- {{ config.heading }}
- {% elif config.separate_signature %}
- {{ attribute_name }}
- {% else %}
- {%+ filter highlight(language="python", inline=True) %}
- {{ attribute_name }}{% if attribute.annotation and config.show_signature_annotations %}: {{ attribute.annotation }}{% endif %}
- {% if attribute.value %} = {{ attribute.value }}{% endif %}
- {% endfilter %}
- {% endif %}
- {% endblock heading %}
-
- {% block labels scoped %}
- {#- Labels block.
-
- This block renders the labels for the attribute.
- -#}
- {% with labels = attribute.labels %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "labels"|get_template with context %}
- {% endwith %}
- {% endblock labels %}
-
- {% endfilter %}
-
- {% block signature scoped %}
- {#- Signature block.
-
- This block renders the signature for the attribute.
- -#}
- {% if config.separate_signature %}
- {% filter format_attribute(attribute, config.line_length, crossrefs=config.signature_crossrefs) %}
- {{ attribute.name }}
- {% endfilter %}
- {% endif %}
- {% endblock signature %}
-
- {% else %}
-
- {% if config.show_root_toc_entry %}
- {% filter heading(heading_level,
- role="data" if attribute.parent.kind.value == "module" else "attr",
- id=html_id,
- toc_label=('
'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else attribute_name),
- hidden=True,
- ) %}
- {% endfilter %}
- {% endif %}
- {% set heading_level = heading_level - 1 %}
- {% endif %}
-
-
'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else class.name),
- ) %}
-
- {% block heading scoped %}
- {#- Heading block.
-
- This block renders the heading for the class.
- -#}
- {% if config.show_symbol_type_heading %}
{% endif %}
- {% if config.heading and root %}
- {{ config.heading }}
- {% elif config.separate_signature %}
- {{ class_name }}
- {% elif config.merge_init_into_class and "__init__" in all_members %}
- {% with function = all_members["__init__"] %}
- {%+ filter highlight(language="python", inline=True) -%}
- {#- YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. -#}
- {{ class_name }}{% include "signature"|get_template with context %}
- {%- endfilter %}
- {% endwith %}
- {% else %}
- {{ class_name }}
- {% endif %}
- {% endblock heading %}
-
- {% block labels scoped %}
- {#- Labels block.
-
- This block renders the labels for the class.
- -#}
- {% with labels = class.labels %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "labels"|get_template with context %}
- {% endwith %}
- {% endblock labels %}
-
- {% endfilter %}
-
- {% block signature scoped %}
- {#- Signature block.
-
- This block renders the signature for the class.
- Overloads of the `__init__` method are rendered if `merge_init_into_class` is enabled.
- The actual `__init__` method signature is only rendered if `separate_signature` is also enabled.
- -#}
- {% if config.merge_init_into_class %}
- {% if "__init__" in all_members %}
- {% with function = all_members["__init__"] %}
- {% if function.overloads and config.show_overloads %}
-
'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else class.name),
- hidden=True,
- ) %}
- {% endfilter %}
- {% endif %}
- {% set heading_level = heading_level - 1 %}
- {% endif %}
-
-
- Bases: {% for expression in class.bases -%}
-
- {%- with backlink_type = "subclassed-by" -%}
- {#- YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. -#}
- {%- include "expression"|get_template with context -%}
- {%- endwith -%}
-
{% if not loop.last %}, {% endif %}
- {% endfor -%}
-
- {%- if init.relative_filepath.is_absolute() -%}
- {{ init.relative_package_filepath }}
- {%- else -%}
- {{ init.relative_filepath }}
- {%- endif -%}
-
- {%- if class.relative_filepath.is_absolute() -%}
- {{ class.relative_package_filepath }}
- {%- else -%}
- {{ class.relative_filepath }}
- {%- endif -%}
-
{{ section.title or lang.t("Attributes:") }}
-{{ lang.t("Name") }} | -{{ lang.t("Type") }} | -{{ lang.t("Description") }} | -
---|---|---|
|
-
- {% if attribute.annotation %}
- {% with expression = attribute.annotation %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
- {% endif %}
- |
-
-
- {{ attribute.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Attributes:") }}
-{{ attribute.name }}
- {% if attribute.annotation %}
- {% with expression = attribute.annotation %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- ({% include "expression"|get_template with context %}
)
- {% endwith %}
- {% endif %}
- –
- {{ (section.title or lang.t("ATTRIBUTE")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION") }} | -
---|---|
|
-
-
- {{ attribute.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
-
- {% if attribute.annotation %}
-
- TYPE:
- {% with expression = attribute.annotation %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- |
-
{{ section.title or lang.t("Classes:") }}
-{{ lang.t("Name") }} | -{{ lang.t("Description") }} | -
---|---|
|
-
-
- {{ class.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Classes:") }}
-{{ class.name }}
- –
- {{ (section.title or lang.t("CLASS")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION") }} | -
---|---|
|
-
-
- {{ class.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Examples:") }}
-{% for section_type, sub_section in section.value %} - {% if section_type.value == "text" %} - {{ sub_section|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }} - {% elif section_type.value == "examples" %} - {{ sub_section|highlight(language="pycon") }} - {% endif %} -{% endfor %} diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html deleted file mode 100644 index 906658b4..00000000 --- a/src/mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html +++ /dev/null @@ -1,10 +0,0 @@ -{# YORE: Bump 2: Remove file. #} -{% extends "_base/docstring/functions.html.jinja" %} - -{% block logs scoped %} - {{ super() }} - {{ log.warning( - "DeprecationWarning: Extending '_base/docstring/functions.html' is deprecated, extend '_base/docstring/functions.html.jinja' instead. ", - once=True, - ) }} -{% endblock logs %} diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html.jinja deleted file mode 100644 index dd33984f..00000000 --- a/src/mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html.jinja +++ /dev/null @@ -1,93 +0,0 @@ -{#- Template for "Functions" sections in docstrings. - -This template renders a list of documented functions in the format -specified with the [`docstring_section_style`][] configuration option. - -Context: - section (griffe.DocstringSectionAttributes): The section to render. --#} - -{% block logs scoped %} - {#- Logging block. - - This block can be used to log debug messages, deprecation messages, warnings, etc. - -#} - {{ log.debug("Rendering functions section") }} -{% endblock logs %} - -{# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #} -{% import "language"|get_template as lang with context %} -{#- Language module providing the `t` translation method. -#} - -{% if config.docstring_section_style == "table" %} - {% block table_style scoped %} - {#- Block for the `table` section style. -#} -{{ section.title or lang.t("Methods:") if obj.is_class else lang.t("Functions:") }}
-{{ lang.t("Name") }} | -{{ lang.t("Description") }} | -
---|---|
|
-
-
- {{ function.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Methods:") if obj.is_class else lang.t("Functions:") }}
-{{ function.name }}
- –
- {{ (section.title or lang.t("METHOD") if obj.is_class else lang.t("FUNCTION")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION") }} | -
---|---|
|
-
-
- {{ function.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Modules:") }}
-{{ lang.t("Name") }} | -{{ lang.t("Description") }} | -
---|---|
|
-
-
- {{ module.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Modules:") }}
-{{ module.name }}
- –
- {{ (section.title or lang.t("MODULE")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION") }} | -
---|---|
|
-
-
- {{ module.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Other Parameters:") }}
-{{ lang.t("Name") }} | -{{ lang.t("Type") }} | -{{ lang.t("Description") }} | -
---|---|---|
{{ parameter.name }} |
-
- {% if parameter.annotation %}
- {% with expression = parameter.annotation, backlink_type = "used-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
- {% endif %}
- |
-
-
- {{ parameter.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Other Parameters:") }}
-{{ parameter.name }}
- {% if parameter.annotation %}
- {% with expression = parameter.annotation, backlink_type = "used-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- ({% include "expression"|get_template with context %}
)
- {% endwith %}
- {% endif %}
- –
- {{ (section.title or lang.t("PARAMETER")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION") }} | -
---|---|
{{ parameter.name }} |
-
-
- {{ parameter.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
-
- {% if parameter.annotation %}
-
- {{ lang.t("TYPE:") }}
- {% with expression = parameter.annotation, backlink_type = "used-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- |
-
{{ section.title or lang.t("Parameters:") }}
-{{ lang.t("Name") }} | -{{ lang.t("Type") }} | -{{ lang.t("Description") }} | -{{ lang.t("Default") }} | -
---|---|---|---|
- {% if config.parameter_headings %}
- {% filter heading(
- heading_level + 1,
- role="param",
- id=html_id ~ "(" ~ parameter.name ~ ")",
- class="doc doc-heading doc-heading-parameter",
- toc_label=(' '|safe if config.show_symbol_type_toc else '') + parameter.name,
- ) %}
- {{ parameter.name }}
- {% endfilter %}
- {% else %}
- {{ parameter.name }}
- {% endif %}
- |
-
- {% if parameter.annotation %}
- {% with expression = parameter.annotation, backlink_type = "used-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
- {% endif %}
- |
-
-
- {{ parameter.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
- {% if parameter.default %}
- {% with expression = parameter.default, backlink_type = "used-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
- {% else %}
- {{ lang.t("required") }}
- {% endif %}
- |
-
{{ section.title or lang.t("Parameters:") }}
-
'|safe if config.show_symbol_type_toc else '') + parameter.name,
- ) %}
- {{ parameter.name }}
- {% endfilter %}
- {% else %}
- {{ parameter.name }}
- {% endif %}
- {% if parameter.annotation %}
- {% with expression = parameter.annotation, backlink_type = "used-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- ({% include "expression"|get_template with context %}
- {%- if parameter.default %}, {{ lang.t("default:") }}
- {% with expression = parameter.default, backlink_type = "used-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
- {% endif %})
- {% endwith %}
- {% endif %}
- –
- {{ (section.title or lang.t("PARAMETER")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION") }} | -
---|---|
- {% if config.parameter_headings %}
- {% filter heading(
- heading_level + 1,
- role="param",
- id=html_id ~ "(" ~ parameter.name ~ ")",
- class="doc doc-heading doc-heading-parameter",
- toc_label=(' '|safe if config.show_symbol_type_toc else '') + parameter.name,
- ) %}
- {{ parameter.name }}
- {% endfilter %}
- {% else %}
- {{ parameter.name }}
- {% endif %}
- |
-
-
- {{ parameter.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
-
- {% if parameter.annotation %}
-
- {{ lang.t("TYPE:") }}
- {% with expression = parameter.annotation, backlink_type = "used-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- |
-
{{ section.title or lang.t("Raises:") }}
-{{ lang.t("Type") }} | -{{ lang.t("Description") }} | -
---|---|
- {% if raises.annotation %}
- {% with expression = raises.annotation, backlink_type = "raised-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
- {% endif %}
- |
-
-
- {{ raises.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ lang.t(section.title) or lang.t("Raises:") }}
-{% include "expression"|get_template with context %}
- {% endwith %}
- –
- {% endif %}
- {{ (section.title or lang.t("RAISES")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION") }} | -
---|---|
-
- {% with expression = raises.annotation, backlink_type = "raised-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
-
- |
-
-
- {{ raises.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Receives:") }}
-{{ lang.t("Name") }} | {% endif %} -{{ lang.t("Type") }} | -{{ lang.t("Description") }} | -
---|---|---|
{% if receives.name %}{{ receives.name }} {% endif %} | {% endif %}
-
- {% if receives.annotation %}
- {% with expression = receives.annotation, backlink_type = "received-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
- {% endif %}
- |
-
-
- {{ receives.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Receives:") }}
-{{ receives.name }}
{% endif %}
- {% if receives.annotation %}
- {% with expression = receives.annotation, backlink_type = "received-by" %}
- {% if receives.name %} ({% endif %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% if receives.name %}){% endif %}
- {% endwith %}
- {% endif %}
- –
- {{ (section.title or lang.t("RECEIVES")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION") }} | -
---|---|
- {% if receives.name %}
- {{ receives.name }}
- {% elif receives.annotation %}
-
- {% with expression = receives.annotation, backlink_type = "received-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
-
- {% endif %}
- |
-
-
- {{ receives.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- {% if receives.name and receives.annotation %}
-
-
- {{ lang.t("TYPE:") }}
- {% with expression = receives.annotation, backlink_type = "received-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- |
-
{{ section.title or lang.t("Returns:") }}
-{{ lang.t("Name") }} | {% endif %} -{{ lang.t("Type") }} | -{{ lang.t("Description") }} | -
---|---|---|
{% if returns.name %}{{ returns.name }} {% endif %} | {% endif %}
-
- {% if returns.annotation %}
- {% with expression = returns.annotation, backlink_type = "returned-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
- {% endif %}
- |
-
-
- {{ returns.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Returns:") }}
-{{ returns.name }}
{% endif %}
- {% if returns.annotation %}
- {% with expression = returns.annotation, backlink_type = "returned-by" %}
- {% if returns.name %} ({% endif %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% if returns.name %}){% endif %}
- {% endwith %}
- {% endif %}
- –
- {{ (section.title or lang.t("RETURNS")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION").upper() }} | -
---|---|
- {% if returns.name %}
- {{ returns.name }}
- {% elif returns.annotation %}
-
- {% with expression = returns.annotation, backlink_type = "returned-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
-
- {% endif %}
- |
-
-
- {{ returns.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- {% if returns.name and returns.annotation %}
-
-
- {{ lang.t("TYPE:") }}
- {% with expression = returns.annotation, backlink_type = "returned-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- |
-
{{ section.title or lang.t("Warns:") }}
-{{ lang.t("Type") }} | -{{ lang.t("Description") }} | -
---|---|
- {% if warns.annotation %}
- {% with expression = warns.annotation, backlink_type = "emitted-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
- {% endif %}
- |
-
-
- {{ warns.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Warns:") }}
-{% include "expression"|get_template with context %}
- {% endwith %}
- –
- {% endif %}
- {{ (section.title or lang.t("WARNS")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION") }} | -
---|---|
-
- {% with expression = warns.annotation, backlink_type = "emitted-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
-
- |
-
-
- {{ warns.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Yields:") }}
-{{ lang.t("Name") }} | {% endif %} -{{ lang.t("Type") }} | -{{ lang.t("Description") }} | -
---|---|---|
{% if yields.name %}{{ yields.name }} {% endif %} | {% endif %}
-
- {% if yields.annotation %}
- {% with expression = yields.annotation, backlink_type = "yielded-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
- {% endif %}
- |
-
-
- {{ yields.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- |
-
{{ section.title or lang.t("Yields:") }}
-{{ yields.name }}
{% endif %}
- {% if yields.annotation %}
- {% with expression = yields.annotation, backlink_type = "yielded-by" %}
- {% if yields.name %} ({% endif %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% if yields.name %}){% endif %}
- {% endwith %}
- {% endif %}
- –
- {{ (section.title or lang.t("YIELDS")).rstrip(":").upper() }} | -{{ lang.t("DESCRIPTION") }} | -
---|---|
- {% if yields.name %}
- {{ yields.name }}
- {% elif yields.annotation %}
-
- {% with expression = yields.annotation, backlink_type = "yielded-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "expression"|get_template with context %}
- {% endwith %}
-
- {% endif %}
- |
-
-
- {{ yields.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
-
- {% if yields.name and yields.annotation %}
-
-
- {{ lang.t("TYPE:") }}:
- {% with expression = yields.annotation, backlink_type = "yielded-by" %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- |
-
')|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else function.name),
- ) %}
-
- {% block heading scoped %}
- {#- Heading block.
-
- This block renders the heading for the function.
- -#}
- {% if config.show_symbol_type_heading %}
{% endif %}
- {% if config.heading and root %}
- {{ config.heading }}
- {% elif config.separate_signature %}
- {{ function_name }}
- {% else %}
- {%+ filter highlight(language="python", inline=True) -%}
- {#- YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. -#}
- {{ function_name }}{% include "signature"|get_template with context %}
- {%- endfilter %}
- {% endif %}
- {% endblock heading %}
-
- {% block labels scoped %}
- {#- Labels block.
-
- This block renders the labels for the function.
- -#}
- {% with labels = function.labels %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "labels"|get_template with context %}
- {% endwith %}
- {% endblock labels %}
-
- {% endfilter %}
-
- {% block signature scoped %}
- {#- Signature block.
-
- This block renders the signature for the function,
- as well as its overloaded signatures if any.
- -#}
- {% if function.overloads and config.show_overloads %}
-
')|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else function.name),
- hidden=True,
- ) %}
- {% endfilter %}
- {% endif %}
- {% set heading_level = heading_level - 1 %}
- {% endif %}
-
-
- {%- if function.relative_filepath.is_absolute() -%}
- {{ function.relative_package_filepath }}
- {%- else -%}
- {{ function.relative_filepath }}
- {%- endif -%}
-
{{ label }}
- {% endfor %}
-
-{% endif %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/language.html b/src/mkdocstrings_handlers/python/templates/material/_base/language.html
deleted file mode 100644
index a5a86545..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/language.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{# YORE: Bump 2: Remove file. #}
-{% extends "_base/language.html.jinja" %}
-
-{% block logs scoped %}
- {{ super() }}
- {{ log.warning(
- "DeprecationWarning: Extending '_base/language.html' is deprecated, extend '_base/language.html.jinja' instead. ",
- once=True,
- ) }}
-{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/language.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/language.html.jinja
deleted file mode 100644
index 5a4b773e..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/language.html.jinja
+++ /dev/null
@@ -1,21 +0,0 @@
-{#- Import translation macros for the given language and fallback language. -#}
-
-{% block logs scoped %}
- {#- Logging block.
-
- This block can be used to log debug messages, deprecation messages, warnings, etc.
- -#}
-{% endblock logs %}
-
-{# YORE: Bump 2: Replace `| get_template` with `~ ".html.jinja"` within line. #}
-{% set lang_pth = "languages/" ~ locale | get_template %}
-{% if lang_pth is existing_template %}
- {% import lang_pth as lang %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% import "languages/en"|get_template as fallback %}
- {% macro t(key) %}{{ lang.t(key) or fallback.t(key) }}{% endmacro %}
-{% else %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% import "languages/en"|get_template as lang %}
- {% macro t(key) %}{{ lang.t(key) }}{% endmacro %}
-{% endif %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html b/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html
deleted file mode 100644
index 2f050a32..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{# YORE: Bump 2: Remove file. #}
-{% extends "_base/languages/en.html.jinja" %}
-
-{% block logs scoped %}
- {{ super() }}
- {{ log.warning(
- "DeprecationWarning: Extending '_base/languages/en.html' is deprecated, extend '_base/languages/en.html.jinja' instead. ",
- once=True,
- ) }}
-{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja
deleted file mode 100644
index bcdcce2d..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja
+++ /dev/null
@@ -1,45 +0,0 @@
-{#- Macro for English translations. -#}
-
-{% block logs scoped %}
- {#- Logging block.
-
- This block can be used to log debug messages, deprecation messages, warnings, etc.
- -#}
-{% endblock logs %}
-
-{% macro t(key) %}{{ {
- "ATTRIBUTE": "ATTRIBUTE",
- "Attributes:": "Attributes:",
- "Classes:": "Classes:",
- "CLASS": "CLASS",
- "DEFAULT:": "DEFAULT:",
- "Default": "Default",
- "default:": "default:",
- "DESCRIPTION": "DESCRIPTION",
- "Description": "Description",
- "Examples:": "Examples:",
- "Functions:": "Functions:",
- "FUNCTION": "FUNCTION",
- "Methods:": "Methods:",
- "METHOD": "METHOD",
- "Modules:": "Modules:",
- "MODULE": "MODULE",
- "Name": "Name",
- "Other Parameters:": "Other Parameters:",
- "PARAMETER": "PARAMETER",
- "Parameters:": "Parameters:",
- "RAISES": "RAISES",
- "Raises:" : "Raises:",
- "RECEIVES": "RECEIVES",
- "Receives:": "Receives:",
- "required": "required",
- "RETURNS": "RETURNS",
- "Returns:": "Returns:",
- "Source code in": "Source code in",
- "TYPE:": "TYPE:",
- "Type": "Type",
- "WARNS": "WARNS",
- "Warns:": "Warns:",
- "YIELDS": "YIELDS",
- "Yields:": "Yields:",
-}[key] }}{% endmacro %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html b/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html
deleted file mode 100644
index 1f3095f4..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{# YORE: Bump 2: Remove file. #}
-{% extends "_base/languages/ja.html.jinja" %}
-
-{% block logs scoped %}
- {{ super() }}
- {{ log.warning(
- "DeprecationWarning: Extending '_base/languages/ja.html' is deprecated, extend '_base/languages/ja.html.jinja' instead. ",
- once=True,
- ) }}
-{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja
deleted file mode 100644
index 0393ca03..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja
+++ /dev/null
@@ -1,45 +0,0 @@
-{#- Macro for Japanese translations. -#}
-
-{% block logs scoped %}
- {#- Logging block.
-
- This block can be used to log debug messages, deprecation messages, warnings, etc.
- -#}
-{% endblock logs %}
-
-{% macro t(key) %}{{ {
- "ATTRIBUTE": "属性",
- "Attributes:": "属性:",
- "Classes:": "クラス:",
- "CLASS": "クラス",
- "DEFAULT:": "デフォルト:",
- "Default": "デフォルト",
- "default:": "デフォルト:",
- "DESCRIPTION": "デスクリプション",
- "Description": "デスクリプション",
- "Examples:": "例:",
- "Functions:": "関数:",
- "FUNCTION": "関数",
- "Methods:": "メソッド:",
- "METHOD": "メソッド",
- "Modules:": "モジュール:",
- "MODULE": "モジュール",
- "Name": "名前",
- "Other Parameters:": "他の引数:",
- "PARAMETER": "引数",
- "Parameters:": "引数:",
- "RAISES": "発生",
- "Raises:" : "発生:",
- "RECEIVES": "取得",
- "Receives:": "取得:",
- "required": "必須",
- "RETURNS": "戻り値",
- "Returns:": "戻り値:",
- "Source code in": "ソースコード位置:",
- "TYPE:": "タイプ:",
- "Type": "タイプ",
- "WARNS": "警告",
- "Warns:": "警告:",
- "YIELDS": "返す",
- "Yields:": "返す:",
-}[key] }}{% endmacro %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html b/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html
deleted file mode 100644
index b58b0479..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{# YORE: Bump 2: Remove file. #}
-{% extends "_base/languages/zh.html.jinja" %}
-
-{% block logs scoped %}
- {{ super() }}
- {{ log.warning(
- "DeprecationWarning: Extending '_base/languages/zh.html' is deprecated, extend '_base/languages/zh.html.jinja' instead. ",
- once=True,
- ) }}
-{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja
deleted file mode 100644
index e57169ad..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja
+++ /dev/null
@@ -1,45 +0,0 @@
-{#- Macro for Chinese translations. -#}
-
-{% block logs scoped %}
- {#- Logging block.
-
- This block can be used to log debug messages, deprecation messages, warnings, etc.
- -#}
-{% endblock logs %}
-
-{% macro t(key) %}{{ {
- "ATTRIBUTE": "属性",
- "Attributes:": "属性:",
- "Classes:": "类:",
- "CLASS": "类",
- "DEFAULT:": "默认:",
- "Default": "默认",
- "default:": "默认:",
- "DESCRIPTION": "描述",
- "Description": "描述",
- "Examples:": "示例:",
- "Functions:": "函数:",
- "FUNCTION": "函数",
- "Methods:": "方法:",
- "METHOD": "方法",
- "Modules:": "模块:",
- "MODULE": "模块",
- "Name": "名称",
- "Other Parameters:": "其他参数:",
- "PARAMETER": "参数",
- "Parameters:": "参数:",
- "RAISES": "引发",
- "Raises:" : "引发:",
- "Receives:": "接收:",
- "RECEIVES": "接收",
- "required": "必需",
- "RETURNS": "返回",
- "Returns:": "返回:",
- "Source code in": "源代码位于:",
- "TYPE:": "类型:",
- "Type": "类型",
- "Warns:": "警告:",
- "WARNS": "警告",
- "YIELDS": "产生",
- "Yields:": "产生:",
-}[key] }}{% endmacro %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/module.html b/src/mkdocstrings_handlers/python/templates/material/_base/module.html
deleted file mode 100644
index dcda15ea..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/module.html
+++ /dev/null
@@ -1,10 +0,0 @@
-{# YORE: Bump 2: Remove file. #}
-{% extends "_base/module.html.jinja" %}
-
-{% block logs scoped %}
- {{ super() }}
- {{ log.warning(
- "DeprecationWarning: Extending '_base/module.html' is deprecated, extend '_base/module.html.jinja' instead. ",
- once=True,
- ) }}
-{% endblock logs %}
diff --git a/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja b/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja
deleted file mode 100644
index 283f2654..00000000
--- a/src/mkdocstrings_handlers/python/templates/material/_base/module.html.jinja
+++ /dev/null
@@ -1,131 +0,0 @@
-{#- Template for Python modules.
-
-This template renders a Python module.
-
-Context:
- module (griffe.Module): The module to render.
- root (bool): Whether this is the root object, injected with `:::` in a Markdown page.
- heading_level (int): The HTML heading level to use.
- config (dict): The configuration options.
--#}
-
-{% block logs scoped %}
- {#- Logging block.
-
- This block can be used to log debug messages, deprecation messages, warnings, etc.
- -#}
- {{ log.debug("Rendering " + module.path) }}
-{% endblock logs %}
-
-
'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else module.name),
- ) %}
-
- {% block heading scoped %}
- {#- Heading block.
-
- This block renders the heading for the module.
- -#}
- {% if config.show_symbol_type_heading %}
{% endif %}
- {% if config.heading and root %}
- {{ config.heading }}
- {% elif config.separate_signature %}
- {{ module_name }}
- {% else %}
- {{ module_name }}
- {% endif %}
- {% endblock heading %}
-
- {% block labels scoped %}
- {#- Labels block.
-
- This block renders the labels for the module.
- -#}
- {% with labels = module.labels %}
- {# YORE: Bump 2: Replace `"|get_template` with `.html.jinja"` within line. #}
- {% include "labels"|get_template with context %}
- {% endwith %}
- {% endblock labels %}
-
- {% endfilter %}
-
- {% else %}
- {% if config.show_root_toc_entry %}
- {% filter heading(heading_level,
- role="module",
- id=html_id,
- toc_label=('
'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else module.name),
- hidden=True,
- ) %}
- {% endfilter %}
- {% endif %}
- {% set heading_level = heading_level - 1 %}
- {% endif %}
-
- {{ section.title or lang.t("Attributes:") }} | -
-
|
-
---|
{{ section.title or lang.t("Other parameters:") }} | -
-
|
-
---|
{{ section.title or lang.t("Parameters:") }} | -
-
|
-
---|
{{ section.title or lang.t("Raises:") }} | -
-
|
-
---|
{{ section.title or lang.t("Receives:") }} | -
-
|
-
---|
{{ section.title or lang.t("Returns:") }} | -
-
|
-
---|
{{ section.title or lang.t("Warns:") }} | -
-
|
-
---|
{{ section.title or lang.t("Yields:") }} | -
-
|
-
---|
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- Docstring for
-
- Class
-
- .
-
__init__(a, b)
-
- - Docstring for `Class. - - init - - . -
-method1(a, b)
-
-
- Docstring for
-
- Class.method1
-
- .
-
module_function(a, b)
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- signature_package
-
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
- - Docstring for `Class. - - init - - . -
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- signature_package
-
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- :
-
-
- int
-
-
- ,
-
-
- b
-
-
- :
-
-
- str
-
-
- )
-
-
- ->
-
-
- None
-
-
- - Docstring for `Class. - - init - - . -
-
-
- method1
-
-
- (
-
-
- a
-
-
- :
-
-
- int
-
-
- ,
-
-
- b
-
-
- :
-
-
- str
-
-
- )
-
-
- ->
-
-
- None
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- :
-
-
- int
-
-
- ,
-
-
- b
-
-
- :
-
-
- str
-
-
- )
-
-
- ->
-
-
- None
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- Docstring for
-
- Class
-
- .
-
__init__(a: int, b: str) -> None
-
- - Docstring for `Class. - - init - - . -
-method1(a: int, b: str) -> None
-
-
- Docstring for
-
- Class.method1
-
- .
-
module_function(a: int, b: str) -> None
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- signature_package
-
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
- - Docstring for `Class. - - init - - . -
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Docstring for
-
- Class
-
- .
-
__init__(a, b)
-
- - Docstring for `Class. - - init - - . -
-method1(a, b)
-
-
- Docstring for
-
- Class.method1
-
- .
-
module_function(a, b)
-
-
- Docstring for
-
- module_function
-
- .
-
- signature_package
-
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- :
-
-
- int
-
-
- ,
-
-
- b
-
-
- :
-
-
- str
-
-
- )
-
-
- ->
-
-
- None
-
-
- - Docstring for `Class. - - init - - . -
-
-
- method1
-
-
- (
-
-
- a
-
-
- :
-
-
- int
-
-
- ,
-
-
- b
-
-
- :
-
-
- str
-
-
- )
-
-
- ->
-
-
- None
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- :
-
-
- int
-
-
- ,
-
-
- b
-
-
- :
-
-
- str
-
-
- )
-
-
- ->
-
-
- None
-
-
-
- Docstring for
-
- module_function
-
- .
-
- headings_package
-
-
- members_package
-
- - Docstring for the package. -
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- Docstring for
-
- Class
-
- .
-
__init__(a: int , b: str ) -> None
-
- - Docstring for `Class. - - init - - . -
-method1(a: int , b: str ) -> None
-
-
- Docstring for
-
- Class.method1
-
- .
-
module_function(a: int , b: str ) -> None
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
- members_package
-
- - Docstring for the package. -
-
-
- module_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- module-attribute
-
-
-
-
- Docstring for
-
- module_attribute
-
- .
-
- Class
-
-
- Docstring for
-
- Class
-
- .
-
-
- class_attribute
-
-
- =
-
-
- 42
-
-
-
-
-
- class-attribute
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.class_attribute
-
- .
-
-
- instance_attribute
-
-
- =
-
-
- a
-
-
- +
-
-
- b
-
-
-
-
-
- instance-attribute
-
-
-
-
- Docstring for
-
- Class.instance_attribute
-
- .
-
- NestedClass
-
-
- Docstring for
-
- NestedClass
-
- .
-
-
- __init__
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.__init__
-
- .
-
-
- method1
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method1
-
- .
-
-
- method2
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- Class.method2
-
- .
-
- Subclass
-
-
- Bases:
-
-
-
- Docstring for
-
- Subclass
-
- .
-
-
- module_function
-
-
- (
-
-
- a
-
-
- ,
-
-
- b
-
-
- )
-
-
-
- Docstring for
-
- module_function
-
- .
-
This is an example.
" in rendered - assert "print" in rendered - assert "Hello" in rendered - - -def test_expand_globs(tmp_path: Path, plugin: MkdocstringsPlugin) -> None: - """Assert globs are correctly expanded. - - Parameters: - tmp_path: Pytext fixture that creates a temporary directory. - """ - globbed_names = ( - "expanded_a", - "expanded_b", - "other_expanded_c", - "other_expanded_d", - ) - globbed_paths = [tmp_path.joinpath(globbed_name) for globbed_name in globbed_names] - for path in globbed_paths: - path.touch() - plugin.handlers._tool_config.config_file_path = str(tmp_path.joinpath("mkdocs.yml")) - handler: PythonHandler = plugin.handlers.get_handler("python", {"paths": ["*exp*"]}) # type: ignore[assignment] - for path in globbed_paths: - assert str(path) in handler._paths - - -def test_expand_globs_without_changing_directory(plugin: MkdocstringsPlugin) -> None: - """Assert globs are correctly expanded when we are already in the right directory.""" - plugin.handlers._tool_config.config_file_path = "mkdocs.yml" - handler: PythonHandler = plugin.handlers.get_handler("python", {"paths": ["*.md"]}) # type: ignore[assignment] - for path in list(glob(os.path.abspath(".") + "/*.md")): - assert path in handler._paths - - -@pytest.mark.parametrize( - ("expect_change", "extension"), - [ - (True, "extension.py"), - (True, "extension.py:SomeExtension"), - (True, "path/to/extension.py"), - (True, "path/to/extension.py:SomeExtension"), - (True, {"extension.py": {"option": "value"}}), - (True, {"extension.py:SomeExtension": {"option": "value"}}), - (True, {"path/to/extension.py": {"option": "value"}}), - (True, {"path/to/extension.py:SomeExtension": {"option": "value"}}), - # True because OS path normalization. - (True, "/absolute/path/to/extension.py"), - (True, "/absolute/path/to/extension.py:SomeExtension"), - (True, {"/absolute/path/to/extension.py": {"option": "value"}}), - (True, {"/absolute/path/to/extension.py:SomeExtension": {"option": "value"}}), - (False, "dot.notation.path.to.extension"), - (False, "dot.notation.path.to.pyextension"), - (False, {"dot.notation.path.to.extension": {"option": "value"}}), - (False, {"dot.notation.path.to.pyextension": {"option": "value"}}), - ], -) -def test_extension_paths( - tmp_path: Path, - expect_change: bool, - extension: str | dict, - plugin: MkdocstringsPlugin, -) -> None: - """Assert extension paths are resolved relative to config file.""" - plugin.handlers._tool_config.config_file_path = str(tmp_path.joinpath("mkdocs.yml")) - handler: PythonHandler = plugin.handlers.get_handler("python") # type: ignore[assignment] - normalized = handler.normalize_extension_paths([extension])[0] - if expect_change: - if isinstance(normalized, str) and isinstance(extension, str): - assert normalized == str(tmp_path.joinpath(extension)) - elif isinstance(normalized, dict) and isinstance(extension, dict): - pth, options = next(iter(extension.items())) - assert normalized == {str(tmp_path.joinpath(pth)): options} - else: - raise ValueError("Normalization must not change extension items type") - else: - assert normalized == extension - - -def test_rendering_object_source_without_lineno(handler: PythonHandler) -> None: - """Test rendering objects without a line number.""" - code = dedent( - """ - '''Module docstring.''' - - class Class: - '''Class docstring.''' - - def function(self): - '''Function docstring.''' - - attribute = 0 - '''Attribute docstring.''' - """, - ) - with temporary_visited_module(code) as module: - module["Class"].lineno = None - module["Class.function"].lineno = None - module["attribute"].lineno = None - assert handler.render(module, PythonOptions(show_source=True)) - - -def test_give_precedence_to_user_paths() -> None: - """Assert user paths take precedence over default paths.""" - last_sys_path = sys.path[-1] - handler = PythonHandler( - base_dir=Path("."), - config=PythonConfig.from_data(paths=[last_sys_path]), - mdx=[], - mdx_config={}, - ) - assert handler._paths[0] == last_sys_path - - -@pytest.mark.parametrize( - ("section", "code"), - [ - ( - "Attributes", - """ - class A: - '''Summary. - - Attributes: - x: X. - y: Y. - ''' - x: int = 0 - '''X.''' - y: int = 0 - '''Y.''' - """, - ), - ( - "Methods", - """ - class A: - '''Summary. - - Methods: - x: X. - y: Y. - ''' - def x(self): ... - '''X.''' - def y(self): ... - '''Y.''' - """, - ), - ( - "Functions", - """ - '''Summary. - - Functions: - x: X. - y: Y. - ''' - def x(): ... - '''X.''' - def y(): ... - '''Y.''' - """, - ), - ( - "Classes", - """ - '''Summary. - - Classes: - A: A. - B: B. - ''' - class A: ... - '''A.''' - class B: ... - '''B.''' - """, - ), - ( - "Modules", - """ - '''Summary. - - Modules: - a: A. - b: B. - ''' - """, - ), - ], -) -def test_deduplicate_summary_sections(handler: PythonHandler, section: str, code: str) -> None: - """Assert summary sections are deduplicated.""" - summary_section = section.lower() - summary_section = "functions" if summary_section == "methods" else summary_section - with temporary_visited_module(code, docstring_parser="google") as module: - if summary_section == "modules": - module.set_member("a", Module("A", docstring=Docstring("A."))) - module.set_member("b", Module("B", docstring=Docstring("B."))) - html = handler.render( - module, - handler.get_options( - { - "summary": {summary_section: True}, - "show_source": False, - "show_submodules": True, - }, - ), - ) - assert html.count(f"{section}:") == 1 - - -def test_inheriting_self_from_parent_class(handler: PythonHandler) -> None: - """Inspect self only once when inheriting it from parent class.""" - with temporary_inspected_module( - """ - class A: ... - class B(A): ... - A.B = B - """, - ) as module: - # Assert no recusrion error. - handler.render( - module, - handler.get_options({"inherited_members": True}), - ) - - -def test_specifying_inventory_base_url(handler: PythonHandler) -> None: - """Assert that the handler renders inventory URLs using the specified base_url.""" - # Update handler config to include an inventory with a base URL - base_url = "https://docs.com/my_library" - inventory = Inventory(url="https://example.com/objects.inv", base_url=base_url) - handler.config = replace(handler.config, inventories=[inventory]) - - # Mock inventory bytes - item_name = "my_library.my_module.MyClass" - mocked_inventory = mkdocstrings.Inventory() - mocked_inventory.register( - name=item_name, - domain="py", - role="class", - uri=f"api-reference/#{item_name}", - dispname=item_name, - ) - mocked_bytes = BytesIO(mocked_inventory.format_sphinx()) - - # Get inventory URL and config - url, config = handler.get_inventory_urls()[0] - - # Load the mocked inventory - _, item_url = next(handler.load_inventory(mocked_bytes, url, **config)) - - # Assert the URL is based on the provided base URL - msg = "Expected inventory URL to start with base_url" - assert item_url.startswith(base_url), msg diff --git a/tests/test_rendering.py b/tests/test_rendering.py deleted file mode 100644 index 2616610f..00000000 --- a/tests/test_rendering.py +++ /dev/null @@ -1,176 +0,0 @@ -"""Tests for the `rendering` module.""" - -from __future__ import annotations - -import re -from dataclasses import dataclass -from typing import TYPE_CHECKING, Any, Callable - -import pytest -from griffe import ModulesCollection, temporary_visited_module - -from mkdocstrings_handlers.python._internal import rendering - -if TYPE_CHECKING: - from markupsafe import Markup - - -@pytest.mark.parametrize( - "code", - [ - "print('Hello')", - "aaaaa(bbbbb, ccccc=1) + ddddd.eeeee[ffff] or {ggggg: hhhhh, iiiii: jjjjj}", - ], -) -@pytest.mark.parametrize( - "formatter", - [ - rendering._get_black_formatter(), - rendering._get_ruff_formatter(), - rendering._get_formatter(), - ], -) -def test_format_code(code: str, formatter: Callable[[str, int], str]) -> None: - """Assert code can be formatted. - - Parameters: - code: Code to format. - """ - for length in (5, 100): - assert formatter(code, length) - - -@pytest.mark.parametrize( - ("name", "signature"), - [("Class.method", "(param: str = 'hello') -> 'OtherClass'")], -) -def test_format_signature(name: Markup, signature: str) -> None: - """Assert signatures can be formatted. - - Parameters: - signature: Signature to format. - """ - for length in (5, 100): - assert rendering._format_signature(name, signature, length) - - -@dataclass -class _FakeObject: - name: str - inherited: bool = False - parent: None = None - is_alias: bool = False - - -@pytest.mark.parametrize( - ("names", "filter_params", "expected_names"), - [ - (["aa", "ab", "ac", "da"], {"filters": [(re.compile("^a[^b]"), True)]}, {"ab", "da"}), - (["aa", "ab", "ac", "da"], {"members_list": ["aa", "ab"]}, {"aa", "ab"}), - ], -) -def test_filter_objects(names: list[str], filter_params: dict[str, Any], expected_names: set[str]) -> None: - """Assert the objects filter works correctly. - - Parameters: - names: Names of the objects. - filter_params: Parameters passed to the filter function. - expected_names: Names expected to be kept. - """ - objects = {name: _FakeObject(name) for name in names} - filtered = rendering.do_filter_objects(objects, **filter_params) # type: ignore[arg-type] - filtered_names = {obj.name for obj in filtered} - assert set(filtered_names) == set(expected_names) - - -@pytest.mark.parametrize( - ("members", "inherited_members", "expected_names"), - [ - (True, True, {"base", "main"}), - (True, False, {"main"}), - (True, ["base"], {"base", "main"}), - (True, [], {"main"}), - (False, True, {"base"}), - (False, False, set()), - (False, ["base"], {"base"}), - (False, [], set()), - ([], True, {"base"}), - ([], False, set()), - ([], ["base"], {"base"}), - ([], [], set()), - (None, True, {"base", "main"}), - (None, False, {"main"}), - (None, ["base"], {"base", "main"}), - (None, [], {"main"}), - (["base"], True, {"base"}), - (["base"], False, set()), - (["base"], ["base"], {"base"}), - (["base"], [], set()), - (["main"], True, {"main"}), - (["main"], False, {"main"}), - (["main"], ["base"], {"base", "main"}), - (["main"], [], {"main"}), - ], -) -def test_filter_inherited_members( - members: bool | list[str] | None, - inherited_members: bool | list[str], - expected_names: list[str], -) -> None: - """Test inherited members filtering. - - Parameters: - members: Members option (parametrized). - inherited_members: Inherited members option (parametrized). - expected_names: The expected result as a list of member names. - """ - collection = ModulesCollection() - with temporary_visited_module( - """ - class Base: - def base(self): ... - - class Main(Base): - def main(self): ... - """, - modules_collection=collection, - ) as module: - collection["module"] = module - objects = module["Main"].all_members - filtered = rendering.do_filter_objects(objects, members_list=members, inherited_members=inherited_members) - names = {obj.name for obj in filtered} - assert names == expected_names - - -@pytest.mark.parametrize( - ("order", "members_list", "expected_names"), - [ - ("alphabetical", None, ["a", "b", "c"]), - ("source", None, ["c", "b", "a"]), - ("alphabetical", ["c", "b"], ["c", "b"]), - ("source", ["a", "c"], ["a", "c"]), - ("alphabetical", [], ["a", "b", "c"]), - ("source", [], ["c", "b", "a"]), - ("alphabetical", True, ["a", "b", "c"]), - ("source", False, ["c", "b", "a"]), - ], -) -def test_ordering_members(order: rendering.Order, members_list: list[str | None], expected_names: list[str]) -> None: - """Assert the objects are correctly ordered. - - Parameters: - order: The order to use (alphabetical or source). - members_list: The user specified members list. - expected_names: The expected ordered list of object names. - """ - - class Obj: - def __init__(self, name: str, lineno: int | None = None, *, is_alias: bool = False) -> None: - self.name = name - self.lineno = lineno - self.alias_lineno = lineno - self.is_alias = is_alias - - members = [Obj("a", 10, is_alias=True), Obj("b", 9, is_alias=False), Obj("c", 8, is_alias=True)] - ordered = rendering.do_order_members(members, order, members_list) # type: ignore[arg-type] - assert [obj.name for obj in ordered] == expected_names diff --git a/tests/test_themes.py b/tests/test_themes.py deleted file mode 100644 index bf7401d6..00000000 --- a/tests/test_themes.py +++ /dev/null @@ -1,43 +0,0 @@ -"""Tests for the different themes we claim to support.""" - -from __future__ import annotations - -from typing import TYPE_CHECKING - -import pytest - -if TYPE_CHECKING: - from mkdocstrings_handlers.python import PythonHandler - - -@pytest.mark.parametrize( - "plugin", - [ - {"theme": "mkdocs"}, - {"theme": "readthedocs"}, - {"theme": {"name": "material"}}, - ], - indirect=["plugin"], -) -@pytest.mark.parametrize( - "identifier", - [ - "mkdocstrings.extension", - "mkdocstrings.inventory", - "mkdocstrings.loggers", - "mkdocstrings.plugin", - "mkdocstrings.handlers.base", - "mkdocstrings.handlers.rendering", - "mkdocstrings_handlers.python", - ], -) -def test_render_themes_templates_python(identifier: str, handler: PythonHandler) -> None: - """Test rendering of a given theme's templates. - - Parameters: - identifier: Parametrized identifier. - handler: Python handler (fixture). - """ - options = handler.get_options({}) - data = handler.collect(identifier, options) - handler.render(data, options) diff --git a/usage/configuration/docstrings/index.html b/usage/configuration/docstrings/index.html new file mode 100644 index 00000000..ef571df4 --- /dev/null +++ b/usage/configuration/docstrings/index.html @@ -0,0 +1,559 @@ +docstring_style
¤str
"google"
The docstring style to expect when parsing docstrings.
Possible values:
"google"
: see Google style."numpy"
: see Numpy style."sphinx"
: see Sphinx style.None
(null
or ~
in YAML): no style at all, parse as regular text.plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ docstring_style: google
+
::: path.to.module
+ options:
+ docstring_style: numpy
+
The style is applied to the specified object only, not its members.
Local docstring_style
options (in :::
instructions) will only be applied to the specified object, and not its members. Instead of changing the style when rendering, we strongly recommend to set the right style as early as possible, for example by using the auto-style (sponsors only), or with a custom Griffe extension
Preview
Every style gets rendered the same way. Here are some docstring examples.
def greet(name: str) -> str:
+ """Greet someone.
+
+ Parameters:
+ name: The name of the person to greet.
+
+ Returns:
+ A greeting message.
+ """
+ return f"Hello {name}!"
+
def greet(name: str) -> str:
+ """Greet someone.
+
+ Parameters
+ ----------
+ name
+ The name of the person to greet.
+
+ Returns
+ -------
+ A greeting message.
+ """
+ return f"Hello {name}!"
+
def greet(name: str) -> str:
+ """Greet someone.
+
+ :param name: The name of the person to greet.
+ :return: A greeting message.
+ """
+ return f"Hello {name}!"
+
docstring_options
¤dict
{}
The options for the docstring parser.
The Sphinx style does not offer any option.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ docstring_options:
+ ignore_init_summary: false
+ trim_doctest_flags: true
+
::: path.to.module
+ options:
+ docstring_options:
+ ignore_init_summary: true
+ trim_doctest_flags: false
+
class PrintOK:
+ """Class docstring."""
+
+ def __init__(self):
+ """Initialize the instance.
+
+ Examples:
+ >>> PrintOK() # doctest: +NORMALIZE_WHITESPACE
+ ok
+ """
+ print("ok")
+
Preview
PrintOK
Class docstring.
__init__
Examples:
>>> PrintOK()
+ok
+
PrintOK
Class docstring.
__init__
Initialize the instance.
Examples:
>>> PrintOK() # doctest: +NORMALIZE_WHITESPACE
+ok
+
docstring_section_style
¤str
"table"
The style used to render docstring sections.
A section is a block of text that has a special meaning in a docstring. There are sections for documenting attributes of an object, parameters of a function, exceptions raised by a function, the return value of a function, etc.
Sections are parsed as structured data and can therefore be rendered in different ways. Possible values:
"table"
: a simple table, usually with type, name and description columns"list"
: a simple list, akin to what you get with the ReadTheDocs Sphinx theme"spacy"
: a poor implementation of the amazing tables in Spacy's documentationplugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ docstring_section_style: table
+
::: path.to.module
+ options:
+ docstring_section_style: list
+
Preview
Tables work well when you have lots of items with short names, type annotations, descriptions, etc.. With longer strings, the columns risk getting squished horizontally. In that case, the Spacy tables can help.
Parameters:
Type | Name | Description | Default |
---|---|---|---|
int | threshold | Threshold for something. | required |
bool | flag | Enable something. | False |
Other Parameters:
Type | Name | Description | Default |
---|---|---|---|
list[int | float] | gravity_forces | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. | required |
VacuumType | Literal["regular"] | vacuum_type | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. | VacuumType.PLASMA |
Lists work well whatever the length of names, type annotations, descriptions, etc.
Parameters:
Other Parameters:
gravity_forces
(list[int | float]
) — Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.vacuum_type
(VacuumType | Literal["regular"]
) — Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Spacy tables work better than regular tables with longer names, type annotations, descriptions, etc., by reserving more horizontal space on the second column.
Parameters:
Name | Description |
---|---|
threshold | Threshold for something. TYPE: int DEFAULT: required |
flag | Enable something. TYPE: bool DEFAULT: False |
Other Parameters:
Name | Description |
---|---|
gravity_forces | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. TYPE: list[int | float] DEFAULT: required |
vacuum_type | Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. TYPE: VacuumType | Literal["regular"] DEFAULT: VacuumType.PLASMA |
merge_init_into_class
¤bool
False
Whether to merge the __init__
method into the class' signature and docstring.
By default, only the class name is rendered in headings. When merging, the __init__
method parameters are added after the class name, like a signature, and the __init__
method docstring is appended to the class' docstring. This option is well used in combination with the ignore_init_summary
docstring option, to discard the first line of the __init__
docstring which is not often useful.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ docstring_options:
+ ignore_init_summary: false
+ merge_init_into_class: false
+
::: path.to.module
+ options:
+ docstring_options:
+ ignore_init_summary: true
+ merge_init_into_class: true
+
class Thing:
+ """A class for things."""
+
+ def __init__(self, value: int = 0):
+ """Initialize a thing.
+
+ Parameters:
+ value: The thing's value.
+ """
+ self.value = value
+
Preview
relative_crossrefs
¤Sponsors only — Insiders 1.9.0
bool
False
Whether to enable the relative-crossref syntax.
The relative-crossref syntax lets you reference the current object or its parent by prefixing a crossref identifier with dots. For example, to cross-reference the current object's name
member, you can write [link to name attribute][.name]
. The "current object" is the object containing the docstring being rendered.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ relative_crossrefs: false
+
::: path.to.module
+ options:
+ relative_crossrefs: true
+
Examples
"""Summary.
+
+- Link to [`module`][.].
+- Link to [`module_attribute`][.module_attribute].
+- Link to [`Class`][.Class].
+- Link to [`class_attribute`][.Class.class_attribute].
+- Link to [`instance_attribute`][.Class.instance_attribute].
+- Link to [`method`][.Class.method].
+"""
+
+module_attribute = 0
+"""Summary.
+
+- Link to [`module`][..].
+- Link to [`module_attribute`][.].
+- Link to [`Class`][..Class].
+- Link to [`class_attribute`][..Class.class_attribute].
+- Link to [`instance_attribute`][..Class.instance_attribute].
+- Link to [`method`][..Class.method].
+"""
+
+class Class:
+ """Summary.
+
+ - Link to [`module`][..].
+ - Link to [`module_attribute`][..module_attribute].
+ - Link to [`Class`][.].
+ - Link to [`class_attribute`][.class_attribute].
+ - Link to [`instance_attribute`][.instance_attribute].
+ - Link to [`method`][.method].
+ """
+
+ class_attribute = 0
+ """Summary.
+
+ - Link to [`module`][...].
+ - Link to [`module_attribute`][...module_attribute].
+ - Link to [`Class`][..].
+ - Link to [`class_attribute`][.].
+ - Link to [`instance_attribute`][..instance_attribute].
+ - Link to [`method`][..method].
+ """
+
+ def __init__(self):
+ """Summary.
+
+ - Link to [`module`][...].
+ - Link to [`module_attribute`][...module_attribute].
+ - Link to [`Class`][..].
+ - Link to [`class_attribute`][..class_attribute].
+ - Link to [`instance_attribute`][..instance_attribute].
+ - Link to [`method`][..method].
+ """
+ self.instance_attribute = 0
+ """Summary.
+
+ - Link to [`module`][...].
+ - Link to [`module_attribute`][...module_attribute].
+ - Link to [`Class`][..].
+ - Link to [`class_attribute`][..class_attribute].
+ - Link to [`instance_attribute`][.].
+ - Link to [`method`][..method].
+ """
+
+ def method(self):
+ """Summary.
+
+ - Link to [`module`][...].
+ - Link to [`module_attribute`][...module_attribute].
+ - Link to [`Class`][..].
+ - Link to [`class_attribute`][..class_attribute].
+ - Link to [`instance_attribute`][..instance_attribute].
+ - Link to [`method`][.].
+ """
+
There is an alternative, third-party Python handler that handles relative references: mkdocstrings-python-xref.
scoped_crossrefs
¤Sponsors only — Insiders 1.9.0
bool
False
Whether to enable scoped cross-references.
With scoped cross-references, you can write identifiers as if you wanted to access them from the current object's scope. The scoping rules do not exactly match Python's: you can reference members and siblings too, without prefixing with self.
or cls.
.
The following order is applied when resolving a name in a given scope:
In practice, it means that the name is first looked up in members, then it is compared against the parent name (only if it's a class), then it is looked up in siblings. It continues climbing up the object tree until there's no parent, in which case it raises a name resolution error.
Cross-referencing an imported object will directly link to this object if the objects inventory of the project it comes from was loaded. You won't be able to cross-reference it within your own documentation with scoped references, if you happen to be rendering this external object too. In that case, you can use an absolute reference or a relative one instead.
Another limitation is that you won't be able to reference an external package if its name can be resolved in the current object's scope.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ scoped_crossrefs: false
+
::: path.to.module
+ options:
+ scoped_crossrefs: true
+
Examples
"""Summary.
+
+- Link to [`module_attribute`][module_attribute].
+- Link to [`Class`][Class].
+- Link to [`class_attribute`][Class.class_attribute].
+- Link to [`instance_attribute`][Class.instance_attribute].
+- Link to [`method`][Class.method].
+"""
+
+module_attribute = 0
+"""Summary.
+
+- Link to [`Class`][Class].
+- Link to [`class_attribute`][Class.class_attribute].
+- Link to [`instance_attribute`][Class.instance_attribute].
+- Link to [`method`][Class.method].
+"""
+
+class Class:
+ """Summary.
+
+ - Link to [`module_attribute`][module_attribute].
+ - Link to [`class_attribute`][class_attribute].
+ - Link to [`instance_attribute`][instance_attribute].
+ - Link to [`method`][method].
+ """
+
+ class_attribute = 0
+ """Summary.
+
+ - Link to [`module_attribute`][module_attribute].
+ - Link to [`Class`][Class].
+ - Link to [`instance_attribute`][instance_attribute].
+ - Link to [`method`][method].
+ """
+
+ def __init__(self):
+ """Summary.
+
+ - Link to [`module_attribute`][module_attribute].
+ - Link to [`Class`][Class].
+ - Link to [`class_attribute`][class_attribute].
+ - Link to [`instance_attribute`][instance_attribute].
+ - Link to [`method`][method].
+ """
+ self.instance_attribute = 0
+ """Summary.
+
+ - Link to [`module_attribute`][module_attribute].
+ - Link to [`Class`][Class].
+ - Link to [`class_attribute`][class_attribute].
+ - Link to [`method`][method].
+ """
+
+ def method(self):
+ """Summary.
+
+ - Link to [`module_attribute`][module_attribute].
+ - Link to [`Class`][Class].
+ - Link to [`class_attribute`][class_attribute].
+ - Link to [`instance_attribute`][instance_attribute].
+ """
+
show_if_no_docstring
¤bool
False
Show the object heading even if it has no docstring or children with docstrings.
Without an explicit list of members
, members are selected based on filters
, and then filtered again to keep only those with docstrings. Checking if a member has a docstring is done recursively: if at least one of its direct or indirect members (lower in the tree) has a docstring, the member is rendered. If the member does not have a docstring, and none of its members have a docstring, it is excluded.
With this option you can tell the Python handler to skip the docstring check.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_if_no_docstring: false
+
::: path.to.module
+ options:
+ show_if_no_docstring: true
+
def function_without_docstring():
+ ...
+
+
+def function_with_docstring():
+ """Hello."""
+
+
+class ClassWithoutDocstring:
+ def method_without_docstring(self):
+ ...
+
+ def method_with_docstring(self):
+ """Hello."""
+
Preview
function_without_docstring
function_with_docstring
Hello.
ClassWithoutDocstring
method_without_docstring
method_with_docstring
Hello.
function_with_docstring
Hello.
ClassWithoutDocstring
method_with_docstring
Hello.
show_docstring_attributes
¤bool
True
Whether to render the "Attributes" sections of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_attributes: true
+
::: path.to.module
+ options:
+ show_docstring_attributes: false
+
class Class:
+ """Summary.
+
+ Attributes:
+ attr: Some attribute.
+ """
+
+ attr: int = 1
+
Preview
Class
Summary.
show_docstring_functions
¤bool
True
Whether to render the "Functions" or "Methods" sections of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_functions: true
+
::: path.to.module
+ options:
+ show_docstring_functions: false
+
"""Summary.
+
+Functions:
+ foo: Some function.
+"""
+
+
+def foo():
+ ...
+
+
+class Class:
+ """Summary.
+
+ Methods:
+ bar: Some method.
+ """
+
+ def bar(self):
+ ...
+
Preview
Summary.
Functions:
Name | Description |
---|---|
foo | Some function. |
Class
Summary.
Methods:
Name | Description |
---|---|
bar | Some method. |
Summary.
Class
Summary.
show_docstring_classes
¤bool
True
Whether to render the "Classes" sections of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_classes: true
+
::: path.to.module
+ options:
+ show_docstring_classes: false
+
"""Summary.
+
+Classes:
+ Class: Some class.
+"""
+
+
+class Class:
+ """Summary."""
+
Preview
Summary.
Classes:
Name | Description |
---|---|
Class | Some class. |
Class
Summary.
Summary.
Class
Summary.
show_docstring_modules
¤bool
True
Whether to render the "Modules" sections of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_modules: true
+
::: path.to.module
+ options:
+ show_docstring_modules: false
+
📁 module/
+├── __init__.py
+└── submodule.py
+
"""Summary.
+
+Modules:
+ submodule: Some module.
+"""
+
Preview
Summary.
Modules:
Name | Description |
---|---|
submodule | Some module. |
Summary.
show_docstring_description
¤bool
True
Whether to render the textual blocks (including admonitions) of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_description: true
+
::: path.to.module
+ options:
+ show_docstring_description: false
+
class Class:
+ """Summary.
+
+ Long description.
+
+ Warning: Deprecated
+ Stop using this class.
+
+ Attributes:
+ attr: Some attribute.
+ """
+
+ attr: int = 1
+
Preview
show_docstring_examples
¤bool
True
Whether to render the "Examples" section of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_examples: true
+
::: path.to.module
+ options:
+ show_docstring_examples: false
+
def print_hello():
+ """Print hello.
+
+ Examples:
+ >>> print("hello")
+ hello
+ """
+ print("hello")
+
Preview
print_hello
Print hello.
Examples:
>>> print("hello")
+hello
+
print_hello
Print hello.
show_docstring_other_parameters
¤bool
True
Whether to render the "Other Parameters" section of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_other_parameters: true
+
::: path.to.module
+ options:
+ show_docstring_other_parameters: false
+
def do_something(**kwargs):
+ """Do something.
+
+ Other parameters:
+ whatever (int): Some integer.
+ """
+
Preview
do_something
Do something.
show_docstring_parameters
¤bool
True
Whether to render the "Parameters" section of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_parameters: true
+
::: path.to.module
+ options:
+ show_docstring_parameters: false
+
def do_something(whatever: int = 0):
+ """Do something.
+
+ Parameters:
+ whatever: Some integer.
+ """
+
Preview
do_something
Do something.
show_docstring_raises
¤bool
True
Whether to render the "Raises" section of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_raises: true
+
::: path.to.module
+ options:
+ show_docstring_raises: false
+
def raise_runtime_error():
+ """Raise a runtime error.
+
+ Raises:
+ RuntimeError: Not good.
+ """
+ raise RuntimeError
+
Preview
raise_runtime_error
Raise a runtime error.
show_docstring_receives
¤bool
True
Whether to render the "Receives" section of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_receives: true
+
::: path.to.module
+ options:
+ show_docstring_receives: false
+
def iter_skip(
+ iterable: Iterable[T],
+ initial_skip: int = 0,
+) -> Generator[T, int, None]:
+ """Iterate and skip elements.
+
+ Receives:
+ skip: Number of elements to skip.
+ """
+ skip = initial_skip
+ for element in iterable:
+ if skip or 0 > 0:
+ skip -= 1
+ else:
+ skip = yield element
+
Preview
iter_skip
Iterate and skip elements.
show_docstring_returns
¤bool
True
Whether to render the "Returns" section of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_returns: true
+
::: path.to.module
+ options:
+ show_docstring_returns: false
+
def rand() -> int:
+ """Return a random number.
+
+ Returns:
+ A random number.
+ """
+ return random.randint(0, 1000)
+
Preview
rand
Return a random number.
show_docstring_warns
¤bool
True
Whether to render the "Warns" section of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_warns: true
+
::: path.to.module
+ options:
+ show_docstring_warns: false
+
def warn():
+ """Warn user.
+
+ Warns:
+ UserWarning: When this is inappropriate.
+ """
+ warnings.warn(UserWarning("This is inappropriate"))
+
Preview
warn
Warn user.
show_docstring_yields
¤bool
True
Whether to render the "Yields" section of docstrings.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_docstring_yields: true
+
::: path.to.module
+ options:
+ show_docstring_yields: false
+
def iter_skip(
+ iterable: Iterable[T],
+ initial_skip: int = 0,
+) -> Generator[T, int, None]:
+ """Iterate and skip elements.
+
+ Yields:
+ Elements of the iterable.
+ """
+ skip = initial_skip
+ for element in iterable:
+ if skip or 0 > 0:
+ skip -= 1
+ else:
+ skip = yield element
+
Preview
iter_skip
Iterate and skip elements.
Yields:
Type | Description |
---|---|
T | Elements of the iterable. |
iter_skip
Iterate and skip elements.
allow_inspection
¤bool
True
Whether to allow inspecting modules (importing them) when it is not possible to visit them (parse their source code).
When loading data for a given package, Griffe discovers every Python module, compiled or not, and inspects or visits them accordingly.
If you have compiled modules but also provide stubs for them, you might want to disable the inspection of these modules, because inspection picks up many more members, and sometimes the collected data is inaccurate (depending on the tool that was used to compile the module) or too low-level/technical for API documentation.
See also force_inspection
.
Packages are loaded only once.
When mkdocstrings-python collects data from a Python package (thanks to Griffe), it collects the entire package and caches it. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. The allow_inspection
option will therefore only have an effect the first time a package is collected, and will do nothing for objects rendered afterwards.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ allow_inspection: true
+
::: path.to.object
+ options:
+ allow_inspection: false
+
Preview
SomeClass
Docstring of the class.
__eq__
Method docstring.
__weakref__
Method docstring.
documented_method
Method docstring.
SomeClass
Docstring of the class.
documented_method
Method docstring.
backlinks
¤Sponsors only — Insiders 1.10.0
Literal["flat", "tree", False]
False
The backlinks
option enables rendering of backlinks within your API documentation.
When an arbitrary section of your documentation links to an API symbol, this link will be collected as a backlink, and rendered below your API symbol. In short, the API symbol will link back to the section that links to it. Such backlinks will help your users navigate the documentation, as they will immediately which functions return a specific symbol, or where a specific symbol is accepted as parameter, etc..
Each backlink is a list of breadcrumbs that represent the navigation, from the root page down to the given section.
The available styles for rendering backlinks are flat
and tree
.
flat
will render backlinks as a single-layer list. This can lead to repetition of breadcrumbs.tree
will combine backlinks into a tree, to remove repetition of breadcrumbs.Global-only option.
For now, the option only works when set globally in mkdocs.yml
.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ backlinks: tree
+
Preview
extensions
¤The extensions
option lets you enable Griffe extensions, which enhance or modify the data collected from Python sources (or compiled modules).
Elements in the list can be strings or dictionaries.
Strings denote the path to an extension module, like griffe_typingdoc
, or to an extension class directly, like griffe_typingdoc.TypingDocExtension
. When using a module path, all extensions within that module will be loaded and enabled. Strings can also be the path to a Python module, and a class name separated with :
, like scripts/griffe_extensions.py
or scripts/griffe_extensions.py:MyExtension
.
Dictionaries have a single key, which is the module/class path (as a dot-separated qualifier or file path and colon-separated class name, like above), and its value is another dictionary specifying options that will be passed when to class constructors when instantiating extensions.
Packages are loaded only once.
When mkdocstrings-python collects data from a Python package (thanks to Griffe), it collects the entire package and caches it. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. Only the extensions specified the first time the package is loaded will be used. You cannot use a different set of extensions for specific objects rendered afterwards, and you cannot deactivate extensions for objects rendered afterwards either.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ extensions:
+ - griffe_sphinx
+ - griffe_pydantic: {schema: true}
+ - scripts/exts.py:DynamicDocstrings:
+ paths: [mypkg.mymod.myobj]
+
::: your_package.your_module.your_func
+ options:
+ extensions:
+ - griffe_typingdoc
+
extra
¤dict
{}
The extra
option lets you inject additional variables into the Jinja context used when rendering templates. You can then use this extra context in your overridden templates.
Local extra
options will be merged into the global extra
option:
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ extra:
+ hello: world
+
::: your_package.your_module.your_func
+ options:
+ extra:
+ foo: bar
+
...will inject both hello
and foo
into the Jinja context when rendering your_package.your_module.your_func
.
Warning
Previously, extra options were supported directly under the options
key.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ hello: world
+
Now that we introduced optional validation of options and automatic JSON schema generation thanks to Pydantic, we require extra options to be put under options.extra
. Extra options directly under options
are still supported, but deprecated, and will emit deprecation warnings. Support will be removed in a future version of mkdocstrings-python.
find_stubs_package
¤bool
False
When looking for documentation specified in autodoc instructions (::: identifier
), also look for the stubs package as defined in PEP 561 if it exists. This is useful when most of your documentation is separately provided by such a package and not inline in your main package.
Packages are loaded only once.
When mkdocstrings-python collects data from a Python package (thanks to Griffe), it collects the entire package and caches it. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. The find_stubs_package
option will therefore only have an effect the first time a package is collected, and will do nothing for objects rendered afterwards.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ find_stubs_package: true
+
::: your_package.your_module.your_func
+ options:
+ find_stubs_package: true
+
def your_func(a, b):
+ # Function code
+ ...
+
+# rest of your code
+
def your_func(a: int, b: str):
+ """
+ <Function docstring>
+ """
+ ...
+
+# rest of your code
+
Preview
your_func
Function docstring
your_func
force_inspection
¤bool
False
Whether to force inspecting modules (importing them) even if their source code is available.
This option is useful when you know that dynamic analysis (inspection) yields better results than static analysis. Do not use this blindly: the recommended approach is to write a Griffe extension that will improve extracted API data. See How to selectively inspect objects.
See also allow_inspection
.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ force_inspection: false
+
::: path.to.object
+ options:
+ force_inspection: true
+
Packages are loaded only once.
When mkdocstrings-python collects data from a Python package (thanks to Griffe), it collects the entire package and caches it. Next time an object from the same package is rendered, the package is retrieved from the cache and not collected again. The force_inspection
option will therefore only have an effect the first time a package is collected, and will do nothing for objects rendered afterwards.
preload_modules
¤Pre-load modules that are not specified directly in autodoc instructions (::: identifier
). It is useful when you want to render documentation for a particular member of an object, and this member is imported from another package than its parent.
For an imported member to be rendered, you need to add it to the __all__
attribute of the importing module. The package from which the imported object originates must be accessible to the handler (see Finding modules).
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ preload_modules:
+ - their_package
+
::: your_package.your_module
+ options:
+ preload_modules:
+ - their_package
+
from their_package.their_module import their_object
+
+__all__ = ["their_object"]
+
+# rest of your code
+
Preview
your_module
Docstring of your module.
their_object
Docstring of their object.
your_module
Docstring of your module.
show_bases
¤bool
True
Show the base classes of a class.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_bases: true
+
::: path.to.object
+ options:
+ show_bases: false
+
Preview
SomeClass()
Docstring of the class.
show_inheritance_diagram
¤Sponsors only — Insiders 1.7.0
bool
False
Show the inheritance diagram of a class using Mermaid.
With this option enabled, an inheritance diagram (as a flowchart) will be displayed after a class signature. Each node will act as a cross-reference and will bring you to the relevant class' documentation when clicking on it.
It should work out of the box with Material for MkDocs. For other themes, you must include Mermaid's Javascript code manually:
extra_javascript:
+- https://unpkg.com/mermaid@10.9.0/dist/mermaid.min.js
+
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_inheritance_diagram: true
+
::: path.to.object
+ options:
+ show_inheritance_diagram: false
+
Preview
With the following classes:
class SuperAbstract:
+ """Super abstract class."""
+class Mixin1:
+ """Mixin 1."""
+class Abstract(SuperAbstract, Mixin1):
+ """Abstract class."""
+class Mixin2A:
+ """Mixin 2A."""
+class Mixin2B(Mixin2A):
+ """Mixin 2B."""
+class Concrete(Abstract, Mixin2B):
+ """Concrete class."""
+class SuperConcrete(Concrete):
+ """Super concrete class."""
+
The diagram for SuperConcrete
will look like this:
flowchart TD
+SuperConcrete[SuperConcrete]
+Concrete[Concrete]
+Abstract[Abstract]
+SuperAbstract[SuperAbstract]
+Mixin1[Mixin1]
+Mixin2B[Mixin2B]
+Mixin2A[Mixin2A]
+
+Concrete --> SuperConcrete
+Abstract --> Concrete
+SuperAbstract --> Abstract
+Mixin1 --> Abstract
+Mixin2B --> Concrete
+Mixin2A --> Mixin2B
Nodes are not clickable in this example because these classes do not exist in our documentation.
show_source
¤bool
True
Show the source code of this object.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_source: true
+
::: path.to.object
+ options:
+ show_source: false
+
Preview
some_function()
Docstring of the function.
package/module.py
1 +2 |
|
some_function()
Docstring of the function.
heading
¤str
""
A custom string to use as the heading of the root object (i.e. the object specified directly after the identifier :::
). This will override the default heading generated by the plugin. See also the toc_label
option.
Not advised to be used as a global configuration option.
This option is not advised to be used as a global configuration option, as it will override the default heading for all objects. It is recommended to use it only in specific cases where you want to override the heading for a specific object.
::: path.to.module
+ options:
+ heading: "My fancy module"
+
heading_level
¤int
2
The initial heading level to use.
When injecting documentation for an object, the object itself and its members are rendered. For each layer of objects, we increase the heading level by 1.
The initial heading level will be used for the first layer. If you set it to 3, then headings will start with <h3>
.
If the heading for the root object is not shown, then the initial heading level is used for its members.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ heading_level: 2
+
::: path.to.module
+ options:
+ heading_level: 3
+
Preview
module
(3)Docstring of the module.
ClassA
(4)Docstring of class A.
ClassB
(4)Docstring of class B.
method_1
(5)Docstring of the method.
Docstring of the module.
ClassA
(3)Docstring of class A.
ClassB
(3)Docstring of class B.
method_1
(4)Docstring of the method.
parameter_headings
¤bool
False
Whether to render headings for function/method parameters.
With this option enabled, each function/method parameter (including parameters of __init__
methods merged in their parent class with the merge_init_into_class
option) gets a permalink, an entry in the Table of Contents, and an entry in the generated objects inventory. The permalink and inventory entry allow cross-references from internal and external pages.
The identifier used in the permalink and inventory is of the following form: path.to.function(param_name)
. To manually cross-reference a parameter, you can therefore use this Markdown syntax:
- Class parameter: [`param`][package.module.Class(param)]
+- Method parameter: [`param`][package.module.Class.method(param)]
+- Function parameter: [`param`][package.module.function(param)]
+- Variadic positional parameters: [`*args`][package.module.function(*args)]
+- Variadic keyword parameters: [`**kwargs`][package.module.function(**kwargs)]
+
Enabling this option along with signature_crossrefs
will automatically render cross-references to parameters in class/function/method signatures and attributes values.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ parameter_headings: false
+
::: path.to.module
+ options:
+ parameter_headings: true
+
Preview: Cross-references
get_version ¤
current_version module-attribute
¤current_version: str = get_version(dist='mkdocstrings-python')
+
Current package version.
Preview: Parameter sections
Preview: Table of contents (with symbol types)
get_version
dist
To customize symbols, see Customizing symbol types.
show_root_heading
¤bool
False
Show the heading of the object at the root of the documentation tree (i.e. the object referenced by the identifier after :::
).
It is pretty common to inject documentation for one module per page, especially when following our automatic reference pages recipe. Since each page already has a title, usually being the module's name, we can spare one heading level by not showing the heading for the module itself (heading levels are limited to 6 by the HTML specification).
Sparing that extra level can be helpful when your objects tree is deeply nested (e.g. method in a class in a class in a module). If your objects tree is not deeply nested, and you are injecting documentation for many different objects on a single page, it might be preferable to render the heading of each object.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_root_heading: false
+
::: path.to.ClassA
+ options:
+ show_root_heading: true
+
+::: path.to.ClassB
+ options:
+ show_root_heading: true
+
Preview
ClassA
(2)Docstring of class A.
method_a1
(3)Docstring of the method.
ClassB
(2)Docstring of class B.
method_b1
(3)Docstring of the method.
Docstring of class A.
method_a1
(2)Docstring of the method.
Docstring of class B.
method_b1
(2)Docstring of the method.
show_root_toc_entry
¤bool
True
If the root heading is not shown, at least add a ToC entry for it.
If you inject documentation for an object in the middle of a page, after long paragraphs, and without showing the root heading, then you will not be able to link to this particular object as it won't have a permalink and will be "lost" in the middle of text. In that case, it is useful to add a hidden anchor to the document, which will also appear in the table of contents.
In other cases, you might want to disable the entry to avoid polluting the ToC. It is not possible to show the root heading and hide the ToC entry.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_root_toc_entry: true
+
## Some heading
+
+Lots of text.
+
+::: path.to.object
+ options:
+ show_root_toc_entry: false
+
+## Other heading.
+
+More text.
+
Preview
Table of contents Some heading object
Other heading
Table of contents Some heading Other heading
show_root_full_path
¤bool
True
Show the full Python path for the root object heading.
The path of a Python object is the dot-separated list of names under which it is accessible, for example package.module.Class.method
.
With this option you can choose to show the full path of the object you inject documentation for, or just its name. This option impacts only the object you specify, not its members. For members, see the two other options show_root_members_full_path
and show_object_full_path
.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_root_full_path: true
+
::: package.module.Class.method
+ options:
+ show_root_full_path: false
+
Preview
package.module.Class.method
Docstring of the method.
method
Docstring of the method.
show_root_members_full_path
¤bool
False
Show the full Python path of the root members.
This option does the same thing as show_root_full_path
, but for direct members of the root object instead of the root object itself.
To show the full path for every member recursively, see show_object_full_path
.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_root_members_full_path: true
+
::: package.module
+ options:
+ show_root_members_full_path: false
+
Preview
Docstring of the module.
package.module.Class
Docstring of the class.
method
Docstring of the method.
Docstring of the module.
Class
Docstring of the class.
method
Docstring of the method.
show_object_full_path
¤bool
False
Show the full Python path of every object.
Same as for show_root_members_full_path
, but for every member, recursively. This option takes precedence over show_root_members_full_path
:
show_root_members_full_path | show_object_full_path | Direct root members path |
---|---|---|
False | False | Name only |
False | True | Full |
True | False | Full |
True | True | Full |
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_object_full_path: true
+
::: package.module
+ options:
+ show_object_full_path: false
+
Preview
Docstring of the module.
package.module.Class
Docstring of the class.
package.module.Class.method
Docstring of the method.
Docstring of the module.
Class
Docstring of the class.
method
Docstring of the method.
show_category_heading
¤bool
False
When grouped by categories, show a heading for each category. These category headings will appear in the table of contents, allowing you to link to them using their permalinks.
Not recommended with deeply nested objects.
When injecting documentation for deeply nested objects, you'll quickly run out of heading levels, and the objects at the bottom of the tree risk all getting documented using H6 headings, which might decrease the readability of your API docs.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ group_by_category: true
+ show_category_heading: true
+
::: package.module
+ options:
+ group_by_category: true
+ show_category_heading: false
+
Preview
Docstring of the module.
module_attribute
(3)Docstring of the module attribute.
Class
(3)Docstring of the class.
class_attribute
(5)Docstring of the class attribute.
method
(5)Docstring of the method.
Docstring of the module.
module_attribute
(2)Docstring of the module attribute.
Class
(2)Docstring of the class.
class_attribute
(3)Docstring of the class attribute.
method
(3)Docstring of the method.
show_symbol_type_heading
¤bool
False
Show the symbol type in headings.
This option will prefix headings with ,
,
,
or
types. See also
show_symbol_type_toc
.
To customize symbols, see Customizing symbol types.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_symbol_type_heading: true
+
::: package.module
+ options:
+ show_symbol_type_heading: false
+
Preview
module
Docstring of the module.
attribute
Docstring of the module attribute.
function
Docstring of the function.
Class
Docstring of the class.
method
Docstring of the method.
module
Docstring of the module.
attribute
Docstring of the module attribute.
function
Docstring of the function.
Class
Docstring of the class.
method
Docstring of the method.
show_symbol_type_toc
¤bool
False
Show the symbol type in the Table of Contents.
This option will prefix items in the ToC with ,
,
,
or
types. See also
show_symbol_type_heading
.
To customize symbols, see Customizing symbol types.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_symbol_type_toc: true
+
::: package.module
+ options:
+ show_symbol_type_toc: false
+
Preview
module
attribute
function
Class
methodtoc_label
¤str
""
A custom string to use as the label in the Table of Contents for the root object (i.e. the one specified directly after the identifier :::
). This will override the default label generated by the plugin. See also the heading
option.
Not advised to be used as a global configuration option.
This option is not advised to be used as a global configuration option, as it will override the default label for all objects. It is recommended to use it only in specific cases where you want to override the label for a specific object.
Use with/without heading
.
If you use this option without specifying a custom heading
, the default heading will be used in the page, but the label in the Table of Contents will be the one you specified. By providing both an option for heading
and toc_label
, we leave the customization entirely up to you.
::: path.to.module
+ options:
+ heading: "My fancy module"
+ toc_label: "My fancy module"
+
members
¤An explicit list of members to render.
Only members declared in this list will be rendered. A member without a docstring will still be rendered, even if show_if_no_docstring
is set to false.
The members will be rendered in the specified order, regardless of the value of members_order
. Note that members will still be grouped by category, according to the group_by_category
option.
Passing a falsy value (no
, false
in YAML) or an empty list ([]
) will tell the Python handler not to render any member. Passing a truthy value (yes
, true
in YAML) will tell the Python handler to render every member.
Any given value, except for an explicit None
(null
in YAML) will tell the handler to ignore filters
for the object's members. Filters will still be applied to the next layers of members (grand-children).
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ members:
+ - hello # (1)
+
::: package.module
+ options:
+ members:
+ - ThisClass
+ - this_function
+
"""Module docstring."""
+
+
+def this_function():
+ """Function docstring."""
+
+
+class ThisClass:
+ """Class docstring."""
+
+ def method(self):
+ """Method docstring."""
+
+
+this_attribute = 0
+"""Attribute docstring."""
+
Preview
Module docstring.
this_function
Function docstring.
ThisClass
Class docstring.
method
Method docstring.
this_attribute
Attribute docstring.
Module docstring.
Module docstring.
ThisClass
Class docstring.
method
Method docstring.
The default behavior (with unspecified members
or members: null
) is to use filters
.
inherited_members
¤An explicit list of inherited members (for classes) to render.
Inherited members are always fetched from classes that are in the same package as the currently rendered class. To fetch members inherited from base classes, themselves coming from external packages, use the preload_modules
option. For example, if your class inherits from Pydantic's BaseModel
, and you want to render BaseModel
's methods in your class, use preload_modules: [pydantic]
. The pydantic
package must be available in the current environment.
Passing a falsy value (no
, false
in YAML) or an empty list ([]
) will tell the Python handler not to render any inherited member. Passing a truthy value (yes
, true
in YAML) will tell the Python handler to render every inherited member.
When all inherited members are selected with inherited_members: true
, it is possible to specify both members and inherited members in the members
list:
inherited_members: true
+members:
+- inherited_member_a
+- inherited_member_b
+- member_x
+- member_y
+
The alternative is not supported:
inherited_members:
+- inherited_member_a
+- inherited_member_b
+members:
+- member_x
+- member_y
+
...because it would make members ordering ambiguous/unspecified.
You can render inherited members only by setting inherited_members: true
(or a list of inherited members) and setting members: false
:
inherited_members: true
+members: false
+
inherited_members:
+- inherited_member_a
+- inherited_member_b
+members: false
+
You can render all declared members and all or specific inherited members by leaving members
as null (default):
inherited_members:
+- inherited_member_a
+- inherited_member_b
+# members: null # (1)
+
filters
and docstrings
.inherited_members: true # (1)
+# members: null
+
filters
and docstrings
.You can render all declared members and all or specific inherited members, avoiding further filtering with filters
and docstrings
by setting members: true
:
inherited_members: true
+members: true
+
inherited_members:
+- inherited_member_a
+- inherited_member_b
+members: true
+
The general rule is that declared or inherited members specified in lists are never filtered out.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ inherited_members: false
+
::: package.module
+ options:
+ inherited_members: true
+
"""Module docstring."""
+
+
+class Base:
+ """Base class."""
+
+ def base(self):
+ """Base method."""
+
+
+class Main(Base):
+ """Main class."""
+
+ def main(self):
+ """Main method."""
+
Preview
Module docstring.
Base
Base class.
base
Base method.
Main
Main class.
base
Base method.
main
Main method.
Module docstring.
Base
Base class.
base
Base method.
Main
Main class.
main
Main method.
members_order
¤str | list[str]
"alphabetical"
The members ordering to use. Possible values:
__all__
( Sponsors only — Insiders 1.12.0): Order according to __all__
attributes. Since classes do not define __all__
attributes, you can specify a second ordering method by using a list.alphabetical
: Order by the members names.source
: Order members as they appear in the source file.The order applies for all members, recursively. The order will be ignored for members that are explicitely sorted using the members
option. Note that members will still be grouped by category, according to the group_by_category
option.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ members_order: alphabetical
+
::: package.module
+ options:
+ members_order: source
+
::: package.module
+ options:
+ members_order: [__all__, source]
+
"""Module docstring."""
+
+
+def function_b():
+ """Function a."""
+
+
+def function_a():
+ """Function b."""
+
+
+def function_c():
+ """Function c."""
+
Preview
Module docstring.
function_a
Function a.
function_b
Function b.
function_c
Function c.
Module docstring.
function_b
Function b.
function_a
Function a.
function_c
Function c.
filters
¤A list of filters, or "public"
.
Filtering methods
Sponsors only — Insiders 1.11.0
The public
filtering method will include only public objects: those added to the __all__
attribute of modules, or not starting with a single underscore. Special methods and attributes ("dunder" methods/attributes, starting and ending with two underscores), like __init__
, __call__
, __mult__
, etc., are always considered public.
List of filters
Filters are regular expressions. These regular expressions are evaluated by Python and so must match the syntax supported by the re
module. A filter starting with !
(negative filter) will exclude matching objects instead of including them.
The default value (["!^_[^_]"]
) means: render every object, except those starting with one underscore, unless they start with two underscores. It means that an object whose name is hello
, __hello
, or __hello__
will be rendered, but not one whose name is _hello
.
Each filter takes precedence over the previous one. This allows for fine-grain selection of objects by adding more specific filters. For example, you can start by unselecting objects that start with _
, and add a second filter that re-select objects that start with __
. The default filters can therefore be rewritten like this:
filters:
+- "!^_"
+- "^__"
+
If there are no negative filters, the handler considers that everything is unselected first, and then selects things based on your positive filters. If there is at least one negative filter, the handler considers that everything is selected first, and then re-selects/unselects things based on your other filters. In short, filters: ["a"]
means "keep nothing except names containing a
", while filters: ["!a"]
means "keep everything except names containing a
".
An empty list of filters tells the Python handler to render every object. The members
option takes precedence over filters (filters will still be applied recursively to lower members in the hierarchy).
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ filters:
+ - "!^_[^_]"
+
::: package.module
+ options:
+ filters: public
+
def hello():
+ ...
+
+
+def _world():
+ ...
+
Preview
Module docstring.
hello
Function docstring.
_world
Function docstring.
Module docstring.
hello
Function docstring.
Module docstring.
_world
Function docstring.
Common filters
Here are some common filters that you might to want to use.
["!^_"]
: exclude all private/protected/special objects["!^_", "^__init__$"]
: same as above, but keep __init__
methods["!^_[^_]"]
: exclude all private/protected objects, keep special ones (default filters)group_by_category
¤bool
True
Group the object members by categories: attributes, classes, functions, and modules.
Members within a same category will be ordered according to the members_order
option. You can use the show_category_heading
option to also render a heading for each category.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ group_by_category: true
+
::: package.module
+ options:
+ group_by_category: false
+
def function_a():
+ ...
+
+
+class ClassB:
+ ...
+
+
+attribute_C = 0
+
+
+def function_d():
+ ...
+
Preview
Module docstring.
attribute_c
Attribute docstring.
ClassB
Class docstring.
function_a
Function docstring.
function_d
Function docstring.
Module docstring.
function_a
Function docstring.
ClassB
Class docstring.
attribute_c
Attribute docstring.
function_d
Function docstring.
show_submodules
¤bool
False
When rendering a module, show its submodules recursively.
This is false by default, because most of the time we render only one module per page, and when rendering a package (a tree of modules and their members) on a single page, we quickly run out of heading levels.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_submodules: true
+
::: package.subpackage
+ options:
+ show_submodules: false
+
📁 package
+├── __init__.py
+└── 📁 subpackage
+ ├── __init__.py
+ └── submodule.py
+
Preview
Subpackage docstring.
subpackage_member
Member docstring.
submodule
Submodule docstring.
submodule_member
Member docstring.
Subpackage docstring.
subpackage_member
Member docstring.
summary
¤Whether to render summaries of modules, classes, functions (methods) and attributes.
This option accepts a boolean (yes
, true
, no
, false
in YAML) or a dictionary with one or more of the following keys: attributes
, functions
, classes
, modules
, with booleans as values. Class methods summary is (de)activated with the functions
key. By default, summary
is false, and by extension all values are false.
Examples:
summary: true
+
summary: false
+
summary:
+ attributes: false
+ functions: true
+ modules: false
+
Summaries will be rendered as the corresponding docstring sections. For example, the summary for attributes will be rendered as an Attributes docstring section. The section will be rendered in accordance with the docstring_section_style
option. If the objects appearing in the summary are also rendered on the page (or somewhere else on the site), their name will automatically link to their rendered documentation.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ summary: true
+
::: path.to.module
+ options:
+ summary: false
+
Preview
::: path.to.module.MyClass
+ options:
+ summary: true
+
Class docstring.
Methods:
Attributes:
::: path.to.module.MyClass
+ options:
+ summary:
+ functions: true
+
Class docstring.
Methods:
show_labels
¤bool
True
Whether to show labels of the members.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_labels: true
+
::: package.module
+ options:
+ show_labels: false
+
class SomeClass:
+ some_attr: int
+
Preview
some_attr: int
instance-attribute
some_attr: int
annotations_path
¤str
"brief"
The verbosity for annotations path.
Possible values:
brief
(recommended): render only the last component of each type path, not their full paths. For example, it will render Sequence[Path]
and not typing.Sequence[pathlib.Path]
. Brief annotations will cross-reference the right object anyway, and show the full path in a tooltip when hovering them.source
: render annotations as written in the source. For example if you imported typing
as t
, it will render typing.Sequence
as t.Sequence
. Each part will cross-reference the relevant object: t
will link to the typing
module and Sequence
will link to the Sequence
type.full
: render annotations with their full path (the opposite of brief). For example if you import Sequence
and Pattern
from typing
and annoate something using Sequence[Pattern]
, it will render as typing.Sequence[typing.Pattern]
, with each part cross-referencing the corresponding object.plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ annotations_path: brief
+
::: path.to.module
+ options:
+ annotations_path: source
+
Preview
import markdown
+import markupsafe
+
+
+def convert(text: str, md: markdown.Markdown) -> markupsafe.Markup:
+ """Convert text to Markdown.
+
+ Parameters:
+ text: The text to convert.
+ md: A Markdown instance.
+
+ Returns:
+ Converted markup.
+ """
+ return markupsafe.Markup(md.convert(text))
+
convert(text, md)
Convert text to Markdown.
Parameters:
Type | Description | Default |
---|---|---|
str | The text to convert. | required |
Markdown | A Markdown instance. | required |
Returns:
Type | Name | Description |
---|---|---|
Markup | text | Converted markup. |
import markdown
+from markupsafe import Markup
+
+
+def convert(text: str, md: markdown.Markdown) -> Markup:
+ """Convert text to Markdown.
+
+ Parameters:
+ text: The text to convert.
+ md: A Markdown instance.
+
+ Returns:
+ Converted markup.
+ """
+ return Markup(md.convert(text))
+
convert(text, md)
Convert text to Markdown.
Parameters:
Type | Description | Default |
---|---|---|
str | The text to convert. | required |
markdown.Markdown | A Markdown instance. | required |
Returns:
Type | Name | Description |
---|---|---|
Markup | text | Converted markup. |
from markdown import Markdown
+from markupsafe import Markup
+
+
+def convert(text: str, md: Markdown) -> Markup:
+ """Convert text to Markdown.
+
+ Parameters:
+ text: The text to convert.
+ md: A Markdown instance.
+
+ Returns:
+ Converted markup.
+ """
+ return Markup(md.convert(text))
+
convert(text, md)
Convert text to Markdown.
Parameters:
Type | Description | Default |
---|---|---|
str | The text to convert. | required |
markdown.Markdown | A Markdown instance. | required |
Returns:
Type | Name | Description |
---|---|---|
markupsafe.Markup | text | Converted markup. |
line_length
¤int
60
Maximum line length when formatting code/signatures.
When separating signatures from headings with the separate_signature
option, the Python handler will try to format the signatures using a formatter and the specified line length.
The handler will automatically try to format using :
If a formatter is not found, the handler issues an INFO log once.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ separate_signature: true
+ line_length: 60
+
::: path.to.module
+ options:
+ separate_signature: true
+ line_length: 80
+
Preview
long_function_name(
+ long_parameter_1="hello",
+ long_parameter_2="world",
+)
long_function_name(long_parameter_1="hello", long_parameter_2="world")
modernize_annotations
¤Sponsors only — Insiders 1.8.0 — This feature also requires Griffe Insiders to be installed.
bool
False
Modernize annotations with latest features and PEPs of the Python language.
The Python language keeps evolving, and often library developers must continue to support a few minor versions of Python. Therefore they cannot use some features that were introduced in the latest versions.
Yet this doesn't mean they can't enjoy latest features in their docs: Griffe allows to "modernize" expressions, for example by replacing typing.Union
with PEP 604 type unions |
. Thanks to this, mkdocstrings' Python handler can automatically transform type annotations into their modern equivalent. This improves consistency in your docs, and shows users how to use your code with the latest features of the language.
Modernizations applied:
typing.Dict[A, B]
becomes dict[A, B]
typing.List[A]
becomes list[A]
typing.Set[A]
becomes set[A]
typing.Tuple[A]
becomes tuple[A]
typing.Union[A, B]
becomes A | B
typing.Optional[A]
becomes A | None
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ modernize_annotations: true
+
::: path.to.object
+ options:
+ modernize_annotations: false
+
Preview
from typing import Optional, Union, List
+
+example: Optional[Union[int, List[int]]] = None
+
show_signature
¤bool
True
Show methods and functions signatures.
Without it, just the function/method name is rendered.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_signature: true
+
::: path.to.module
+ options:
+ show_signature: false
+
Preview
function(param1, param2=None)
Function docstring.
function
Function docstring.
show_signature_annotations
¤bool
False
Show the type annotations in methods and functions signatures.
Since the heading can become quite long when annotations are rendered, it is usually best to separate the signature from the heading.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ separate_signature: true
+ show_signature_annotations: true
+
::: path.to.module
+ options:
+ separate_signature: true
+ show_signature_annotations: false
+
Preview
function(
+ param1: list[int | float],
+ param2: bool | None = None,
+) -> float
+
Function docstring.
function(param1, param2=None)
+
Function docstring.
separate_signature
¤bool
False
Whether to put the whole signature in a code block below the heading.
When separating signatures from headings, the Python handler will try to format the signatures using a formatter and the specified line length.
The handler will automatically try to format using :
If a formatter is not found, the handler issues an INFO log once.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ separate_signature: false
+
::: path.to.module
+ options:
+ separate_signature: true
+
Preview
function(param1, param2=None)
+
Function docstring.
function(param1, param2=None)
Function docstring.
show_overloads
¤Whether to render function / method overloads.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ show_overloads: true
+
::: path.to.module
+ options:
+ show_overloads: false
+
Preview
@overload
+function(param1: int): ...
+
+@overload
+function(param1: str): ...
+
+function(param1: str | int)
+
function(param1: str | int)
+
signature_crossrefs
¤Whether to render cross-references for type annotations in signatures.
When signatures are separated from headings with the separate_signature
option and type annotations are shown with the show_signature_annotations
option, this option will render a cross-reference (link) for each type annotation in the signature.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ separate_signature: true
+ show_signature_annotations: true
+ signature_crossrefs: false
+
::: path.to.module
+ options:
+ separate_signature: true
+ show_signature_annotations: true
+ signature_crossrefs: true
+
Preview
unwrap_annotated
¤bool
False
Whether to unwrap Annotated
types to show only the type without the annotations.
For example, unwrapping Annotated[int, Gt(10)]
will render int
.
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ unwrap_annotated: false
+
::: path.to.module
+ options:
+ unwrap_annotated: true
+
It is possible to customize the output of the generated documentation with CSS and/or by overriding templates.
Our templates add CSS classes to many HTML elements to make it possible for users to customize the resulting look and feel.
To add CSS rules and style mkdocstrings' output, put them in a CSS file in your docs folder, for example in docs/css/mkdocstrings.css
, and reference this file in MkDocs' extra_css
configuration option:
extra_css:
+- css/mkdocstrings.css
+
Example:
.doc-section-title {
+ font-weight: bold;
+}
+
The following CSS classes are used in the generated HTML:
doc
: on all the following elementsdoc-children
: on div
s containing the children of an objectdoc-object
: on div
s containing an objectdoc-attribute
: on div
s containing an attributedoc-class
: on div
s containing a classdoc-function
: on div
s containing a functiondoc-module
: on div
s containing a moduledoc-heading
: on objects headingsdoc-object-name
: on span
s wrapping objects names/paths in the headingdoc-KIND-name
: as above, specific to the kind of object (module, class, function, attribute)doc-contents
: on div
s wrapping the docstring then the children (if any)first
: same, but only on the root object's contents div
doc-labels
: on span
s wrapping the object's labelsdoc-label
: on small
elements containing a labeldoc-label-LABEL
: same, where LABEL
is replaced by the actual labeldoc-section-title
: on section titles (depend on the selected style for section rendering)doc-section-item
: on section items (depend on the selected style for section rendering)doc-md-description
: on div
s containing HTML descriptions converted from Markdown docstringsdoc-symbol
: on code
tags of symbol typesdoc-symbol-heading
: on symbol types in headingsdoc-symbol-toc
: on symbol types in the ToCdoc-symbol-KIND
: specific to the kind of object (module
, class
, function
, method
, attribute
)Example with colorful labels
.doc-label { border-radius: 15px; padding: 2px 8px; font-weight: bold; }
+.doc-label-special { background-color: #3330E4; color: white; }
+.doc-label-private { background-color: #F637EC; color: white; }
+.doc-label-property { background-color: #FBB454; color: black; }
+.doc-label-read-only { background-color: #FAEA48; color: black; }
+
special private property read-only
You can customize the colors of the symbol types (see show_symbol_type_heading
and show_symbol_type_toc
) by overriding the values of our CSS variables, for example:
[data-md-color-scheme="default"] {
+ --doc-symbol-parameter-fg-color: #df50af;
+ --doc-symbol-attribute-fg-color: #0079ff;
+ --doc-symbol-function-fg-color: #00dfa2;
+ --doc-symbol-method-fg-color: #00dfa2;
+ --doc-symbol-class-fg-color: #d1b619;
+ --doc-symbol-module-fg-color: #ff0060;
+
+ --doc-symbol-parameter-bg-color: #df50af1a;
+ --doc-symbol-attribute-bg-color: #0079ff1a;
+ --doc-symbol-function-bg-color: #00dfa21a;
+ --doc-symbol-method-bg-color: #00dfa21a;
+ --doc-symbol-class-bg-color: #d1b6191a;
+ --doc-symbol-module-bg-color: #ff00601a;
+}
+
+[data-md-color-scheme="slate"] {
+ --doc-symbol-parameter-fg-color: #ffa8cc;
+ --doc-symbol-attribute-fg-color: #963fb8;
+ --doc-symbol-function-fg-color: #6d67e4;
+ --doc-symbol-method-fg-color: #6d67e4;
+ --doc-symbol-class-fg-color: #46c2cb;
+ --doc-symbol-module-fg-color: #f2f7a1;
+
+ --doc-symbol-parameter-bg-color: #ffa8cc1a;
+ --doc-symbol-attribute-bg-color: #963fb81a;
+ --doc-symbol-function-bg-color: #6d67e41a;
+ --doc-symbol-method-bg-color: #6d67e41a;
+ --doc-symbol-class-bg-color: #46c2cb1a;
+ --doc-symbol-module-bg-color: #f2f7a11a;
+}
+
The [data-md-color-scheme="*"]
selectors work with the Material for MkDocs theme. If you are using another theme, adapt the selectors to this theme if it supports light and dark themes, otherwise just override the variables at root level:
:root {
+ --doc-symbol-parameter-fg-color: #df50af;
+ --doc-symbol-attribute-fg-color: #0079ff;
+ --doc-symbol-function-fg-color: #00dfa2;
+ --doc-symbol-method-fg-color: #00dfa2;
+ --doc-symbol-class-fg-color: #d1b619;
+ --doc-symbol-module-fg-color: #ff0060;
+
+ --doc-symbol-parameter-bg-color: #df50af1a;
+ --doc-symbol-attribute-bg-color: #0079ff1a;
+ --doc-symbol-function-bg-color: #00dfa21a;
+ --doc-symbol-method-bg-color: #00dfa21a;
+ --doc-symbol-class-bg-color: #d1b6191a;
+ --doc-symbol-module-bg-color: #ff00601a;
+}
+
Preview
Try cycling through the themes to see the colors for each theme:
You can also change the actual symbol names. For example, to use single letters instead of truncated types:
.doc-symbol-parameter::after {
+ content: "P";
+}
+
+.doc-symbol-attribute::after {
+ content: "A";
+}
+
+.doc-symbol-function::after {
+ content: "F";
+}
+
+.doc-symbol-method::after {
+ content: "M";
+}
+
+.doc-symbol-class::after {
+ content: "C";
+}
+
+.doc-symbol-module::after {
+ content: "M";
+}
+
Preview
Templates are organized into the following tree:
📁 theme/
+├── attribute.html
+├── attribute.html.jinja
+├── backlinks.html.jinja
+├── children.html
+├── children.html.jinja
+├── class.html
+├── class.html.jinja
+├── 📁 docstring/
+│ ├── admonition.html
+│ ├── admonition.html.jinja
+│ ├── attributes.html
+│ ├── attributes.html.jinja
+│ ├── classes.html
+│ ├── classes.html.jinja
+│ ├── examples.html
+│ ├── examples.html.jinja
+│ ├── functions.html
+│ ├── functions.html.jinja
+│ ├── modules.html
+│ ├── modules.html.jinja
+│ ├── other_parameters.html
+│ ├── other_parameters.html.jinja
+│ ├── parameters.html
+│ ├── parameters.html.jinja
+│ ├── raises.html
+│ ├── raises.html.jinja
+│ ├── receives.html
+│ ├── receives.html.jinja
+│ ├── returns.html
+│ ├── returns.html.jinja
+│ ├── warns.html
+│ ├── warns.html.jinja
+│ ├── yields.html
+│ └── yields.html.jinja
+├── docstring.html
+├── docstring.html.jinja
+├── expression.html
+├── expression.html.jinja
+├── function.html
+├── function.html.jinja
+├── labels.html
+├── labels.html.jinja
+├── language.html
+├── language.html.jinja
+├── 📁 languages/
+│ ├── en.html
+│ ├── en.html.jinja
+│ ├── ja.html
+│ ├── ja.html.jinja
+│ ├── zh.html
+│ └── zh.html.jinja
+├── module.html
+├── module.html.jinja
+├── signature.html
+├── signature.html.jinja
+├── 📁 summary/
+│ ├── attributes.html
+│ ├── attributes.html.jinja
+│ ├── classes.html
+│ ├── classes.html.jinja
+│ ├── functions.html
+│ ├── functions.html.jinja
+│ ├── modules.html
+│ └── modules.html.jinja
+├── summary.html
+└── summary.html.jinja
+
See them in the repository. See the general mkdocstrings documentation to learn how to override them: https://mkdocstrings.github.io/theming/#templates.
Each one of these templates extends a base version in theme/_base
. Example:
{% extends "_base/class.html" %}
+
Some of these templates define Jinja blocks. allowing to customize only parts of a template without having to fully copy-paste it into your project:
{% extends "_base/class.html" %}
+{% block contents %}
+ {{ block.super }}
+ Additional contents
+{% endblock contents %}
+
Only the templates for the Material for MkDocs provide Jinja blocks. The following tables show the block names, description, and the Jinja context available in their scope.
module.html
¤heading
: The module heading.labels
: The module labels.contents
: The module contents: docstring and children blocks.docstring
: The module docstring.summary
: The automatic summaries of members.children
: The module children.Available context:
config
: The handler configuration (dictionary).module
: The Module instance.class.html
¤heading
: The class heading.labels
: The class labels.signature
: The class signature.contents
: The class contents: bases, docstring, source and children blocks.bases
: The class bases.docstring
: The class docstring.summary
: The automatic summaries of members.source
: The class source code.children
: The class children.Available context:
config
: The handler configuration (dictionary).class
: The Class instance.function.html
¤heading
: The function heading.labels
: The function labels.signature
: The function signature.contents
: The function contents: docstring and source blocks.docstring
: The function docstring.source
: The function source code.Available context:
config
: The handler configuration (dictionary).function
: The Function instance.attribute.html
¤heading
: The attribute heading.labels
: The attribute labels.signature
: The attribute signature.contents
: The attribute contents: docstring block.docstring
: The attribute docstring.Available context:
config
: The handler configuration (dictionary).attribute
: The Attribute instance.In docstring/attributes.html
, docstring/functions.html
, docstring/classes.html
, docstring/modules.html
, docstring/other_parameters.html
, docstring/parameters.html
, docstring/raises.html
, docstring/receives.html
, docstring/returns.html
, docstring/warns.html
, and docstring/yields.html
:
table_style
: The section as a table.list_style
: The section as a list.spacy_style
: The section as a Spacy table.Available context:
section
: The DocstringSection instance (see DocstringSection*
subclasses).You can customize the colors in syntax highlighted signatures. If you are using the Material for MkDocs theme, here are some customization examples:
/* Fancier color for operators such as * and |. */
+.doc-signature .o {
+ color: var(--md-code-hl-special-color);
+}
+
+/* Fancier color for constants such as None, True, and False. */
+.doc-signature .kc {
+ color: var(--md-code-hl-constant-color);
+}
+
+/* Fancier color for built-in types (only useful when cross-references are used). */
+.doc-signature .n > a[href^="https://docs.python.org/"][href*="/functions.html#"],
+.doc-signature .n > a[href^="https://docs.python.org/"][href*="/stdtypes.html#"] {
+ color: var(--md-code-hl-constant-color);
+}
+
For other themes, use their own CSS variables, or use plain colors such as violet
or #2987f2
.
Here are some CSS rules for the Material for MkDocs theme:
/* Indentation. */
+div.doc-contents:not(.first) {
+ padding-left: 25px;
+ border-left: .05rem solid var(--md-typeset-table-color);
+}
+
+/* Mark external links as such. */
+a.external::after,
+a.autorefs-external::after {
+ /* https://primer.style/octicons/arrow-up-right-24 */
+ mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.25 15.5a.75.75 0 00.75-.75v-9a.75.75 0 00-.75-.75h-9a.75.75 0 000 1.5h7.19L6.22 16.72a.75.75 0 101.06 1.06L17.5 7.56v7.19c0 .414.336.75.75.75z"></path></svg>');
+ -webkit-mask-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.25 15.5a.75.75 0 00.75-.75v-9a.75.75 0 00-.75-.75h-9a.75.75 0 000 1.5h7.19L6.22 16.72a.75.75 0 101.06 1.06L17.5 7.56v7.19c0 .414.336.75.75.75z"></path></svg>');
+ content: ' ';
+
+ display: inline-block;
+ vertical-align: middle;
+ position: relative;
+
+ height: 1em;
+ width: 1em;
+ background-color: currentColor;
+}
+
+a.external:hover::after,
+a.autorefs-external:hover::after {
+ background-color: var(--md-accent-fg-color);
+}
+
+/* Tree-like output for backlinks. */
+.doc-backlink-list {
+ --tree-clr: var(--md-default-fg-color);
+ --tree-font-size: 1rem;
+ --tree-item-height: 1;
+ --tree-offset: 1rem;
+ --tree-thickness: 1px;
+ --tree-style: solid;
+ display: grid;
+ list-style: none !important;
+}
+
+.doc-backlink-list li > span:first-child {
+ text-indent: .3rem;
+}
+.doc-backlink-list li {
+ padding-inline-start: var(--tree-offset);
+ border-left: var(--tree-thickness) var(--tree-style) var(--tree-clr);
+ position: relative;
+ margin-left: 0 !important;
+
+ &:last-child {
+ border-color: transparent;
+ }
+ &::before{
+ content: '';
+ position: absolute;
+ top: calc(var(--tree-item-height) / 2 * -1 * var(--tree-font-size) + var(--tree-thickness));
+ left: calc(var(--tree-thickness) * -1);
+ width: calc(var(--tree-offset) + var(--tree-thickness) * 2);
+ height: calc(var(--tree-item-height) * var(--tree-font-size));
+ border-left: var(--tree-thickness) var(--tree-style) var(--tree-clr);
+ border-bottom: var(--tree-thickness) var(--tree-style) var(--tree-clr);
+ }
+ &::after{
+ content: '';
+ position: absolute;
+ border-radius: 50%;
+ background-color: var(--tree-clr);
+ top: calc(var(--tree-item-height) / 2 * 1rem);
+ left: var(--tree-offset) ;
+ translate: calc(var(--tree-thickness) * -1) calc(var(--tree-thickness) * -1);
+ }
+}
+
Here are some CSS rules for the built-in ReadTheDocs theme:
/* Indentation. */
+div.doc-contents:not(.first) {
+ padding-left: 25px;
+ border-left: .05rem solid rgba(200, 200, 200, 0.2);
+}
+
With Google-style docstrings, any section that is not recognized will be transformed into its admonition equivalent. For example:
"""
+Note:
+ It looks like a section, but it will be rendered as an admonition.
+
+Tip: You can even choose a title.
+ This admonition has a custom title!
+"""
+
Note
It looks like a section, but it will be rendered as an admonition.
You can even choose a title.
This admonition has a custom title!
See Napoleon's documentation. See the supported docstring sections on Griffe's documentation.
Note
As Numpy-style is partially supported by the underlying parser, you may experience problems in the building process if your docstring has a Methods
section in the class docstring (see #366).
See Numpydoc's documentation. See the supported docstring sections on Griffe's documentation.
See Sphinx's documentation. See the supported docstring sections on Griffe's documentation.
The Python handler supports extensions through mkdocstrings' handler extensions.
Specifically, additional templates can be added to the handler, and Griffe extensions can instruct the handler to use a particular template for a particular object by setting a value in the Griffe object's extra
dictionary:
obj = ... # get a reference to a Griffe object
+if "mkdocstrings" not in obj.extra:
+ obj.extra["mkdocstrings"] = {}
+obj.extra["mkdocstrings"]["template"] = "template_name.html"
+
This is the documentation for the NEW Python handler.
To read the documentation for the LEGACY handler, go to the legacy handler documentation.
You can install this handler as a mkdocstrings extra:
# PEP 621 dependencies declaration
+# adapt to your dependencies manager
+[project]
+dependencies = [
+ "mkdocstrings[python]>=0.18",
+]
+
You can also explicitly depend on the handler:
# PEP 621 dependencies declaration
+# adapt to your dependencies manager
+[project]
+dependencies = [
+ "mkdocstrings-python",
+]
+
The Python handler is the default mkdocstrings handler. You can change the default handler, or explicitely set the Python handler as default by defining the default_handler
configuration option of mkdocstrings
in mkdocs.yml
:
plugins:
+- mkdocstrings:
+ default_handler: python
+
With the Python handler installed and configured as default handler, you can inject documentation for a module, class, function, or any other Python object with mkdocstrings' autodoc syntax, in your Markdown pages:
::: path.to.object
+
If another handler was defined as default handler, you can explicitely ask for the Python handler to be used when injecting documentation with the handler
option:
::: path.to.object
+ handler: python
+
When installed, the Python handler becomes the default mkdocstrings handler. You can configure it in mkdocs.yml
:
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ ... # the Python handler configuration
+
Some options are global only, and go directly under the handler's name.
inventories
¤This option is used to load Sphinx-compatible objects inventories from other documentation sites. For example, you can load the standard library objects inventory like this:
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ inventories:
+ - https://docs.python.org/3/objects.inv
+
When loading an inventory, you enable automatic cross-references to other documentation sites like the standard library docs or any third-party package docs. Typically, you want to load the inventories of your project's dependencies, at least those that are used in the public API.
See mkdocstrings' documentation on inventories for more details.
Additionally, the Python handler accepts a domains
option in the inventory options, which allows to select the inventory domains to load. By default the Python handler only selects the py
domain (for Python objects). You might find useful to also enable the std
domain:
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ inventories:
+ - url: https://docs.python-requests.org/en/master/objects.inv
+ domains: [std, py]
+
load_external_modules
¤This option allows resolving aliases (imports) to any external module. Modules are considered external when they are not part of the package your are injecting documentation for. Setting this option to True
will tell the handler to resolve aliases recursively when they are made public through the __all__
variable. By default, the handler will only resolve aliases when they point at a private sibling of the source package, for example aliases going from ast
to _ast
. Set load_external_modules
to False
to prevent even that.
Use with caution
This can load a lot of modules through Griffe, slowing down your build or triggering errors that Griffe does not yet handle. We recommend using the preload_modules
option instead, which acts as an include-list rather than as include-all.
Example:
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ load_external_modules: true
+
locale
¤The locale to use when translating template strings. The translation system is not fully ready yet, so we don't recommend setting the option for now.
paths
¤This option is used to provide filesystem paths in which to search for Python modules. Non-absolute paths are computed as relative to MkDocs configuration file. Example:
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ paths: [src] # search packages in the src folder
+
More details at Finding modules.
The other options can be used both globally and locally, under the options
key. For example, globally:
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ options:
+ do_something: true
+
...and locally, overriding the global configuration:
::: package.module.class
+ options:
+ do_something: false
+
These options affect how the documentation is collected from sources and rendered. See the following tables summarizing the options, and get more details for each option in the following pages:
There are multiple ways to tell the handler where to find your packages/modules.
The recommended method is to use the paths
option, as it's the only one that works with the -f
option of MkDocs, allowing to build the documentation from any location on the file system. Indeed, the paths provided with the paths
option are computed as relative to the configuration file (mkdocs.yml), so that the current working directory has no impact on the build process: you can build the docs from any location on your filesystem.
paths
option¤This is the recommended method.
mkdocs.yml in root, package in root
📁 root/
+├── mkdocs.yml
+└── 📁 package/
+
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ paths: [.] # actually not needed, default
+
mkdocs.yml in root, package in subfolder
📁 root/
+├── mkdocs.yml
+└── 📁 src/
+ └── 📁 package/
+
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ paths: [src]
+
mkdocs.yml in subfolder, package in root
📁 root/
+├── 📁 docs/
+│ └── mkdocs.yml
+└── 📁 package/
+
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ paths: [..]
+
mkdocs.yml in subfolder, package in subfolder
📁 root/
+├── 📁 docs/
+│ └── mkdocs.yml
+└── 📁 src/
+ └── 📁 package/
+
plugins:
+- mkdocstrings:
+ handlers:
+ python:
+ paths: [../src]
+
Except for case 1, which is supported by default, we strongly recommend setting the path to your packages using this option, even if it works without it (for example because your project manager automatically adds src
to PYTHONPATH), to make sure anyone can build your docs from any location on their filesystem.
This method has limitations.
This method might work for you, with your current setup, but not for others trying your build your docs with their own setup/environment. We recommend using the paths
method instead.
You can take advantage of the usual Python loading mechanisms. In Bash and other shells, you can run your command like this (note the prepended PYTHONPATH=...
):
mkdocs.yml in root, package in root
📁 root/
+├── mkdocs.yml
+└── 📁 package/
+
PYTHONPATH=. mkdocs build # actually not needed, default
+
mkdocs.yml in root, package in subfolder
📁 root/
+├── mkdocs.yml
+└── 📁 src/
+ └── 📁 package/
+
PYTHONPATH=src mkdocs build
+
mkdocs.yml in subfolder, package in root
📁 root/
+├── 📁 docs/
+│ └── mkdocs.yml
+└── 📁 package/
+
PYTHONPATH=. mkdocs build -f docs/mkdocs.yml
+
mkdocs.yml in subfolder, package in subfolder
📁 root/
+├── 📁 docs/
+│ └── mkdocs.yml
+└── 📁 src/
+ └── 📁 package/
+
PYTHONPATH=src mkdocs build -f docs/mkdocs.yml
+
This method has limitations.
This method might work for you, with your current setup, but not for others trying your build your docs with their own setup/environment. We recommend using the paths
method instead.
Install your package in the current environment, and run MkDocs:
. venv/bin/activate
+pip install -e .
+mkdocs build
+
pdm install
+pdm run mkdocs build
+
poetry install
+poetry run mkdocs build
+