mkdocstrings-python 1.12.1__py3-none-any.whl → 1.13.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.
@@ -201,7 +201,7 @@ class PythonHandler(BaseHandler):
201
201
  show_signature_annotations (bool): Show the type annotations in methods and functions signatures. Default: `False`.
202
202
  signature_crossrefs (bool): Whether to render cross-references for type annotations in signatures. Default: `False`.
203
203
  separate_signature (bool): Whether to put the whole signature in a code block below the heading.
204
- If Black is installed, the signature is also formatted using it. Default: `False`.
204
+ If a formatter (Black or Ruff) is installed, the signature is also formatted using it. Default: `False`.
205
205
  unwrap_annotated (bool): Whether to unwrap `Annotated` types to show only the type without the annotations. Default: `False`.
206
206
  modernize_annotations (bool): Whether to modernize annotations, for example `Optional[str]` into `str | None`. Default: `False`.
207
207
  """
@@ -469,11 +469,9 @@ class PythonHandler(BaseHandler):
469
469
  pth = str(ext)
470
470
  options = None
471
471
 
472
- if pth.endswith(".py") or ".py:" in pth or "/" in pth or "\\" in pth: # noqa: SIM102
473
- # This is a sytem path. Normalize it.
474
- if not os.path.isabs(pth):
475
- # Make path absolute relative to config file path.
476
- pth = os.path.normpath(os.path.join(base_path, pth))
472
+ if pth.endswith(".py") or ".py:" in pth or "/" in pth or "\\" in pth:
473
+ # This is a system path. Normalize it, make it absolute relative to config file path.
474
+ pth = os.path.abspath(os.path.join(base_path, pth))
477
475
 
478
476
  if options is not None:
479
477
  normalized.append({pth: options})
@@ -6,6 +6,7 @@ import enum
6
6
  import random
7
7
  import re
8
8
  import string
9
+ import subprocess
9
10
  import sys
10
11
  import warnings
11
12
  from functools import lru_cache
@@ -71,11 +72,11 @@ order_map = {
71
72
 
72
73
 
73
74
  def do_format_code(code: str, line_length: int) -> str:
74
- """Format code using Black.
75
+ """Format code.
75
76
 
76
77
  Parameters:
77
78
  code: The code to format.
78
- line_length: The line length to give to Black.
79
+ line_length: The line length.
79
80
 
80
81
  Returns:
81
82
  The same code, formatted.
@@ -83,7 +84,7 @@ def do_format_code(code: str, line_length: int) -> str:
83
84
  code = code.strip()
84
85
  if len(code) < line_length:
85
86
  return code
86
- formatter = _get_black_formatter()
87
+ formatter = _get_formatter()
87
88
  return formatter(code, line_length)
88
89
 
89
90
 
@@ -118,7 +119,7 @@ def _format_signature(name: Markup, signature: str, line_length: int) -> str:
118
119
  # Black cannot format names with dots, so we replace
119
120
  # the whole name with a string of equal length
120
121
  name_length = len(name)
121
- formatter = _get_black_formatter()
122
+ formatter = _get_formatter()
122
123
  formatable = f"def {'x' * name_length}{signature}: pass"
123
124
  formatted = formatter(formatable, line_length)
124
125
 
@@ -137,13 +138,13 @@ def do_format_signature(
137
138
  annotations: bool | None = None,
138
139
  crossrefs: bool = False, # noqa: ARG001
139
140
  ) -> str:
140
- """Format a signature using Black.
141
+ """Format a signature.
141
142
 
142
143
  Parameters:
143
144
  context: Jinja context, passed automatically.
144
145
  callable_path: The path of the callable we render the signature of.
145
146
  function: The function we render the signature of.
146
- line_length: The line length to give to Black.
147
+ line_length: The line length.
147
148
  annotations: Whether to show type annotations.
148
149
  crossrefs: Whether to cross-reference types in the signature.
149
150
 
@@ -169,6 +170,7 @@ def do_format_signature(
169
170
  language="python",
170
171
  inline=False,
171
172
  classes=["doc-signature"],
173
+ linenums=False,
172
174
  ),
173
175
  )
174
176
 
@@ -198,13 +200,13 @@ def do_format_attribute(
198
200
  *,
199
201
  crossrefs: bool = False, # noqa: ARG001
200
202
  ) -> str:
201
- """Format an attribute using Black.
203
+ """Format an attribute.
202
204
 
203
205
  Parameters:
204
206
  context: Jinja context, passed automatically.
205
207
  attribute_path: The path of the callable we render the signature of.
206
208
  attribute: The attribute we render the signature of.
207
- line_length: The line length to give to Black.
209
+ line_length: The line length.
208
210
  crossrefs: Whether to cross-reference types in the signature.
209
211
 
210
212
  Returns:
@@ -230,6 +232,7 @@ def do_format_attribute(
230
232
  language="python",
231
233
  inline=False,
232
234
  classes=["doc-signature"],
235
+ linenums=False,
233
236
  ),
234
237
  )
235
238
 
@@ -432,12 +435,59 @@ def do_filter_objects(
432
435
 
433
436
 
434
437
  @lru_cache(maxsize=1)
435
- def _get_black_formatter() -> Callable[[str, int], str]:
438
+ def _get_formatter() -> Callable[[str, int], str]:
439
+ for formatter_function in [
440
+ _get_black_formatter,
441
+ _get_ruff_formatter,
442
+ ]:
443
+ if (formatter := formatter_function()) is not None:
444
+ return formatter
445
+
446
+ logger.info("Formatting signatures requires either Black or Ruff to be installed.")
447
+ return lambda text, _: text
448
+
449
+
450
+ def _get_ruff_formatter() -> Callable[[str, int], str] | None:
451
+ try:
452
+ from ruff.__main__ import find_ruff_bin
453
+ except ImportError:
454
+ return None
455
+
456
+ try:
457
+ ruff_bin = find_ruff_bin()
458
+ except FileNotFoundError:
459
+ ruff_bin = "ruff"
460
+
461
+ def formatter(code: str, line_length: int) -> str:
462
+ try:
463
+ completed_process = subprocess.run( # noqa: S603
464
+ [
465
+ ruff_bin,
466
+ "format",
467
+ "--config",
468
+ f"line-length={line_length}",
469
+ "--stdin-filename",
470
+ "file.py",
471
+ "-",
472
+ ],
473
+ check=True,
474
+ capture_output=True,
475
+ text=True,
476
+ input=code,
477
+ )
478
+ except subprocess.CalledProcessError:
479
+ return code
480
+ else:
481
+ return completed_process.stdout
482
+
483
+ return formatter
484
+
485
+
486
+ def _get_black_formatter() -> Callable[[str, int], str] | None:
436
487
  try:
437
488
  from black import InvalidInput, Mode, format_str
438
489
  except ModuleNotFoundError:
439
- logger.info("Formatting signatures requires Black to be installed.")
440
- return lambda text, _: text
490
+ return None
441
491
 
442
492
  def formatter(code: str, line_length: int) -> str:
443
493
  mode = Mode(line_length=line_length)
@@ -592,7 +642,7 @@ def do_as_modules_section(
592
642
  description=module.docstring.value.split("\n", 1)[0] if module.docstring else "",
593
643
  )
594
644
  for module in modules
595
- if not check_public or module
645
+ if not check_public or module.is_public
596
646
  ],
597
647
  )
598
648
 
@@ -52,7 +52,7 @@ Context:
52
52
  <span class="doc doc-object-name doc-attribute-name">{{ attribute_name }}</span>
53
53
  {% else %}
54
54
  {%+ filter highlight(language="python", inline=True) %}
55
- {{ attribute_name }}{% if attribute.annotation %}: {{ attribute.annotation }}{% endif %}
55
+ {{ attribute_name }}{% if attribute.annotation and config.show_signature_annotations %}: {{ attribute.annotation }}{% endif %}
56
56
  {% if attribute.value %} = {{ attribute.value }}{% endif %}
57
57
  {% endfilter %}
58
58
  {% endif %}
@@ -18,7 +18,7 @@ Context:
18
18
  {% endblock logs %}
19
19
 
20
20
  <div class="doc doc-object doc-class">
21
- {% with obj = class, html_id = class.path %}
21
+ {% with obj = class, html_id = class.path, all_members = class.all_members %}
22
22
 
23
23
  {% if root %}
24
24
  {% set show_full_path = config.show_root_full_path %}
@@ -49,8 +49,8 @@ Context:
49
49
  {% if config.show_symbol_type_heading %}<code class="doc-symbol doc-symbol-heading doc-symbol-class"></code>{% endif %}
50
50
  {% if config.separate_signature %}
51
51
  <span class="doc doc-object-name doc-class-name">{{ class_name }}</span>
52
- {% elif config.merge_init_into_class and "__init__" in class.all_members %}
53
- {% with function = class.all_members["__init__"] %}
52
+ {% elif config.merge_init_into_class and "__init__" in all_members %}
53
+ {% with function = all_members["__init__"] %}
54
54
  {%+ filter highlight(language="python", inline=True) %}
55
55
  {{ class_name }}{% include "signature"|get_template with context %}
56
56
  {% endfilter %}
@@ -76,13 +76,26 @@ Context:
76
76
  {#- Signature block.
77
77
 
78
78
  This block renders the signature for the class.
79
+ Overloads of the `__init__` method are rendered if `merge_init_into_class` is enabled.
80
+ The actual `__init__` method signature is only rendered if `separate_signature` is also enabled.
79
81
  -#}
80
- {% if config.separate_signature and config.merge_init_into_class %}
81
- {% if "__init__" in class.all_members %}
82
- {% with function = class.all_members["__init__"] %}
83
- {% filter format_signature(function, config.line_length, crossrefs=config.signature_crossrefs) %}
84
- {{ class.name }}
85
- {% endfilter %}
82
+ {% if config.merge_init_into_class %}
83
+ {% if "__init__" in all_members %}
84
+ {% with function = all_members["__init__"] %}
85
+ {% if function.overloads %}
86
+ <div class="doc-overloads">
87
+ {% for overload in function.overloads %}
88
+ {% filter format_signature(overload, config.line_length, annotations=True, crossrefs=config.signature_crossrefs) %}
89
+ {{ class.name }}
90
+ {% endfilter %}
91
+ {% endfor %}
92
+ </div>
93
+ {% endif %}
94
+ {% if config.separate_signature %}
95
+ {% filter format_signature(function, config.line_length, crossrefs=config.signature_crossrefs) %}
96
+ {{ class.name }}
97
+ {% endfilter %}
98
+ {% endif %}
86
99
  {% endwith %}
87
100
  {% endif %}
88
101
  {% endif %}
@@ -132,13 +145,17 @@ Context:
132
145
  {% include "docstring"|get_template with context %}
133
146
  {% endwith %}
134
147
  {% if config.merge_init_into_class %}
135
- {% if "__init__" in class.all_members and class.all_members["__init__"].has_docstring %}
136
- {% with function = class.all_members["__init__"] %}
137
- {% with obj = function, docstring_sections = function.docstring.parsed %}
138
- {% include "docstring"|get_template with context %}
148
+ {# We don't want to merge the inherited `__init__` method docstring into the class docstring #}
149
+ {# if such inherited method was not selected through `inherited_members`. #}
150
+ {% with check_members = all_members if (config.inherited_members is true or (config.inherited_members is iterable and "__init__" in config.inherited_members)) else class.members %}
151
+ {% if "__init__" in check_members and check_members["__init__"].has_docstring %}
152
+ {% with function = check_members["__init__"] %}
153
+ {% with obj = function, docstring_sections = function.docstring.parsed %}
154
+ {% include "docstring"|get_template with context %}
155
+ {% endwith %}
139
156
  {% endwith %}
140
- {% endwith %}
141
- {% endif %}
157
+ {% endif %}
158
+ {% endwith %}
142
159
  {% endif %}
143
160
  {% endblock docstring %}
144
161
 
@@ -157,8 +174,8 @@ Context:
157
174
  -#}
158
175
  {% if config.show_source %}
159
176
  {% if config.merge_init_into_class %}
160
- {% if "__init__" in class.all_members and class.all_members["__init__"].source %}
161
- {% with init = class.all_members["__init__"] %}
177
+ {% if "__init__" in all_members and all_members["__init__"].source %}
178
+ {% with init = all_members["__init__"] %}
162
179
  <details class="quote">
163
180
  <summary>Source code in <code>
164
181
  {%- if init.relative_filepath.is_absolute() -%}
@@ -23,6 +23,6 @@ Context:
23
23
  {% if section_type.value == "text" %}
24
24
  {{ sub_section|convert_markdown(heading_level, html_id, autoref_hook=autoref_hook) }}
25
25
  {% elif section_type.value == "examples" %}
26
- {{ sub_section|highlight(language="pycon", linenums=False) }}
26
+ {{ sub_section|highlight(language="pycon") }}
27
27
  {% endif %}
28
28
  {% endfor %}
@@ -32,15 +32,16 @@ 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 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 -%}
35
+ {%- if not signature -%}
36
+ {#- Always render cross-references outside of signatures. We don't need to stash them. -#}
37
+ <autoref identifier="{{ path }}" optional{% if title != path %} hover{% endif %}>{{ title }}</autoref>
38
+ {%- elif config.signature_crossrefs -%}
39
+ {#- We're in a signature and cross-references are enabled, we must render one and stash it. -#}
40
+ {%- filter stash_crossref(length=title|length) -%}
41
41
  <autoref identifier="{{ path }}" optional{% if title != path %} hover{% endif %}>{{ title }}</autoref>
42
- {%- endif -%}
42
+ {%- endfilter -%}
43
43
  {%- else -%}
44
+ {#- We're in a signature but cross-references are disabled, we just render the title. -#}
44
45
  {{ title }}
45
46
  {%- endif -%}
46
47
  {%- if not loop.last -%}.{%- endif -%}
@@ -72,27 +72,27 @@ Context:
72
72
  {%- endif -%}
73
73
 
74
74
  {#- Prepare name. -#}
75
- {%- set param_name -%}
75
+ {%- set param_prefix -%}
76
76
  {%- if parameter.kind.value == "variadic positional" -%}
77
77
  *
78
78
  {%- elif parameter.kind.value == "variadic keyword" -%}
79
79
  **
80
80
  {%- endif -%}
81
- {{ parameter.name }}
82
81
  {%- endset -%}
83
82
 
84
83
  {#- Render parameter name with optional cross-reference to its heading. -#}
84
+ {{ param_prefix }}
85
85
  {%- if config.separate_signature and config.parameter_headings and config.signature_crossrefs -%}
86
- {%- filter stash_crossref(length=param_name|length) -%}
86
+ {%- filter stash_crossref(length=parameter.name|length) -%}
87
87
  {%- with func_path = function.path -%}
88
88
  {%- if config.merge_init_into_class and func_path.endswith(".__init__") -%}
89
89
  {%- set func_path = func_path[:-9] -%}
90
90
  {%- endif -%}
91
- <autoref identifier="{{ func_path }}({{ param_name }})" optional>{{ param_name }}</autoref>
91
+ <autoref identifier="{{ func_path }}({{ param_prefix }}{{ parameter.name }})" optional>{{ parameter.name }}</autoref>
92
92
  {%- endwith -%}
93
93
  {%- endfilter -%}
94
94
  {%- else -%}
95
- {{ param_name }}
95
+ {{ parameter.name }}
96
96
  {%- endif -%}
97
97
 
98
98
  {#- Render parameter annotation. -#}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mkdocstrings-python
3
- Version: 1.12.1
3
+ Version: 1.13.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
@@ -41,7 +41,6 @@ Description-Content-Type: text/markdown
41
41
  [![ci](https://github.com/mkdocstrings/python/workflows/ci/badge.svg)](https://github.com/mkdocstrings/python/actions?query=workflow%3Aci)
42
42
  [![documentation](https://img.shields.io/badge/docs-mkdocs-708FCC.svg?style=flat)](https://mkdocstrings.github.io/python/)
43
43
  [![pypi version](https://img.shields.io/pypi/v/mkdocstrings-python.svg)](https://pypi.org/project/mkdocstrings-python/)
44
- [![gitpod](https://img.shields.io/badge/gitpod-workspace-708FCC.svg?style=flat)](https://gitpod.io/#https://github.com/mkdocstrings/python)
45
44
  [![gitter](https://badges.gitter.im/join%20chat.svg)](https://app.gitter.im/#/room/#python:gitter.im)
46
45
 
47
46
  ---
@@ -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=jz8mjS1ePwA8Mpb0gEHY84DxFQRXsw4EvaJsE0ZBQdw,25152
3
+ mkdocstrings_handlers/python/handler.py,sha256=_TPFLp0axS9KgycX5uYNMOOIi0lEuQo1nHroK8OzCfc,25087
4
4
  mkdocstrings_handlers/python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
- mkdocstrings_handlers/python/rendering.py,sha256=5wqL8VFwrRuScNDP2n-uL0xS2-URfw8MiXVywQcCG8U,20584
5
+ mkdocstrings_handlers/python/rendering.py,sha256=Qjn1JWO2YmkttmbLYKCI_pioozdmmWju8lWxk-keyOA,21801
6
6
  mkdocstrings_handlers/python/templates/material/_base/attribute.html,sha256=nn0671f4bE7VqnTs-VQL3SGPACWAxb2uJBRcP2nwYng,427
7
- mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja,sha256=_NTap6NDkJUMpJJaQ4mCIzsxVWwkv4Z6ZdaCxLe34mo,4361
7
+ mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja,sha256=rrKFc6au2wYyGbI6ttnQKqHgt3P3xBd28aGxwI5N9SM,4399
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=DVjmOqwm3O3rTT3MPpjuX2Dc538XK9CmEVD8JaDJLDg,7587
11
+ mkdocstrings_handlers/python/templates/material/_base/class.html.jinja,sha256=YXXAUT98U9W7U9jVVRGHSuIJAAXFlSihPqH3v69AL0M,8683
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
@@ -18,7 +18,7 @@ mkdocstrings_handlers/python/templates/material/_base/docstring/attributes.html.
18
18
  mkdocstrings_handlers/python/templates/material/_base/docstring/classes.html,sha256=rqwypiSrquMy6vJfQ5alYRBnH4w0ZxS01HXflFjakvw,451
19
19
  mkdocstrings_handlers/python/templates/material/_base/docstring/classes.html.jinja,sha256=WcH-rEO_zabmCEVpa1OiA0an58dG4sTM5p8KMRJuhvE,3156
20
20
  mkdocstrings_handlers/python/templates/material/_base/docstring/examples.html,sha256=8z1IC698vA4J_pJU5s71Hv6FNMRkeL-W4MWo_kiN4C8,454
21
- mkdocstrings_handlers/python/templates/material/_base/docstring/examples.html.jinja,sha256=3_Ql_2ppRCMTwNWBdJu0dpLiLvGmdlX2QgHe9At2D5Y,987
21
+ mkdocstrings_handlers/python/templates/material/_base/docstring/examples.html.jinja,sha256=9aaFdDYHL81emSuuofyvs0mHEI2VyDJd1MY2EpJfm_w,971
22
22
  mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html,sha256=SGnlViyisdxaA5l-ALfV-bRNHcdXIWqO-j87uZhwbUI,457
23
23
  mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html.jinja,sha256=BwFUYMw7-3I8dQbJbzRA-2nnwKAXTJvEe8FMqZZheik,3695
24
24
  mkdocstrings_handlers/python/templates/material/_base/docstring/modules.html,sha256=JWBpk6tJN12tEZVqZ8kK2L_mmk0lkIdWuYYtfw_4dYQ,451
@@ -38,7 +38,7 @@ 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=1r4Lri9PcTNJmflCBwEKFlkgTWsh167SUKdB9G8H2uo,4134
41
+ mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja,sha256=ce05dGs_UqKmXyvbDAOQHBH51vsA3kx0LZdpRH7Vx8Y,4388
42
42
  mkdocstrings_handlers/python/templates/material/_base/function.html,sha256=tFpXIt5sIhjXjTCXhtYZ4cGpbgdbaIdbm8HdP9Pccik,424
43
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
@@ -54,7 +54,7 @@ mkdocstrings_handlers/python/templates/material/_base/languages/zh.html.jinja,sh
54
54
  mkdocstrings_handlers/python/templates/material/_base/module.html,sha256=cEq3DXlXfZ57NAK6CXA7OxtyeffgfUpWVvLW1O1aNzw,418
55
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=w1xl7dBzjkK4KGVMOoVngo_XcZQNmWlD3b7si3HVV0Q,4957
57
+ mkdocstrings_handlers/python/templates/material/_base/signature.html.jinja,sha256=hM91ahhbLJAVpX2Rw8_TDRjbBW5k8d0v8j7LeFQpb-c,4989
58
58
  mkdocstrings_handlers/python/templates/material/_base/summary.html,sha256=2OR2p8zJ5I0mkknX7ZY7qj59orJH4e9HVg0S5DaUUsU,421
59
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
@@ -177,8 +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.12.1.dist-info/METADATA,sha256=sVnWfW0sFv83Wz0i1E0jdy_mmYWPf38zqwe7sfFOc0U,5647
181
- mkdocstrings_python-1.12.1.dist-info/WHEEL,sha256=pM0IBB6ZwH3nkEPhtcp50KvKNX-07jYtnb1g1m6Z4Co,90
182
- mkdocstrings_python-1.12.1.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
183
- mkdocstrings_python-1.12.1.dist-info/licenses/LICENSE,sha256=JGb4pdPEM8TTjjhr-uNCO7oXkiVrwG5Pz0JamcjNF_s,754
184
- mkdocstrings_python-1.12.1.dist-info/RECORD,,
180
+ mkdocstrings_python-1.13.0.dist-info/METADATA,sha256=UGtzbyrGOolYRFCiTvYoxggi8-zuAdxjF1Dj8eaUrSQ,5507
181
+ mkdocstrings_python-1.13.0.dist-info/WHEEL,sha256=thaaA2w1JzcGC48WYufAs8nrYZjJm8LqNfnXFOFyCC4,90
182
+ mkdocstrings_python-1.13.0.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
183
+ mkdocstrings_python-1.13.0.dist-info/licenses/LICENSE,sha256=JGb4pdPEM8TTjjhr-uNCO7oXkiVrwG5Pz0JamcjNF_s,754
184
+ mkdocstrings_python-1.13.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: pdm-backend (2.4.2)
2
+ Generator: pdm-backend (2.4.3)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any