mkdocstrings-python 1.11.0__py3-none-any.whl → 1.12.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mkdocstrings_handlers/python/handler.py +15 -3
- mkdocstrings_handlers/python/rendering.py +93 -68
- mkdocstrings_handlers/python/templates/material/_base/class.html.jinja +12 -2
- mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja +43 -3
- mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja +31 -3
- mkdocstrings_handlers/python/templates/material/_base/function.html.jinja +11 -1
- mkdocstrings_handlers/python/templates/material/_base/module.html.jinja +8 -0
- mkdocstrings_handlers/python/templates/material/_base/signature.html.jinja +43 -4
- mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html.jinja +13 -0
- mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja +13 -0
- mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja +13 -0
- mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja +13 -0
- mkdocstrings_handlers/python/templates/material/_base/summary.html.jinja +18 -0
- mkdocstrings_handlers/python/templates/material/style.css +25 -1
- mkdocstrings_handlers/python/templates/readthedocs/_base/language.html.jinja +5 -5
- {mkdocstrings_python-1.11.0.dist-info → mkdocstrings_python-1.12.0.dist-info}/METADATA +4 -3
- {mkdocstrings_python-1.11.0.dist-info → mkdocstrings_python-1.12.0.dist-info}/RECORD +20 -19
- {mkdocstrings_python-1.11.0.dist-info → mkdocstrings_python-1.12.0.dist-info}/WHEEL +1 -1
- mkdocstrings_python-1.12.0.dist-info/entry_points.txt +4 -0
- {mkdocstrings_python-1.11.0.dist-info → mkdocstrings_python-1.12.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -10,7 +10,7 @@ import sys
|
|
|
10
10
|
from collections import ChainMap
|
|
11
11
|
from contextlib import suppress
|
|
12
12
|
from pathlib import Path
|
|
13
|
-
from typing import TYPE_CHECKING, Any, BinaryIO, ClassVar
|
|
13
|
+
from typing import TYPE_CHECKING, Any, BinaryIO, ClassVar
|
|
14
14
|
|
|
15
15
|
from griffe import (
|
|
16
16
|
AliasResolutionError,
|
|
@@ -29,6 +29,8 @@ from mkdocstrings.loggers import get_logger
|
|
|
29
29
|
from mkdocstrings_handlers.python import rendering
|
|
30
30
|
|
|
31
31
|
if TYPE_CHECKING:
|
|
32
|
+
from collections.abc import Iterator, Mapping, Sequence
|
|
33
|
+
|
|
32
34
|
from markdown import Markdown
|
|
33
35
|
|
|
34
36
|
|
|
@@ -85,6 +87,8 @@ class PythonHandler(BaseHandler):
|
|
|
85
87
|
"separate_signature": False,
|
|
86
88
|
"line_length": 60,
|
|
87
89
|
"merge_init_into_class": False,
|
|
90
|
+
"relative_crossrefs": False,
|
|
91
|
+
"scoped_crossrefs": False,
|
|
88
92
|
"show_docstring_attributes": True,
|
|
89
93
|
"show_docstring_functions": True,
|
|
90
94
|
"show_docstring_classes": True,
|
|
@@ -100,6 +104,7 @@ class PythonHandler(BaseHandler):
|
|
|
100
104
|
"show_docstring_yields": True,
|
|
101
105
|
"show_source": True,
|
|
102
106
|
"show_bases": True,
|
|
107
|
+
"show_inheritance_diagram": False,
|
|
103
108
|
"show_submodules": False,
|
|
104
109
|
"group_by_category": True,
|
|
105
110
|
"heading_level": 2,
|
|
@@ -114,6 +119,8 @@ class PythonHandler(BaseHandler):
|
|
|
114
119
|
"summary": False,
|
|
115
120
|
"show_labels": True,
|
|
116
121
|
"unwrap_annotated": False,
|
|
122
|
+
"parameter_headings": False,
|
|
123
|
+
"modernize_annotations": False,
|
|
117
124
|
}
|
|
118
125
|
"""Default handler configuration.
|
|
119
126
|
|
|
@@ -121,6 +128,7 @@ class PythonHandler(BaseHandler):
|
|
|
121
128
|
find_stubs_package (bool): Whether to load stubs package (package-stubs) when extracting docstrings. Default `False`.
|
|
122
129
|
allow_inspection (bool): Whether to allow inspecting modules when visiting them is not possible. Default: `True`.
|
|
123
130
|
show_bases (bool): Show the base classes of a class. Default: `True`.
|
|
131
|
+
show_inheritance_diagram (bool): Show the inheritance diagram of a class using Mermaid. Default: `False`.
|
|
124
132
|
show_source (bool): Show the source code of this object. Default: `True`.
|
|
125
133
|
preload_modules (list[str] | None): Pre-load modules that are
|
|
126
134
|
not specified directly in autodoc instructions (`::: identifier`).
|
|
@@ -134,6 +142,7 @@ class PythonHandler(BaseHandler):
|
|
|
134
142
|
|
|
135
143
|
Attributes: Headings options:
|
|
136
144
|
heading_level (int): The initial heading level to use. Default: `2`.
|
|
145
|
+
parameter_headings (bool): Whether to render headings for parameters (therefore showing parameters in the ToC). Default: `False`.
|
|
137
146
|
show_root_heading (bool): Show the heading of the object at the root of the documentation tree
|
|
138
147
|
(i.e. the object referenced by the identifier after `:::`). Default: `False`.
|
|
139
148
|
show_root_toc_entry (bool): If the root heading is not shown, at least add a ToC entry for it. Default: `True`.
|
|
@@ -168,6 +177,8 @@ class PythonHandler(BaseHandler):
|
|
|
168
177
|
docstring_options (dict): The options for the docstring parser. See [docstring parsers](https://mkdocstrings.github.io/griffe/reference/docstrings/) and their options in Griffe docs.
|
|
169
178
|
docstring_section_style (str): The style used to render docstring sections. Options: `table`, `list`, `spacy`. Default: `"table"`.
|
|
170
179
|
merge_init_into_class (bool): Whether to merge the `__init__` method into the class' signature and docstring. Default: `False`.
|
|
180
|
+
relative_crossrefs (bool): Whether to enable the relative crossref syntax. Default: `False`.
|
|
181
|
+
scoped_crossrefs (bool): Whether to enable the scoped crossref ability. Default: `False`.
|
|
171
182
|
show_if_no_docstring (bool): Show the object heading even if it has no docstring or children with docstrings. Default: `False`.
|
|
172
183
|
show_docstring_attributes (bool): Whether to display the "Attributes" section in the object's docstring. Default: `True`.
|
|
173
184
|
show_docstring_functions (bool): Whether to display the "Functions" or "Methods" sections in the object's docstring. Default: `True`.
|
|
@@ -192,6 +203,7 @@ class PythonHandler(BaseHandler):
|
|
|
192
203
|
separate_signature (bool): Whether to put the whole signature in a code block below the heading.
|
|
193
204
|
If Black is installed, the signature is also formatted using it. Default: `False`.
|
|
194
205
|
unwrap_annotated (bool): Whether to unwrap `Annotated` types to show only the type without the annotations. Default: `False`.
|
|
206
|
+
modernize_annotations (bool): Whether to modernize annotations, for example `Optional[str]` into `str | None`. Default: `False`.
|
|
195
207
|
"""
|
|
196
208
|
|
|
197
209
|
def __init__(
|
|
@@ -266,7 +278,7 @@ class PythonHandler(BaseHandler):
|
|
|
266
278
|
) -> Iterator[tuple[str, str]]:
|
|
267
279
|
"""Yield items and their URLs from an inventory file streamed from `in_file`.
|
|
268
280
|
|
|
269
|
-
This implements mkdocstrings' `load_inventory` "protocol" (see [`mkdocstrings.plugin`][
|
|
281
|
+
This implements mkdocstrings' `load_inventory` "protocol" (see [`mkdocstrings.plugin`][]).
|
|
270
282
|
|
|
271
283
|
Arguments:
|
|
272
284
|
in_file: The binary file-like object to read the inventory from.
|
|
@@ -420,7 +432,7 @@ class PythonHandler(BaseHandler):
|
|
|
420
432
|
self.env.filters["format_signature"] = rendering.do_format_signature
|
|
421
433
|
self.env.filters["format_attribute"] = rendering.do_format_attribute
|
|
422
434
|
self.env.filters["filter_objects"] = rendering.do_filter_objects
|
|
423
|
-
self.env.filters["stash_crossref"] =
|
|
435
|
+
self.env.filters["stash_crossref"] = rendering.do_stash_crossref
|
|
424
436
|
self.env.filters["get_template"] = rendering.do_get_template
|
|
425
437
|
self.env.filters["as_attributes_section"] = rendering.do_as_attributes_section
|
|
426
438
|
self.env.filters["as_functions_section"] = rendering.do_as_functions_section
|
|
@@ -8,12 +8,17 @@ import re
|
|
|
8
8
|
import string
|
|
9
9
|
import sys
|
|
10
10
|
import warnings
|
|
11
|
-
from functools import lru_cache
|
|
11
|
+
from functools import lru_cache
|
|
12
12
|
from pathlib import Path
|
|
13
|
-
from
|
|
13
|
+
from re import Match, Pattern
|
|
14
|
+
from typing import TYPE_CHECKING, Any, Callable, ClassVar
|
|
14
15
|
|
|
15
16
|
from griffe import (
|
|
16
17
|
Alias,
|
|
18
|
+
DocstringAttribute,
|
|
19
|
+
DocstringClass,
|
|
20
|
+
DocstringFunction,
|
|
21
|
+
DocstringModule,
|
|
17
22
|
DocstringSectionAttributes,
|
|
18
23
|
DocstringSectionClasses,
|
|
19
24
|
DocstringSectionFunctions,
|
|
@@ -26,6 +31,8 @@ from mkdocs_autorefs.references import AutorefsHookInterface
|
|
|
26
31
|
from mkdocstrings.loggers import get_logger
|
|
27
32
|
|
|
28
33
|
if TYPE_CHECKING:
|
|
34
|
+
from collections.abc import Sequence
|
|
35
|
+
|
|
29
36
|
from griffe import Attribute, Class, Function, Module
|
|
30
37
|
from jinja2 import Environment, Template
|
|
31
38
|
from jinja2.runtime import Context
|
|
@@ -80,24 +87,26 @@ def do_format_code(code: str, line_length: int) -> str:
|
|
|
80
87
|
return formatter(code, line_length)
|
|
81
88
|
|
|
82
89
|
|
|
83
|
-
|
|
84
|
-
|
|
90
|
+
class _StashCrossRefFilter:
|
|
91
|
+
stash: ClassVar[dict[str, str]] = {}
|
|
85
92
|
|
|
86
|
-
|
|
87
|
-
|
|
93
|
+
@staticmethod
|
|
94
|
+
def _gen_key(length: int) -> str:
|
|
95
|
+
return "_" + "".join(random.choice(string.ascii_letters + string.digits) for _ in range(max(1, length - 1))) # noqa: S311
|
|
88
96
|
|
|
97
|
+
def _gen_stash_key(self, length: int) -> str:
|
|
98
|
+
key = self._gen_key(length)
|
|
99
|
+
while key in self.stash:
|
|
100
|
+
key = self._gen_key(length)
|
|
101
|
+
return key
|
|
89
102
|
|
|
90
|
-
def
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
key
|
|
94
|
-
return key
|
|
103
|
+
def __call__(self, crossref: str, *, length: int) -> str:
|
|
104
|
+
key = self._gen_stash_key(length)
|
|
105
|
+
self.stash[key] = crossref
|
|
106
|
+
return key
|
|
95
107
|
|
|
96
108
|
|
|
97
|
-
|
|
98
|
-
key = _gen_stash_key(stash, length)
|
|
99
|
-
stash[key] = crossref
|
|
100
|
-
return key
|
|
109
|
+
do_stash_crossref = _StashCrossRefFilter()
|
|
101
110
|
|
|
102
111
|
|
|
103
112
|
def _format_signature(name: Markup, signature: str, line_length: int) -> str:
|
|
@@ -126,7 +135,7 @@ def do_format_signature(
|
|
|
126
135
|
line_length: int,
|
|
127
136
|
*,
|
|
128
137
|
annotations: bool | None = None,
|
|
129
|
-
crossrefs: bool = False,
|
|
138
|
+
crossrefs: bool = False, # noqa: ARG001
|
|
130
139
|
) -> str:
|
|
131
140
|
"""Format a signature using Black.
|
|
132
141
|
|
|
@@ -144,12 +153,6 @@ def do_format_signature(
|
|
|
144
153
|
env = context.environment
|
|
145
154
|
# TODO: Stop using `do_get_template` when `*.html` templates are removed.
|
|
146
155
|
template = env.get_template(do_get_template(env, "signature"))
|
|
147
|
-
config_annotations = context.parent["config"]["show_signature_annotations"]
|
|
148
|
-
old_stash_ref_filter = env.filters["stash_crossref"]
|
|
149
|
-
|
|
150
|
-
stash: dict[str, str] = {}
|
|
151
|
-
if (annotations or config_annotations) and crossrefs:
|
|
152
|
-
env.filters["stash_crossref"] = partial(_stash_crossref, stash)
|
|
153
156
|
|
|
154
157
|
if annotations is None:
|
|
155
158
|
new_context = context.parent
|
|
@@ -157,11 +160,8 @@ def do_format_signature(
|
|
|
157
160
|
new_context = dict(context.parent)
|
|
158
161
|
new_context["config"] = dict(new_context["config"])
|
|
159
162
|
new_context["config"]["show_signature_annotations"] = annotations
|
|
160
|
-
try:
|
|
161
|
-
signature = template.render(new_context, function=function, signature=True)
|
|
162
|
-
finally:
|
|
163
|
-
env.filters["stash_crossref"] = old_stash_ref_filter
|
|
164
163
|
|
|
164
|
+
signature = template.render(new_context, function=function, signature=True)
|
|
165
165
|
signature = _format_signature(callable_path, signature, line_length)
|
|
166
166
|
signature = str(
|
|
167
167
|
env.filters["highlight"](
|
|
@@ -181,9 +181,10 @@ def do_format_signature(
|
|
|
181
181
|
if signature.find('class="nf"') == -1:
|
|
182
182
|
signature = signature.replace('class="n"', 'class="nf"', 1)
|
|
183
183
|
|
|
184
|
-
if stash:
|
|
184
|
+
if stash := env.filters["stash_crossref"].stash:
|
|
185
185
|
for key, value in stash.items():
|
|
186
186
|
signature = re.sub(rf"\b{key}\b", value, signature)
|
|
187
|
+
stash.clear()
|
|
187
188
|
|
|
188
189
|
return signature
|
|
189
190
|
|
|
@@ -195,7 +196,7 @@ def do_format_attribute(
|
|
|
195
196
|
attribute: Attribute,
|
|
196
197
|
line_length: int,
|
|
197
198
|
*,
|
|
198
|
-
crossrefs: bool = False,
|
|
199
|
+
crossrefs: bool = False, # noqa: ARG001
|
|
199
200
|
) -> str:
|
|
200
201
|
"""Format an attribute using Black.
|
|
201
202
|
|
|
@@ -213,23 +214,14 @@ def do_format_attribute(
|
|
|
213
214
|
# TODO: Stop using `do_get_template` when `*.html` templates are removed.
|
|
214
215
|
template = env.get_template(do_get_template(env, "expression"))
|
|
215
216
|
annotations = context.parent["config"]["show_signature_annotations"]
|
|
216
|
-
separate_signature = context.parent["config"]["separate_signature"]
|
|
217
|
-
old_stash_ref_filter = env.filters["stash_crossref"]
|
|
218
217
|
|
|
219
|
-
|
|
220
|
-
if
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
annotation = template.render(context.parent, expression=attribute.annotation, signature=True)
|
|
227
|
-
signature += f": {annotation}"
|
|
228
|
-
if attribute.value:
|
|
229
|
-
value = template.render(context.parent, expression=attribute.value, signature=True)
|
|
230
|
-
signature += f" = {value}"
|
|
231
|
-
finally:
|
|
232
|
-
env.filters["stash_crossref"] = old_stash_ref_filter
|
|
218
|
+
signature = str(attribute_path).strip()
|
|
219
|
+
if annotations and attribute.annotation:
|
|
220
|
+
annotation = template.render(context.parent, expression=attribute.annotation, signature=True)
|
|
221
|
+
signature += f": {annotation}"
|
|
222
|
+
if attribute.value:
|
|
223
|
+
value = template.render(context.parent, expression=attribute.value, signature=True)
|
|
224
|
+
signature += f" = {value}"
|
|
233
225
|
|
|
234
226
|
signature = do_format_code(signature, line_length)
|
|
235
227
|
signature = str(
|
|
@@ -241,9 +233,10 @@ def do_format_attribute(
|
|
|
241
233
|
),
|
|
242
234
|
)
|
|
243
235
|
|
|
244
|
-
if stash:
|
|
236
|
+
if stash := env.filters["stash_crossref"].stash:
|
|
245
237
|
for key, value in stash.items():
|
|
246
238
|
signature = re.sub(rf"\b{key}\b", value, signature)
|
|
239
|
+
stash.clear()
|
|
247
240
|
|
|
248
241
|
return signature
|
|
249
242
|
|
|
@@ -477,16 +470,7 @@ def do_get_template(env: Environment, obj: str | Object) -> str | Template:
|
|
|
477
470
|
template = env.get_template(f"{name}.html")
|
|
478
471
|
except TemplateNotFound:
|
|
479
472
|
return f"{name}.html.jinja"
|
|
480
|
-
|
|
481
|
-
if sys.version_info < (3, 9):
|
|
482
|
-
try:
|
|
483
|
-
Path(template.filename).relative_to(Path(__file__).parent) # type: ignore[arg-type]
|
|
484
|
-
except ValueError:
|
|
485
|
-
our_template = False
|
|
486
|
-
else:
|
|
487
|
-
our_template = True
|
|
488
|
-
else:
|
|
489
|
-
our_template = Path(template.filename).is_relative_to(Path(__file__).parent) # type: ignore[arg-type]
|
|
473
|
+
our_template = Path(template.filename).is_relative_to(Path(__file__).parent) # type: ignore[arg-type]
|
|
490
474
|
if our_template:
|
|
491
475
|
return f"{name}.html.jinja"
|
|
492
476
|
# TODO: Switch to a warning log after some time.
|
|
@@ -501,9 +485,9 @@ def do_get_template(env: Environment, obj: str | Object) -> str | Template:
|
|
|
501
485
|
@pass_context
|
|
502
486
|
def do_as_attributes_section(
|
|
503
487
|
context: Context, # noqa: ARG001
|
|
504
|
-
attributes: Sequence[Attribute],
|
|
488
|
+
attributes: Sequence[Attribute],
|
|
505
489
|
*,
|
|
506
|
-
check_public: bool = True,
|
|
490
|
+
check_public: bool = True,
|
|
507
491
|
) -> DocstringSectionAttributes:
|
|
508
492
|
"""Build an attributes section from a list of attributes.
|
|
509
493
|
|
|
@@ -514,15 +498,26 @@ def do_as_attributes_section(
|
|
|
514
498
|
Returns:
|
|
515
499
|
An attributes docstring section.
|
|
516
500
|
"""
|
|
517
|
-
return DocstringSectionAttributes(
|
|
501
|
+
return DocstringSectionAttributes(
|
|
502
|
+
[
|
|
503
|
+
DocstringAttribute(
|
|
504
|
+
name=attribute.name,
|
|
505
|
+
description=attribute.docstring.value.split("\n", 1)[0] if attribute.docstring else "",
|
|
506
|
+
annotation=attribute.annotation,
|
|
507
|
+
value=attribute.value, # type: ignore[arg-type]
|
|
508
|
+
)
|
|
509
|
+
for attribute in attributes
|
|
510
|
+
if not check_public or attribute.is_public
|
|
511
|
+
],
|
|
512
|
+
)
|
|
518
513
|
|
|
519
514
|
|
|
520
515
|
@pass_context
|
|
521
516
|
def do_as_functions_section(
|
|
522
|
-
context: Context,
|
|
523
|
-
functions: Sequence[Function],
|
|
517
|
+
context: Context,
|
|
518
|
+
functions: Sequence[Function],
|
|
524
519
|
*,
|
|
525
|
-
check_public: bool = True,
|
|
520
|
+
check_public: bool = True,
|
|
526
521
|
) -> DocstringSectionFunctions:
|
|
527
522
|
"""Build a functions section from a list of functions.
|
|
528
523
|
|
|
@@ -533,15 +528,25 @@ def do_as_functions_section(
|
|
|
533
528
|
Returns:
|
|
534
529
|
A functions docstring section.
|
|
535
530
|
"""
|
|
536
|
-
|
|
531
|
+
keep_init_method = not context.parent["config"]["merge_init_into_class"]
|
|
532
|
+
return DocstringSectionFunctions(
|
|
533
|
+
[
|
|
534
|
+
DocstringFunction(
|
|
535
|
+
name=function.name,
|
|
536
|
+
description=function.docstring.value.split("\n", 1)[0] if function.docstring else "",
|
|
537
|
+
)
|
|
538
|
+
for function in functions
|
|
539
|
+
if (not check_public or function.is_public) and (function.name != "__init__" or keep_init_method)
|
|
540
|
+
],
|
|
541
|
+
)
|
|
537
542
|
|
|
538
543
|
|
|
539
544
|
@pass_context
|
|
540
545
|
def do_as_classes_section(
|
|
541
546
|
context: Context, # noqa: ARG001
|
|
542
|
-
classes: Sequence[Class],
|
|
547
|
+
classes: Sequence[Class],
|
|
543
548
|
*,
|
|
544
|
-
check_public: bool = True,
|
|
549
|
+
check_public: bool = True,
|
|
545
550
|
) -> DocstringSectionClasses:
|
|
546
551
|
"""Build a classes section from a list of classes.
|
|
547
552
|
|
|
@@ -552,15 +557,24 @@ def do_as_classes_section(
|
|
|
552
557
|
Returns:
|
|
553
558
|
A classes docstring section.
|
|
554
559
|
"""
|
|
555
|
-
return DocstringSectionClasses(
|
|
560
|
+
return DocstringSectionClasses(
|
|
561
|
+
[
|
|
562
|
+
DocstringClass(
|
|
563
|
+
name=cls.name,
|
|
564
|
+
description=cls.docstring.value.split("\n", 1)[0] if cls.docstring else "",
|
|
565
|
+
)
|
|
566
|
+
for cls in classes
|
|
567
|
+
if not check_public or cls.is_public
|
|
568
|
+
],
|
|
569
|
+
)
|
|
556
570
|
|
|
557
571
|
|
|
558
572
|
@pass_context
|
|
559
573
|
def do_as_modules_section(
|
|
560
574
|
context: Context, # noqa: ARG001
|
|
561
|
-
modules: Sequence[Module],
|
|
575
|
+
modules: Sequence[Module],
|
|
562
576
|
*,
|
|
563
|
-
check_public: bool = True,
|
|
577
|
+
check_public: bool = True,
|
|
564
578
|
) -> DocstringSectionModules:
|
|
565
579
|
"""Build a modules section from a list of modules.
|
|
566
580
|
|
|
@@ -571,7 +585,16 @@ def do_as_modules_section(
|
|
|
571
585
|
Returns:
|
|
572
586
|
A modules docstring section.
|
|
573
587
|
"""
|
|
574
|
-
return DocstringSectionModules(
|
|
588
|
+
return DocstringSectionModules(
|
|
589
|
+
[
|
|
590
|
+
DocstringModule(
|
|
591
|
+
name=module.name,
|
|
592
|
+
description=module.docstring.value.split("\n", 1)[0] if module.docstring else "",
|
|
593
|
+
)
|
|
594
|
+
for module in modules
|
|
595
|
+
if not check_public or module
|
|
596
|
+
],
|
|
597
|
+
)
|
|
575
598
|
|
|
576
599
|
|
|
577
600
|
class AutorefsHook(AutorefsHookInterface):
|
|
@@ -589,7 +612,9 @@ class AutorefsHook(AutorefsHookInterface):
|
|
|
589
612
|
config: The configuration dictionary.
|
|
590
613
|
"""
|
|
591
614
|
self.current_object = current_object
|
|
615
|
+
"""The current object being rendered."""
|
|
592
616
|
self.config = config
|
|
617
|
+
"""The configuration options."""
|
|
593
618
|
|
|
594
619
|
def expand_identifier(self, identifier: str) -> str:
|
|
595
620
|
"""Expand an identifier.
|
|
@@ -133,13 +133,23 @@ Context:
|
|
|
133
133
|
{% endwith %}
|
|
134
134
|
{% if config.merge_init_into_class %}
|
|
135
135
|
{% if "__init__" in class.all_members and class.all_members["__init__"].has_docstring %}
|
|
136
|
-
{% with
|
|
137
|
-
{%
|
|
136
|
+
{% with function = class.all_members["__init__"] %}
|
|
137
|
+
{% with obj = function, docstring_sections = function.docstring.parsed %}
|
|
138
|
+
{% include "docstring"|get_template with context %}
|
|
139
|
+
{% endwith %}
|
|
138
140
|
{% endwith %}
|
|
139
141
|
{% endif %}
|
|
140
142
|
{% endif %}
|
|
141
143
|
{% endblock docstring %}
|
|
142
144
|
|
|
145
|
+
{% block summary scoped %}
|
|
146
|
+
{#- Summary block.
|
|
147
|
+
|
|
148
|
+
This block renders auto-summaries for classes, methods, and attributes.
|
|
149
|
+
-#}
|
|
150
|
+
{% include "summary"|get_template with context %}
|
|
151
|
+
{% endblock summary %}
|
|
152
|
+
|
|
143
153
|
{% block source scoped %}
|
|
144
154
|
{#- Source block.
|
|
145
155
|
|
|
@@ -34,7 +34,21 @@ Context:
|
|
|
34
34
|
<tbody>
|
|
35
35
|
{% for parameter in section.value %}
|
|
36
36
|
<tr class="doc-section-item">
|
|
37
|
-
<td
|
|
37
|
+
<td>
|
|
38
|
+
{% if config.parameter_headings %}
|
|
39
|
+
{% filter heading(
|
|
40
|
+
heading_level + 1,
|
|
41
|
+
role="param",
|
|
42
|
+
id=html_id ~ "(" ~ parameter.name ~ ")",
|
|
43
|
+
class="doc doc-heading doc-heading-parameter",
|
|
44
|
+
toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-parameter"></code> '|safe if config.show_symbol_type_toc else '') + parameter.name,
|
|
45
|
+
) %}
|
|
46
|
+
<code>{{ parameter.name }}</code>
|
|
47
|
+
{% endfilter %}
|
|
48
|
+
{% else %}
|
|
49
|
+
<code>{{ parameter.name }}</code>
|
|
50
|
+
{% endif %}
|
|
51
|
+
</td>
|
|
38
52
|
<td>
|
|
39
53
|
{% if parameter.annotation %}
|
|
40
54
|
{% with expression = parameter.annotation %}
|
|
@@ -68,7 +82,19 @@ Context:
|
|
|
68
82
|
<ul>
|
|
69
83
|
{% for parameter in section.value %}
|
|
70
84
|
<li class="doc-section-item field-body">
|
|
71
|
-
|
|
85
|
+
{% if config.parameter_headings %}
|
|
86
|
+
{% filter heading(
|
|
87
|
+
heading_level + 1,
|
|
88
|
+
role="param",
|
|
89
|
+
id=html_id ~ "(" ~ parameter.name ~ ")",
|
|
90
|
+
class="doc doc-heading doc-heading-parameter",
|
|
91
|
+
toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-parameter"></code> '|safe if config.show_symbol_type_toc else '') + parameter.name,
|
|
92
|
+
) %}
|
|
93
|
+
<b><code>{{ parameter.name }}</code></b>
|
|
94
|
+
{% endfilter %}
|
|
95
|
+
{% else %}
|
|
96
|
+
<b><code>{{ parameter.name }}</code></b>
|
|
97
|
+
{% endif %}
|
|
72
98
|
{% if parameter.annotation %}
|
|
73
99
|
{% with expression = parameter.annotation %}
|
|
74
100
|
(<code>{% include "expression"|get_template with context %}</code>
|
|
@@ -100,7 +126,21 @@ Context:
|
|
|
100
126
|
<tbody>
|
|
101
127
|
{% for parameter in section.value %}
|
|
102
128
|
<tr class="doc-section-item">
|
|
103
|
-
<td
|
|
129
|
+
<td>
|
|
130
|
+
{% if config.parameter_headings %}
|
|
131
|
+
{% filter heading(
|
|
132
|
+
heading_level + 1,
|
|
133
|
+
role="param",
|
|
134
|
+
id=html_id ~ "(" ~ parameter.name ~ ")",
|
|
135
|
+
class="doc doc-heading doc-heading-parameter",
|
|
136
|
+
toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-parameter"></code> '|safe if config.show_symbol_type_toc else '') + parameter.name,
|
|
137
|
+
) %}
|
|
138
|
+
<code>{{ parameter.name }}</code>
|
|
139
|
+
{% endfilter %}
|
|
140
|
+
{% else %}
|
|
141
|
+
<code>{{ parameter.name }}</code>
|
|
142
|
+
{% endif %}
|
|
143
|
+
</td>
|
|
104
144
|
<td class="doc-param-details">
|
|
105
145
|
<div class="doc-md-description">
|
|
106
146
|
{{ parameter.description|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
|
|
@@ -32,10 +32,14 @@ which is a tree-like structure representing a Python expression.
|
|
|
32
32
|
{%- set annotation = full -%}
|
|
33
33
|
{%- endif -%}
|
|
34
34
|
{%- for title, path in annotation|split_path(full) -%}
|
|
35
|
-
{%- if
|
|
36
|
-
{%-
|
|
35
|
+
{%- if config.signature_crossrefs -%}
|
|
36
|
+
{%- if signature -%}
|
|
37
|
+
{%- filter stash_crossref(length=title|length) -%}
|
|
38
|
+
<autoref identifier="{{ path }}" optional{% if title != path %} hover{% endif %}>{{ title }}</autoref>
|
|
39
|
+
{%- endfilter -%}
|
|
40
|
+
{%- else -%}
|
|
37
41
|
<autoref identifier="{{ path }}" optional{% if title != path %} hover{% endif %}>{{ title }}</autoref>
|
|
38
|
-
{%-
|
|
42
|
+
{%- endif -%}
|
|
39
43
|
{%- else -%}
|
|
40
44
|
{{ title }}
|
|
41
45
|
{%- endif -%}
|
|
@@ -44,6 +48,28 @@ which is a tree-like structure representing a Python expression.
|
|
|
44
48
|
{%- endwith -%}
|
|
45
49
|
{%- endmacro -%}
|
|
46
50
|
|
|
51
|
+
{%- macro param_crossref(expression) -%}
|
|
52
|
+
{#- Render a cross-reference to a parameter heading.
|
|
53
|
+
|
|
54
|
+
Parameters:
|
|
55
|
+
expression (griffe.expressions.Expr): The expression to render.
|
|
56
|
+
|
|
57
|
+
Returns:
|
|
58
|
+
The autorefs cross-reference, or the parameter name.
|
|
59
|
+
-#}
|
|
60
|
+
{%- if config.signature_crossrefs -%}
|
|
61
|
+
{%- if signature -%}
|
|
62
|
+
{%- filter stash_crossref(length=expression.name|length) -%}
|
|
63
|
+
<autoref identifier="{{ expression.canonical_path }}" optional hover>{{ expression.name }}</autoref>
|
|
64
|
+
{%- endfilter -%}
|
|
65
|
+
{%- else -%}
|
|
66
|
+
<autoref identifier="{{ expression.canonical_path }}" optional hover>{{ expression.name }}</autoref>
|
|
67
|
+
{%- endif -%}
|
|
68
|
+
{%- else -%}
|
|
69
|
+
{{ expression.name }}
|
|
70
|
+
{%- endif -%}
|
|
71
|
+
{%- endmacro -%}
|
|
72
|
+
|
|
47
73
|
{%- macro render(expression, annotations_path) -%}
|
|
48
74
|
{#- Render an expression.
|
|
49
75
|
|
|
@@ -79,6 +105,8 @@ which is a tree-like structure representing a Python expression.
|
|
|
79
105
|
{{ render(element, annotations_path) }}
|
|
80
106
|
{%- endfor -%}
|
|
81
107
|
{%- endif -%}
|
|
108
|
+
{%- elif expression.classname == "ExprKeyword" -%}
|
|
109
|
+
{{ param_crossref(expression) }}={{ render(expression.value, annotations_path) }}
|
|
82
110
|
{%- else -%}
|
|
83
111
|
{%- for element in expression -%}
|
|
84
112
|
{{ render(element, annotations_path) }}
|
|
@@ -77,8 +77,18 @@ Context:
|
|
|
77
77
|
{% block signature scoped %}
|
|
78
78
|
{#- Signature block.
|
|
79
79
|
|
|
80
|
-
This block renders the signature for the function
|
|
80
|
+
This block renders the signature for the function,
|
|
81
|
+
as well as its overloaded signatures if any.
|
|
81
82
|
-#}
|
|
83
|
+
{% if function.overloads %}
|
|
84
|
+
<div class="doc-overloads">
|
|
85
|
+
{% for overload in function.overloads %}
|
|
86
|
+
{% filter format_signature(overload, config.line_length, annotations=True, crossrefs=config.signature_crossrefs) %}
|
|
87
|
+
{{ overload.name }}
|
|
88
|
+
{% endfilter %}
|
|
89
|
+
{% endfor %}
|
|
90
|
+
</div>
|
|
91
|
+
{% endif %}
|
|
82
92
|
{% if config.separate_signature %}
|
|
83
93
|
{% filter format_signature(function, config.line_length, crossrefs=config.signature_crossrefs) %}
|
|
84
94
|
{{ function.name }}
|
|
@@ -97,6 +97,14 @@ Context:
|
|
|
97
97
|
{% endwith %}
|
|
98
98
|
{% endblock docstring %}
|
|
99
99
|
|
|
100
|
+
{% block summary scoped %}
|
|
101
|
+
{#- Summary block.
|
|
102
|
+
|
|
103
|
+
This block renders auto-summaries for classes, methods, and attributes.
|
|
104
|
+
-#}
|
|
105
|
+
{% include "summary"|get_template with context %}
|
|
106
|
+
{% endblock summary %}
|
|
107
|
+
|
|
100
108
|
{% block children scoped %}
|
|
101
109
|
{#- Children block.
|
|
102
110
|
|
|
@@ -25,6 +25,7 @@ Context:
|
|
|
25
25
|
render_kw_only_separator=True,
|
|
26
26
|
annotation="",
|
|
27
27
|
equal="=",
|
|
28
|
+
default=False,
|
|
28
29
|
) -%}
|
|
29
30
|
|
|
30
31
|
(
|
|
@@ -60,7 +61,9 @@ Context:
|
|
|
60
61
|
|
|
61
62
|
{#- Prepare default value. -#}
|
|
62
63
|
{%- if parameter.default is not none and parameter.kind.value != "variadic positional" and parameter.kind.value != "variadic keyword" -%}
|
|
63
|
-
{%- set default =
|
|
64
|
+
{%- set ns.default = True -%}
|
|
65
|
+
{%- else -%}
|
|
66
|
+
{%- set ns.default = False -%}
|
|
64
67
|
{%- endif -%}
|
|
65
68
|
|
|
66
69
|
{#- TODO: Move inside kind handling above? -#}
|
|
@@ -68,9 +71,45 @@ Context:
|
|
|
68
71
|
{%- set ns.render_kw_only_separator = False -%}
|
|
69
72
|
{%- endif -%}
|
|
70
73
|
|
|
71
|
-
{#-
|
|
72
|
-
{
|
|
73
|
-
|
|
74
|
+
{#- Prepare name. -#}
|
|
75
|
+
{%- set param_name -%}
|
|
76
|
+
{%- if parameter.kind.value == "variadic positional" -%}
|
|
77
|
+
*
|
|
78
|
+
{%- elif parameter.kind.value == "variadic keyword" -%}
|
|
79
|
+
**
|
|
80
|
+
{%- endif -%}
|
|
81
|
+
{{ parameter.name }}
|
|
82
|
+
{%- endset -%}
|
|
83
|
+
|
|
84
|
+
{#- Render parameter name with optional cross-reference to its heading. -#}
|
|
85
|
+
{%- if config.separate_signature and config.parameter_headings and config.signature_crossrefs -%}
|
|
86
|
+
{%- filter stash_crossref(length=param_name|length) -%}
|
|
87
|
+
{%- with func_path = function.path -%}
|
|
88
|
+
{%- if config.merge_init_into_class and func_path.endswith(".__init__") -%}
|
|
89
|
+
{%- set func_path = func_path[:-9] -%}
|
|
90
|
+
{%- endif -%}
|
|
91
|
+
<autoref identifier="{{ func_path }}({{ param_name }})" optional>{{ param_name }}</autoref>
|
|
92
|
+
{%- endwith -%}
|
|
93
|
+
{%- endfilter -%}
|
|
94
|
+
{%- else -%}
|
|
95
|
+
{{ param_name }}
|
|
96
|
+
{%- endif -%}
|
|
97
|
+
|
|
98
|
+
{#- Render parameter annotation. -#}
|
|
99
|
+
{{ ns.annotation }}
|
|
100
|
+
|
|
101
|
+
{#- Render parameter default value. -#}
|
|
102
|
+
{%- if ns.default -%}
|
|
103
|
+
{{ ns.equal }}
|
|
104
|
+
{%- if config.signature_crossrefs and config.separate_signature -%}
|
|
105
|
+
{%- with expression = parameter.default -%}
|
|
106
|
+
{%- include "expression"|get_template with context -%}
|
|
107
|
+
{%- endwith -%}
|
|
108
|
+
{%- else -%}
|
|
109
|
+
{{ parameter.default }}
|
|
110
|
+
{%- endif -%}
|
|
111
|
+
{%- endif -%}
|
|
112
|
+
|
|
74
113
|
{%- if not loop.last %}, {% endif -%}
|
|
75
114
|
|
|
76
115
|
{%- endif -%}
|
|
@@ -6,3 +6,16 @@
|
|
|
6
6
|
This block can be used to log debug messages, deprecation messages, warnings, etc.
|
|
7
7
|
-#}
|
|
8
8
|
{% endblock logs %}
|
|
9
|
+
|
|
10
|
+
{% with section = obj.attributes
|
|
11
|
+
|filter_objects(
|
|
12
|
+
filters=config.filters,
|
|
13
|
+
members_list=members_list,
|
|
14
|
+
inherited_members=config.inherited_members,
|
|
15
|
+
keep_no_docstrings=config.show_if_no_docstring,
|
|
16
|
+
)
|
|
17
|
+
|order_members(config.members_order, members_list)
|
|
18
|
+
|as_attributes_section(check_public=not members_list)
|
|
19
|
+
%}
|
|
20
|
+
{% if section %}{% include "docstring/attributes"|get_template with context %}{% endif %}
|
|
21
|
+
{% endwith %}
|
|
@@ -6,3 +6,16 @@
|
|
|
6
6
|
This block can be used to log debug messages, deprecation messages, warnings, etc.
|
|
7
7
|
-#}
|
|
8
8
|
{% endblock logs %}
|
|
9
|
+
|
|
10
|
+
{% with section = obj.classes
|
|
11
|
+
|filter_objects(
|
|
12
|
+
filters=config.filters,
|
|
13
|
+
members_list=members_list,
|
|
14
|
+
inherited_members=config.inherited_members,
|
|
15
|
+
keep_no_docstrings=config.show_if_no_docstring,
|
|
16
|
+
)
|
|
17
|
+
|order_members(config.members_order, members_list)
|
|
18
|
+
|as_classes_section(check_public=not members_list)
|
|
19
|
+
%}
|
|
20
|
+
{% if section %}{% include "docstring/classes"|get_template with context %}{% endif %}
|
|
21
|
+
{% endwith %}
|
|
@@ -6,3 +6,16 @@
|
|
|
6
6
|
This block can be used to log debug messages, deprecation messages, warnings, etc.
|
|
7
7
|
-#}
|
|
8
8
|
{% endblock logs %}
|
|
9
|
+
|
|
10
|
+
{% with section = obj.functions
|
|
11
|
+
|filter_objects(
|
|
12
|
+
filters=config.filters,
|
|
13
|
+
members_list=members_list,
|
|
14
|
+
inherited_members=config.inherited_members,
|
|
15
|
+
keep_no_docstrings=config.show_if_no_docstring,
|
|
16
|
+
)
|
|
17
|
+
|order_members(config.members_order, members_list)
|
|
18
|
+
|as_functions_section(check_public=not members_list)
|
|
19
|
+
%}
|
|
20
|
+
{% if section %}{% include "docstring/functions"|get_template with context %}{% endif %}
|
|
21
|
+
{% endwith %}
|
|
@@ -6,3 +6,16 @@
|
|
|
6
6
|
This block can be used to log debug messages, deprecation messages, warnings, etc.
|
|
7
7
|
-#}
|
|
8
8
|
{% endblock logs %}
|
|
9
|
+
|
|
10
|
+
{% with section = obj.modules
|
|
11
|
+
|filter_objects(
|
|
12
|
+
filters=config.filters,
|
|
13
|
+
members_list=members_list,
|
|
14
|
+
inherited_members=config.inherited_members,
|
|
15
|
+
keep_no_docstrings=config.show_if_no_docstring,
|
|
16
|
+
)
|
|
17
|
+
|order_members(config.members_order.alphabetical, members_list)
|
|
18
|
+
|as_modules_section(check_public=not members_list)
|
|
19
|
+
%}
|
|
20
|
+
{% if section %}{% include "docstring/modules"|get_template with context %}{% endif %}
|
|
21
|
+
{% endwith %}
|
|
@@ -6,3 +6,21 @@
|
|
|
6
6
|
This block can be used to log debug messages, deprecation messages, warnings, etc.
|
|
7
7
|
-#}
|
|
8
8
|
{% endblock logs %}
|
|
9
|
+
|
|
10
|
+
{% with members_list = config.members if root_members else None %}
|
|
11
|
+
{% if config.summary.modules %}
|
|
12
|
+
{% include "summary/modules"|get_template with context %}
|
|
13
|
+
{% endif %}
|
|
14
|
+
|
|
15
|
+
{% if config.summary.classes %}
|
|
16
|
+
{% include "summary/classes"|get_template with context %}
|
|
17
|
+
{% endif %}
|
|
18
|
+
|
|
19
|
+
{% if config.summary.functions %}
|
|
20
|
+
{% include "summary/functions"|get_template with context %}
|
|
21
|
+
{% endif %}
|
|
22
|
+
|
|
23
|
+
{% if config.summary.attributes %}
|
|
24
|
+
{% include "summary/attributes"|get_template with context %}
|
|
25
|
+
{% endif %}
|
|
26
|
+
{% endwith %}
|
|
@@ -25,20 +25,33 @@
|
|
|
25
25
|
float: right;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
/* Parameter headings must be inline, not blocks. */
|
|
29
|
+
.doc-heading-parameter {
|
|
30
|
+
display: inline;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Prefer space on the right, not the left of parameter permalinks. */
|
|
34
|
+
.doc-heading-parameter .headerlink {
|
|
35
|
+
margin-left: 0 !important;
|
|
36
|
+
margin-right: 0.2rem;
|
|
37
|
+
}
|
|
38
|
+
|
|
28
39
|
/* Backward-compatibility: docstring section titles in bold. */
|
|
29
40
|
.doc-section-title {
|
|
30
41
|
font-weight: bold;
|
|
31
42
|
}
|
|
32
43
|
|
|
33
44
|
/* Symbols in Navigation and ToC. */
|
|
34
|
-
:root,
|
|
45
|
+
:root, :host,
|
|
35
46
|
[data-md-color-scheme="default"] {
|
|
47
|
+
--doc-symbol-parameter-fg-color: #df50af;
|
|
36
48
|
--doc-symbol-attribute-fg-color: #953800;
|
|
37
49
|
--doc-symbol-function-fg-color: #8250df;
|
|
38
50
|
--doc-symbol-method-fg-color: #8250df;
|
|
39
51
|
--doc-symbol-class-fg-color: #0550ae;
|
|
40
52
|
--doc-symbol-module-fg-color: #5cad0f;
|
|
41
53
|
|
|
54
|
+
--doc-symbol-parameter-bg-color: #df50af1a;
|
|
42
55
|
--doc-symbol-attribute-bg-color: #9538001a;
|
|
43
56
|
--doc-symbol-function-bg-color: #8250df1a;
|
|
44
57
|
--doc-symbol-method-bg-color: #8250df1a;
|
|
@@ -47,12 +60,14 @@
|
|
|
47
60
|
}
|
|
48
61
|
|
|
49
62
|
[data-md-color-scheme="slate"] {
|
|
63
|
+
--doc-symbol-parameter-fg-color: #ffa8cc;
|
|
50
64
|
--doc-symbol-attribute-fg-color: #ffa657;
|
|
51
65
|
--doc-symbol-function-fg-color: #d2a8ff;
|
|
52
66
|
--doc-symbol-method-fg-color: #d2a8ff;
|
|
53
67
|
--doc-symbol-class-fg-color: #79c0ff;
|
|
54
68
|
--doc-symbol-module-fg-color: #baff79;
|
|
55
69
|
|
|
70
|
+
--doc-symbol-parameter-bg-color: #ffa8cc1a;
|
|
56
71
|
--doc-symbol-attribute-bg-color: #ffa6571a;
|
|
57
72
|
--doc-symbol-function-bg-color: #d2a8ff1a;
|
|
58
73
|
--doc-symbol-method-bg-color: #d2a8ff1a;
|
|
@@ -67,6 +82,15 @@ code.doc-symbol {
|
|
|
67
82
|
font-weight: bold;
|
|
68
83
|
}
|
|
69
84
|
|
|
85
|
+
code.doc-symbol-parameter {
|
|
86
|
+
color: var(--doc-symbol-parameter-fg-color);
|
|
87
|
+
background-color: var(--doc-symbol-parameter-bg-color);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
code.doc-symbol-parameter::after {
|
|
91
|
+
content: "param";
|
|
92
|
+
}
|
|
93
|
+
|
|
70
94
|
code.doc-symbol-attribute {
|
|
71
95
|
color: var(--doc-symbol-attribute-fg-color);
|
|
72
96
|
background-color: var(--doc-symbol-attribute-bg-color);
|
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
|
|
10
10
|
{% set lang_pth = "languages/" ~ locale | get_template %}
|
|
11
11
|
{% if lang_pth is existing_template %}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
{% import lang_pth as lang %}
|
|
13
|
+
{% import "languages/en"|get_template as fallback %}
|
|
14
|
+
{% macro t(key) %}{{ lang.t(key) or fallback.t(key) }}{% endmacro %}
|
|
15
15
|
{% else %}
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
{% import "languages/en"|get_template as lang %}
|
|
17
|
+
{% macro t(key) %}{{ lang.t(key) }}{% endmacro %}
|
|
18
18
|
{% endif %}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: mkdocstrings-python
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.12.0
|
|
4
4
|
Summary: A Python handler for mkdocstrings.
|
|
5
5
|
Author-Email: =?utf-8?q?Timoth=C3=A9e_Mazzucotelli?= <dev@pawamoy.fr>
|
|
6
6
|
License: ISC
|
|
@@ -9,14 +9,15 @@ Classifier: Intended Audience :: Developers
|
|
|
9
9
|
Classifier: Programming Language :: Python
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
13
12
|
Classifier: Programming Language :: Python :: 3.9
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.10
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.13
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
18
18
|
Classifier: Topic :: Documentation
|
|
19
19
|
Classifier: Topic :: Software Development
|
|
20
|
+
Classifier: Topic :: Software Development :: Documentation
|
|
20
21
|
Classifier: Topic :: Utilities
|
|
21
22
|
Classifier: Typing :: Typed
|
|
22
23
|
Project-URL: Homepage, https://mkdocstrings.github.io/python
|
|
@@ -27,7 +28,7 @@ Project-URL: Issues, https://github.com/mkdocstrings/python/issues
|
|
|
27
28
|
Project-URL: Discussions, https://github.com/mkdocstrings/python/discussions
|
|
28
29
|
Project-URL: Gitter, https://gitter.im/mkdocstrings/python
|
|
29
30
|
Project-URL: Funding, https://github.com/sponsors/pawamoy
|
|
30
|
-
Requires-Python: >=3.
|
|
31
|
+
Requires-Python: >=3.9
|
|
31
32
|
Requires-Dist: mkdocstrings>=0.26
|
|
32
33
|
Requires-Dist: mkdocs-autorefs>=1.2
|
|
33
34
|
Requires-Dist: griffe>=0.49
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
mkdocstrings_handlers/python/__init__.py,sha256=k-0NWvXysr5RqWjtGyCozookveBB-ADZHIhgxvI1px8,128
|
|
2
2
|
mkdocstrings_handlers/python/debug.py,sha256=4vqIbCbbz_vcjcFk6jPoF8E1kLig8AQEsQ93ybcjIVc,2894
|
|
3
|
-
mkdocstrings_handlers/python/handler.py,sha256=
|
|
3
|
+
mkdocstrings_handlers/python/handler.py,sha256=jz8mjS1ePwA8Mpb0gEHY84DxFQRXsw4EvaJsE0ZBQdw,25152
|
|
4
4
|
mkdocstrings_handlers/python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
mkdocstrings_handlers/python/rendering.py,sha256=
|
|
5
|
+
mkdocstrings_handlers/python/rendering.py,sha256=5wqL8VFwrRuScNDP2n-uL0xS2-URfw8MiXVywQcCG8U,20584
|
|
6
6
|
mkdocstrings_handlers/python/templates/material/_base/attribute.html,sha256=nn0671f4bE7VqnTs-VQL3SGPACWAxb2uJBRcP2nwYng,427
|
|
7
7
|
mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja,sha256=_NTap6NDkJUMpJJaQ4mCIzsxVWwkv4Z6ZdaCxLe34mo,4361
|
|
8
8
|
mkdocstrings_handlers/python/templates/material/_base/children.html,sha256=mOafkSlphFQJLWfrYrIMFVRGi2yjdtN6iJh8bPt7uRI,424
|
|
9
9
|
mkdocstrings_handlers/python/templates/material/_base/children.html.jinja,sha256=o7JzhXx1OSo9MM-z_gks6H1aTETIPFFvTyE1St392Xs,6414
|
|
10
10
|
mkdocstrings_handlers/python/templates/material/_base/class.html,sha256=x0M8Wjk7TC9cgnstMoukLVQvxZUEMFjQA0VJQPEAC9Y,415
|
|
11
|
-
mkdocstrings_handlers/python/templates/material/_base/class.html.jinja,sha256=
|
|
11
|
+
mkdocstrings_handlers/python/templates/material/_base/class.html.jinja,sha256=DVjmOqwm3O3rTT3MPpjuX2Dc538XK9CmEVD8JaDJLDg,7587
|
|
12
12
|
mkdocstrings_handlers/python/templates/material/_base/docstring.html,sha256=9gDeMzbEUGfOBklwvriH5HMfcotOcaXUvlgLC9klTi8,427
|
|
13
13
|
mkdocstrings_handlers/python/templates/material/_base/docstring.html.jinja,sha256=1kqZ_T7WMGQgFDuWQJaozLAk2FPTxNPyQuiDbFllRks,3133
|
|
14
14
|
mkdocstrings_handlers/python/templates/material/_base/docstring/admonition.html,sha256=yShTX2BBdYlOGCj-Hb1NIAeWldLGE_toMDIOn1OYdPs,460
|
|
@@ -26,7 +26,7 @@ mkdocstrings_handlers/python/templates/material/_base/docstring/modules.html.jin
|
|
|
26
26
|
mkdocstrings_handlers/python/templates/material/_base/docstring/other_parameters.html,sha256=yDBXgj-qMDQP3Si-ZjDj-Z0ksRl3BP6YbwHy8fZrmdU,478
|
|
27
27
|
mkdocstrings_handlers/python/templates/material/_base/docstring/other_parameters.html.jinja,sha256=he0BczZk-STGsgXgdGlGEqipdv1ptEYOH_hf0GwY9Y8,3978
|
|
28
28
|
mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html,sha256=xKQQydQJst6CJT0nH6RPWDXH92tRH_k1EIiPNoHzI1g,460
|
|
29
|
-
mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja,sha256=
|
|
29
|
+
mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja,sha256=MeUMh4yC-uqid_y-bqLDXn5jXqWpTIX5w81XpLFO_ms,6854
|
|
30
30
|
mkdocstrings_handlers/python/templates/material/_base/docstring/raises.html,sha256=f4tZCDGQxPeaTMvo95Yipc-t-enuqV42LZ4sKUu4FaM,448
|
|
31
31
|
mkdocstrings_handlers/python/templates/material/_base/docstring/raises.html.jinja,sha256=6bFvWICLUtKidLPNrCbBeGeDDd91AFmudhlXI3ZGUJU,3560
|
|
32
32
|
mkdocstrings_handlers/python/templates/material/_base/docstring/receives.html,sha256=hz4Yr6SufruNEYPlsyS2G18UgHEhXBlBu15B02pXqtY,454
|
|
@@ -38,9 +38,9 @@ mkdocstrings_handlers/python/templates/material/_base/docstring/warns.html.jinja
|
|
|
38
38
|
mkdocstrings_handlers/python/templates/material/_base/docstring/yields.html,sha256=-aNSOHi5lvqheUzklSRThN7UeCdsqTHm35CyKi5yaWU,448
|
|
39
39
|
mkdocstrings_handlers/python/templates/material/_base/docstring/yields.html.jinja,sha256=a52QMKQ2udRBIhGa1eHX6fYFvkqG3XqgIkPULt7_oKw,4591
|
|
40
40
|
mkdocstrings_handlers/python/templates/material/_base/expression.html,sha256=JU-ScDWoFk0m6x0Dx50LKN9yW7RzTWj4VYcJYEIQ144,430
|
|
41
|
-
mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja,sha256=
|
|
41
|
+
mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja,sha256=1r4Lri9PcTNJmflCBwEKFlkgTWsh167SUKdB9G8H2uo,4134
|
|
42
42
|
mkdocstrings_handlers/python/templates/material/_base/function.html,sha256=tFpXIt5sIhjXjTCXhtYZ4cGpbgdbaIdbm8HdP9Pccik,424
|
|
43
|
-
mkdocstrings_handlers/python/templates/material/_base/function.html.jinja,sha256=
|
|
43
|
+
mkdocstrings_handlers/python/templates/material/_base/function.html.jinja,sha256=BfYBsyL01U_rvMn0_U6HJ3Krf44_xLNCA_KNL3ZFq8I,5676
|
|
44
44
|
mkdocstrings_handlers/python/templates/material/_base/labels.html,sha256=SJGvRoTYj9AImTRRn-SP4nGAdpfz-ai4gGgHGxMOJK8,418
|
|
45
45
|
mkdocstrings_handlers/python/templates/material/_base/labels.html.jinja,sha256=xGgvyJCTx4-uxqUzz1cX2_hszNSdgH5P8T4qVc7Rbvw,790
|
|
46
46
|
mkdocstrings_handlers/python/templates/material/_base/language.html,sha256=Qvw8RvhTvKk3-OobTEOyWsh5yE3WbIWW4meoR4X_5fY,424
|
|
@@ -52,19 +52,19 @@ mkdocstrings_handlers/python/templates/material/_base/languages/ja.html.jinja,sh
|
|
|
52
52
|
mkdocstrings_handlers/python/templates/material/_base/languages/zh.html,sha256=qpCtwgIj9xjbsPDApJE3W34s-V7Syg_iFeN8zX5kZqY,436
|
|
53
53
|
mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja,sha256=p8AtmAqXBDu1ZWnrWk8hclnNyOCBs1UVGxmKg4dxqGg,1073
|
|
54
54
|
mkdocstrings_handlers/python/templates/material/_base/module.html,sha256=cEq3DXlXfZ57NAK6CXA7OxtyeffgfUpWVvLW1O1aNzw,418
|
|
55
|
-
mkdocstrings_handlers/python/templates/material/_base/module.html.jinja,sha256=
|
|
55
|
+
mkdocstrings_handlers/python/templates/material/_base/module.html.jinja,sha256=gtYkBVqdRBVKiLKFHryDXJVT3DRIeqYFhqPXPFwsrc4,4076
|
|
56
56
|
mkdocstrings_handlers/python/templates/material/_base/signature.html,sha256=7TcpvSL7n5pbg0Eokbx49vlLbY6YHM6S8o7aFpaxgXU,427
|
|
57
|
-
mkdocstrings_handlers/python/templates/material/_base/signature.html.jinja,sha256=
|
|
57
|
+
mkdocstrings_handlers/python/templates/material/_base/signature.html.jinja,sha256=YP5K8t4xUSmbImAehvrzfdCT9WxYVeZJVzSYEDbCjtk,4952
|
|
58
58
|
mkdocstrings_handlers/python/templates/material/_base/summary.html,sha256=2OR2p8zJ5I0mkknX7ZY7qj59orJH4e9HVg0S5DaUUsU,421
|
|
59
|
-
mkdocstrings_handlers/python/templates/material/_base/summary.html.jinja,sha256=
|
|
59
|
+
mkdocstrings_handlers/python/templates/material/_base/summary.html.jinja,sha256=Mvy_IeWRe0At4wKJC9TaIhK7fZyLpGHDWHlCsFSUXpw,732
|
|
60
60
|
mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html,sha256=CSrl1A7woDmRxgMpYHArnKQGgilSbk8fvXgsx1OzPwU,454
|
|
61
|
-
mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html.jinja,sha256=
|
|
61
|
+
mkdocstrings_handlers/python/templates/material/_base/summary/attributes.html.jinja,sha256=qVoKOlLc7KP2BKVtGOHl8BPeGDVDIZdqDS2XsxSAHI4,643
|
|
62
62
|
mkdocstrings_handlers/python/templates/material/_base/summary/classes.html,sha256=hhFsCc_4quq7mPWMWKBMas1jNRjSOHoCmbz8gGR1by8,445
|
|
63
|
-
mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja,sha256=
|
|
63
|
+
mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja,sha256=_P2RggKoVCiBj5MqzRFJVO9Jhr-b_MGTx-VMe_BpRR8,631
|
|
64
64
|
mkdocstrings_handlers/python/templates/material/_base/summary/functions.html,sha256=gm2x5_dy7KVWxBSZlY7gCjXyC0otT6n0pIpxTvjp8WA,451
|
|
65
|
-
mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja,sha256=
|
|
65
|
+
mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja,sha256=FenhIa07wvcZqfxur9D_SuGQnReLi74mSRUi_cOHrmo,647
|
|
66
66
|
mkdocstrings_handlers/python/templates/material/_base/summary/modules.html,sha256=4aM17FMv-a-h5IawwFtxDHw2AdI6fICyiKtdYckQc6s,445
|
|
67
|
-
mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja,sha256=
|
|
67
|
+
mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja,sha256=Zmoo_4rfUPzMD-r7xZj2ldpPFdRNg649jw9EbEelyw4,644
|
|
68
68
|
mkdocstrings_handlers/python/templates/material/attribute.html,sha256=HkKz308jpCZj3PffJ5JtZC46rtkNNZ-2bE5zvaQQTRE,43
|
|
69
69
|
mkdocstrings_handlers/python/templates/material/attribute.html.jinja,sha256=HkKz308jpCZj3PffJ5JtZC46rtkNNZ-2bE5zvaQQTRE,43
|
|
70
70
|
mkdocstrings_handlers/python/templates/material/children.html,sha256=rUBgwytUT2xB9S1pCHy74o-UyLOIu-fczvj-DoMxbbA,42
|
|
@@ -117,7 +117,7 @@ mkdocstrings_handlers/python/templates/material/module.html,sha256=ws59JJTsITCnd
|
|
|
117
117
|
mkdocstrings_handlers/python/templates/material/module.html.jinja,sha256=ws59JJTsITCndGTXSUXoQ14BcXsKJswZW24ceJaHGNI,40
|
|
118
118
|
mkdocstrings_handlers/python/templates/material/signature.html,sha256=EvvFPpG9PEUi25f-_2V0iVXTsUlvC9iTWtgFbJ3YVeI,43
|
|
119
119
|
mkdocstrings_handlers/python/templates/material/signature.html.jinja,sha256=EvvFPpG9PEUi25f-_2V0iVXTsUlvC9iTWtgFbJ3YVeI,43
|
|
120
|
-
mkdocstrings_handlers/python/templates/material/style.css,sha256=
|
|
120
|
+
mkdocstrings_handlers/python/templates/material/style.css,sha256=Q1fQyKGThnX5L4X2ylMG4GAAjErxGygrUptJDb4PPfQ,3385
|
|
121
121
|
mkdocstrings_handlers/python/templates/material/summary.html,sha256=Wd7HXzuU0mriz82Riy2PDpRbcMo-7IHrAdBsvxbtKrY,41
|
|
122
122
|
mkdocstrings_handlers/python/templates/material/summary.html.jinja,sha256=Wd7HXzuU0mriz82Riy2PDpRbcMo-7IHrAdBsvxbtKrY,41
|
|
123
123
|
mkdocstrings_handlers/python/templates/material/summary/attributes.html,sha256=l3ON8hgvZaihmIpiXTwjDuHD6hp8PuiCdrTvprXYp9k,52
|
|
@@ -145,7 +145,7 @@ mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/warns.html.ji
|
|
|
145
145
|
mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/yields.html,sha256=-aNSOHi5lvqheUzklSRThN7UeCdsqTHm35CyKi5yaWU,448
|
|
146
146
|
mkdocstrings_handlers/python/templates/readthedocs/_base/docstring/yields.html.jinja,sha256=wJzAynY2f7Ntmhq3r8MxuiXdAIMGb8izOCcG1ciZrqk,1667
|
|
147
147
|
mkdocstrings_handlers/python/templates/readthedocs/_base/language.html,sha256=Qvw8RvhTvKk3-OobTEOyWsh5yE3WbIWW4meoR4X_5fY,424
|
|
148
|
-
mkdocstrings_handlers/python/templates/readthedocs/_base/language.html.jinja,sha256=
|
|
148
|
+
mkdocstrings_handlers/python/templates/readthedocs/_base/language.html.jinja,sha256=LdY01ulO7QlPnz3zlQ1Bq4m9zHpSl0UqSQFJJ3MCZdA,622
|
|
149
149
|
mkdocstrings_handlers/python/templates/readthedocs/_base/languages/en.html,sha256=E8a7EBeQ1E7HVYzhilVbouqbNJkePhz7amCEJdbRxmQ,436
|
|
150
150
|
mkdocstrings_handlers/python/templates/readthedocs/_base/languages/en.html.jinja,sha256=UXTwUvL_GdJscqwAwI16YexazJy26KNOVTz7lWpWqj8,1010
|
|
151
151
|
mkdocstrings_handlers/python/templates/readthedocs/_base/languages/ja.html,sha256=OscqH81KN7hkkijGazKv5IdoEuLCxVlgyC6eZj2n0ns,436
|
|
@@ -177,7 +177,8 @@ mkdocstrings_handlers/python/templates/readthedocs/languages/ja.html.jinja,sha25
|
|
|
177
177
|
mkdocstrings_handlers/python/templates/readthedocs/languages/zh.html,sha256=OuvrkorxuL0gKZNYneann1bwd1Z2i5bBY7SbC496HDw,46
|
|
178
178
|
mkdocstrings_handlers/python/templates/readthedocs/languages/zh.html.jinja,sha256=OuvrkorxuL0gKZNYneann1bwd1Z2i5bBY7SbC496HDw,46
|
|
179
179
|
mkdocstrings_handlers/python/templates/readthedocs/style.css,sha256=Ds8vF1rSxc2B0c4P10osx4cqXHWMntcSCxmRfX-nfzw,971
|
|
180
|
-
mkdocstrings_python-1.
|
|
181
|
-
mkdocstrings_python-1.
|
|
182
|
-
mkdocstrings_python-1.
|
|
183
|
-
mkdocstrings_python-1.
|
|
180
|
+
mkdocstrings_python-1.12.0.dist-info/METADATA,sha256=gvGESAKNRpK2IYHWb_hMLMuIjX3CZii9Okkc9DjEIX0,5647
|
|
181
|
+
mkdocstrings_python-1.12.0.dist-info/WHEEL,sha256=pM0IBB6ZwH3nkEPhtcp50KvKNX-07jYtnb1g1m6Z4Co,90
|
|
182
|
+
mkdocstrings_python-1.12.0.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
|
|
183
|
+
mkdocstrings_python-1.12.0.dist-info/licenses/LICENSE,sha256=JGb4pdPEM8TTjjhr-uNCO7oXkiVrwG5Pz0JamcjNF_s,754
|
|
184
|
+
mkdocstrings_python-1.12.0.dist-info/RECORD,,
|
{mkdocstrings_python-1.11.0.dist-info → mkdocstrings_python-1.12.0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|