mkdocstrings-python 2.0.8__py3-none-any.whl → 2.0.9__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.
@@ -365,7 +365,7 @@ class PythonHandler(BaseHandler):
365
365
  The aliases.
366
366
  """
367
367
  if "(" in identifier:
368
- identifier, parameter = identifier.split("(", 1)
368
+ identifier, _, parameter = identifier.partition("(")
369
369
  parameter = parameter.removesuffix(")")
370
370
  else:
371
371
  parameter = ""
@@ -373,15 +373,18 @@ class PythonHandler(BaseHandler):
373
373
  data = self._modules_collection[identifier]
374
374
  except (KeyError, AliasResolutionError):
375
375
  return ()
376
- aliases = [data.path]
376
+ aliases: dict[str, object] = {data.path: None}
377
377
  try:
378
- for alias in [data.canonical_path, *data.aliases]:
379
- if alias not in aliases:
380
- aliases.append(alias)
378
+ canonical_path = data.canonical_path
379
+ data_aliases = data.aliases
381
380
  except AliasResolutionError:
382
381
  pass
382
+ else:
383
+ aliases[canonical_path] = None
384
+ aliases.update(data_aliases)
383
385
  if parameter:
384
- return tuple(f"{alias}({parameter})" for alias in aliases)
386
+ suffix = f"({parameter})"
387
+ return tuple(alias + suffix for alias in aliases)
385
388
  return tuple(aliases)
386
389
 
387
390
  def normalize_extension_paths(self, extensions: Sequence) -> list[str | dict[str, Any]]:
@@ -125,6 +125,15 @@ class _StashCrossRefFilter:
125
125
  do_stash_crossref = _StashCrossRefFilter()
126
126
  """Filter to stash cross-references (and restore them after formatting and highlighting)."""
127
127
 
128
+ _highlighting_span_re = re.compile(r'<span class="[a-z]{1,2}">')
129
+ _crossref_key_re = re.compile(r"\b_[A-Za-z0-9]{2,}\b")
130
+
131
+
132
+ def _restore_crossrefs(text: str, stash: dict[str, str]) -> str:
133
+ text = _crossref_key_re.sub(lambda match: stash.get(match[0], match[0]), text)
134
+ stash.clear()
135
+ return text
136
+
128
137
 
129
138
  def _format_signature(name: Markup, signature: str, line_length: int) -> str:
130
139
  name = str(name).strip() # type: ignore[assignment]
@@ -199,13 +208,11 @@ def do_format_signature(
199
208
  # Pygments will set an `fm` (function -> magic) CSS class.
200
209
  # To fix this, we replace the CSS class in the first span with `nf`,
201
210
  # unless we already found an `nf` span.
202
- if not re.search(r'<span class="nf">', signature):
203
- signature = re.sub(r'<span class="[a-z]{1,2}">', '<span class="nf">', signature, count=1)
211
+ if '<span class="nf">' not in signature:
212
+ signature = _highlighting_span_re.sub('<span class="nf">', signature, count=1)
204
213
 
205
214
  if stash := env.filters["stash_crossref"].stash:
206
- for key, value in stash.items():
207
- signature = re.sub(rf"\b{key}\b", value, signature)
208
- stash.clear()
215
+ signature = _restore_crossrefs(signature, stash)
209
216
 
210
217
  return signature
211
218
 
@@ -267,9 +274,7 @@ def do_format_attribute(
267
274
  )
268
275
 
269
276
  if stash := env.filters["stash_crossref"].stash:
270
- for key, value in stash.items():
271
- signature = re.sub(rf"\b{key}\b", value, signature)
272
- stash.clear()
277
+ signature = _restore_crossrefs(signature, stash)
273
278
 
274
279
  return signature
275
280
 
@@ -322,13 +327,11 @@ def do_format_type_alias(
322
327
  # but instead as a regular name: `n` CSS class instead of `nc`.
323
328
  # To fix it, we replace the first occurrence of an `n` CSS class
324
329
  # with an `nc` one, unless we found `nc` already.
325
- if not re.search(r'<span class="nc">', signature):
326
- signature = re.sub(r'<span class="[a-z]{1,2}">', '<span class="nc">', signature, count=1)
330
+ if '<span class="nc">' not in signature:
331
+ signature = _highlighting_span_re.sub('<span class="nc">', signature, count=1)
327
332
 
328
333
  if stash := env.filters["stash_crossref"].stash:
329
- for key, value in stash.items():
330
- signature = re.sub(rf"\b{key}\b", value, signature)
331
- stash.clear()
334
+ signature = _restore_crossrefs(signature, stash)
332
335
 
333
336
  return signature
334
337
 
@@ -805,6 +808,11 @@ class AutorefsHook(AutorefsHookInterface):
805
808
  if self.config.relative_crossrefs and identifier.startswith("."): # type: ignore[attr-defined]
806
809
  identifier = identifier[1:]
807
810
  obj = self.current_object
811
+ # Anchor on the docstring's parent: for inherited members the current
812
+ # object is an alias living under the inheriting class, while the
813
+ # docstring was written on the defining object in another tree.
814
+ if self.current_object.docstring is not None and self.current_object.docstring.parent is not None:
815
+ obj = self.current_object.docstring.parent
808
816
  while identifier and identifier[0] == ".":
809
817
  identifier = identifier[1:]
810
818
  if obj.parent is None:
@@ -33,10 +33,13 @@ Context:
33
33
 
34
34
  {% set attribute_name = attribute.path if show_full_path else attribute.name %}
35
35
 
36
+ {% set object_type = "data" if attribute.parent.is_module else "property" if "property" in attribute.labels else "attribute" %}
37
+ {#- Object type in objects inventory. -#}
38
+
36
39
  {% if not root or config.show_root_heading %}
37
40
  {% filter heading(
38
41
  heading_level,
39
- role=("data" if attribute.parent.kind.value == "module" else "attr"),
42
+ role=object_type,
40
43
  id=html_id,
41
44
  class="doc doc-heading",
42
45
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else attribute.name),
@@ -89,7 +92,7 @@ Context:
89
92
 
90
93
  {% if config.show_root_toc_entry %}
91
94
  {% filter heading(heading_level,
92
- role=("data" if attribute.parent.kind.value == "module" else "attr"),
95
+ role=object_type,
93
96
  id=html_id,
94
97
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-attribute"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else attribute_name),
95
98
  hidden=True,
@@ -158,7 +158,7 @@ Context:
158
158
 
159
159
  {% block inheritance_diagram scoped %}
160
160
  {#- Inheritance diagram block.
161
-
161
+
162
162
  This block renders the inheritance diagram for the class,
163
163
  using Mermaid syntax and a bit of JavaScript to make the nodes clickable,
164
164
  linking to the corresponding class documentation.
@@ -38,7 +38,7 @@ Context:
38
38
  {% if config.parameter_headings %}
39
39
  {% filter heading(
40
40
  heading_level + 1,
41
- role="param",
41
+ role="parameter",
42
42
  id=html_id ~ "(" ~ parameter.name ~ ")",
43
43
  class="doc doc-heading doc-heading-parameter",
44
44
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + parameter.name,
@@ -86,7 +86,7 @@ Context:
86
86
  {% if config.parameter_headings %}
87
87
  {% filter heading(
88
88
  heading_level + 1,
89
- role="param",
89
+ role="parameter",
90
90
  id=html_id ~ "(" ~ parameter.name ~ ")",
91
91
  class="doc doc-heading doc-heading-parameter",
92
92
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + parameter.name,
@@ -132,7 +132,7 @@ Context:
132
132
  {% if config.parameter_headings %}
133
133
  {% filter heading(
134
134
  heading_level + 1,
135
- role="param",
135
+ role="parameter",
136
136
  id=html_id ~ "(" ~ parameter.name ~ ")",
137
137
  class="doc doc-heading doc-heading-parameter",
138
138
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + parameter.name,
@@ -42,7 +42,7 @@ Context:
42
42
  {% if config.type_parameter_headings %}
43
43
  {% filter heading(
44
44
  heading_level + 1,
45
- role="typeparam",
45
+ role="typeparameter",
46
46
  id=obj.path ~ "[" ~ type_parameter.name ~ "]",
47
47
  class="doc doc-heading doc-heading-type_parameter",
48
48
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-type_parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + type_parameter.name,
@@ -93,7 +93,7 @@ Context:
93
93
  {% if config.type_parameter_headings %}
94
94
  {% filter heading(
95
95
  heading_level + 1,
96
- role="typeparam",
96
+ role="typeparameter",
97
97
  id=obj.path ~ "[" ~ type_parameter.name ~ "]",
98
98
  class="doc doc-heading doc-heading-type_parameter",
99
99
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-type_parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + type_parameter.name,
@@ -156,7 +156,7 @@ Context:
156
156
  {% if config.type_parameter_headings %}
157
157
  {% filter heading(
158
158
  heading_level + 1,
159
- role="typeparam",
159
+ role="typeparameter",
160
160
  id=obj.path ~ "[" ~ type_parameter.name ~ "]",
161
161
  class="doc doc-heading doc-heading-type_parameter",
162
162
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-type_parameter"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + type_parameter.name,
@@ -37,11 +37,13 @@ Context:
37
37
  {#- Brief or full function name depending on configuration. -#}
38
38
  {% set symbol_type = "method" if function.parent.is_class else "function" %}
39
39
  {#- Symbol type: method when parent is a class, function otherwise. -#}
40
+ {% set object_type = symbol_type %}
41
+ {#- Object type in objects inventory. -#}
40
42
 
41
43
  {% if not root or config.show_root_heading %}
42
44
  {% filter heading(
43
45
  heading_level,
44
- role="function",
46
+ role=object_type,
45
47
  id=html_id,
46
48
  class="doc doc-heading",
47
49
  toc_label=(('<code class="doc-symbol doc-symbol-toc doc-symbol-' + symbol_type + '"></code>&nbsp;')|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else function.name),
@@ -106,7 +108,7 @@ Context:
106
108
  {% if config.show_root_toc_entry %}
107
109
  {% filter heading(
108
110
  heading_level,
109
- role="function",
111
+ role=object_type,
110
112
  id=html_id,
111
113
  toc_label=(('<code class="doc-symbol doc-symbol-toc doc-symbol-' + symbol_type + '"></code>&nbsp;')|safe if config.show_symbol_type_toc else '') + (config.toc_label if config.toc_label and root else function.name),
112
114
  hidden=True,
@@ -35,7 +35,7 @@ Context:
35
35
  {% if not root or config.show_root_heading %}
36
36
  {% filter heading(
37
37
  heading_level,
38
- role="typealias",
38
+ role="type",
39
39
  id=html_id,
40
40
  class="doc doc-heading",
41
41
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-type_alias"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + type_alias.name,
@@ -83,7 +83,7 @@ Context:
83
83
  {% else %}
84
84
  {% if config.show_root_toc_entry %}
85
85
  {% filter heading(heading_level,
86
- role="typealias",
86
+ role="type",
87
87
  id=html_id,
88
88
  toc_label=('<code class="doc-symbol doc-symbol-toc doc-symbol-type_alias"></code>&nbsp;'|safe if config.show_symbol_type_toc else '') + type_alias.name,
89
89
  hidden=True,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mkdocstrings-python
3
- Version: 2.0.8
3
+ Version: 2.0.9
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-Expression: ISC
@@ -2,13 +2,13 @@ mkdocstrings_handlers/python/__init__.py,sha256=nMq6EQFwlnoSHY5FZAS0Fpa-fnb_piBv
2
2
  mkdocstrings_handlers/python/_internal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  mkdocstrings_handlers/python/_internal/config.py,sha256=iSnsL-DXqWSm_0YKv-2giDxTdljxZWvDgTGkCo9GBPg,35261
4
4
  mkdocstrings_handlers/python/_internal/debug.py,sha256=A6B3w6LWN22kYtvvbmz7vnh8Pr5hzvtrHhM3-Es8Isg,2882
5
- mkdocstrings_handlers/python/_internal/handler.py,sha256=wmFS4BWvgYsepHo50di7ex5H8TN2Hd5oGZVHD_jZeCk,17044
6
- mkdocstrings_handlers/python/_internal/rendering.py,sha256=PaloOLFj6vZq63R6GEOCItWTfor4JjUEbh0XxJGEdh8,29570
5
+ mkdocstrings_handlers/python/_internal/handler.py,sha256=A80vSRt8LTooP8UIdlgnu0mv7AOJPBjXGUKhqy88OdI,17143
6
+ mkdocstrings_handlers/python/_internal/rendering.py,sha256=Rq3Wpj15KJX-0IvntAFtenVaAgIhyW9yUWiFLXmc5bM,30029
7
7
  mkdocstrings_handlers/python/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja,sha256=oY6HWvWntBLBe5L4jbS8bSRftVuC3jmtF6Iy-8tT5hM,4842
8
+ mkdocstrings_handlers/python/templates/material/_base/attribute.html.jinja,sha256=jKDnwh9FtF9dwVO5iCIXj8NxpUcIhtbqX3EJeqYZXy8,4917
9
9
  mkdocstrings_handlers/python/templates/material/_base/backlinks.html.jinja,sha256=k8eX0lyQmmooaEotjYngdXO8RJldjixvZW30S5jGXOA,2109
10
10
  mkdocstrings_handlers/python/templates/material/_base/children.html.jinja,sha256=1q7RS0i6SkNriRtGX8BC2wzKhp3pPcLVSJWBEUmZOSg,8153
11
- mkdocstrings_handlers/python/templates/material/_base/class.html.jinja,sha256=ZSDeKPYttMyTbZ9udURpJ4tGm2Nl7HOMaCJlVoG2wzs,11675
11
+ mkdocstrings_handlers/python/templates/material/_base/class.html.jinja,sha256=UHLcx86ZNT-jVsqrtxiRcpZ97V7ReueT7ywPP7JiLZ4,11665
12
12
  mkdocstrings_handlers/python/templates/material/_base/docstring.html.jinja,sha256=iKi-31JKoHwG7-w3S88A9YTu9kuV6-c9gwKb8bUtXuw,3440
13
13
  mkdocstrings_handlers/python/templates/material/_base/docstring/admonition.html.jinja,sha256=VFwImgb1toxkjWqyhTNFQbyYE3d11yXI___3vpIu2u0,687
14
14
  mkdocstrings_handlers/python/templates/material/_base/docstring/attributes.html.jinja,sha256=WVy3pU1KGIhk1rFdADmWydj-KUXZW7STC_OWAl0yFyk,4349
@@ -17,16 +17,16 @@ mkdocstrings_handlers/python/templates/material/_base/docstring/examples.html.ji
17
17
  mkdocstrings_handlers/python/templates/material/_base/docstring/functions.html.jinja,sha256=AmPFt0by3CWHL4jBIFNJrVepl1aa467XBVjqqcOUMhM,3842
18
18
  mkdocstrings_handlers/python/templates/material/_base/docstring/modules.html.jinja,sha256=_7s-TBJtv8i8qMkOREilNQ1E1VWab9XW-Y7Zo05OJYk,3311
19
19
  mkdocstrings_handlers/python/templates/material/_base/docstring/other_parameters.html.jinja,sha256=tnzLsC0GpcnVryFDEao2go1U61DbxWAM-ZVKwC6QxTY,4049
20
- mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja,sha256=kKZTWI7DfUWdCEnnzenDc6Rya2WHkPeStMdODjLImpE,7188
20
+ mkdocstrings_handlers/python/templates/material/_base/docstring/parameters.html.jinja,sha256=KG__L1pPosXS_DJp7JgFVpAgmjE4pTE9qlwqCXJ1Xn0,7200
21
21
  mkdocstrings_handlers/python/templates/material/_base/docstring/raises.html.jinja,sha256=uLQdEAcaiItD91eEm9cikdJ319Yt09otEKOr2WdGJx4,3637
22
22
  mkdocstrings_handlers/python/templates/material/_base/docstring/receives.html.jinja,sha256=uhyvkQxAR5JbSgnoh_oglNPm2nb-DsAXi37C7ijUVaU,4765
23
23
  mkdocstrings_handlers/python/templates/material/_base/docstring/returns.html.jinja,sha256=a5wE6A89wt_zBk72yev4Qa_FUQiQ8JMLey4TEZYOJz4,4729
24
24
  mkdocstrings_handlers/python/templates/material/_base/docstring/type_aliases.html.jinja,sha256=SlNRZDplIBDaSKq0u1n0FaEeXyiWJWh89sJf7edblfI,3405
25
- mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html.jinja,sha256=P_M8tvUKMS0DPpkS4GiT2FZq_bujQNIJA1tAjw8VWM0,8596
25
+ mkdocstrings_handlers/python/templates/material/_base/docstring/type_parameters.html.jinja,sha256=M5b3lEdhaqK_iazfzqzK0UJT0kJnhOUAgxrHzDVPIOw,8608
26
26
  mkdocstrings_handlers/python/templates/material/_base/docstring/warns.html.jinja,sha256=evSdVXZwKpHIJ7dnCP3njB0DD7rcJPgTPgeG54jRIUE,3612
27
27
  mkdocstrings_handlers/python/templates/material/_base/docstring/yields.html.jinja,sha256=bo1Fjfw21VZRdf8MPzReIr8sCFPDoBBWQloXJ42IObQ,4699
28
28
  mkdocstrings_handlers/python/templates/material/_base/expression.html.jinja,sha256=zjjO_q9oCQCpVx6iR0adfog_lhQ85uM4oHZDJO_sKqU,6592
29
- mkdocstrings_handlers/python/templates/material/_base/function.html.jinja,sha256=rW-47bNjme32xUWXGmMm6e-eQRsqtjc3BxEQvFxwyL4,6017
29
+ mkdocstrings_handlers/python/templates/material/_base/function.html.jinja,sha256=oEKyREZQnWm9d-f_28qdaOvWZWOaSCjV5OfKvOnYCas,6105
30
30
  mkdocstrings_handlers/python/templates/material/_base/labels.html.jinja,sha256=mue5CMl2WQpagj3aYqbUiAQX0P72aLCgY3MX_zEpE8s,786
31
31
  mkdocstrings_handlers/python/templates/material/_base/language.html.jinja,sha256=7gyknTiapqCM8TjUHdXkQgZMmYwcuy6Ze0pkntE7g8s,617
32
32
  mkdocstrings_handlers/python/templates/material/_base/languages/en.html.jinja,sha256=tzS9C3l1c5liALvpYl7dHOGhtoFpRQwMgm_gAVKcv_Y,1731
@@ -40,7 +40,7 @@ mkdocstrings_handlers/python/templates/material/_base/summary/classes.html.jinja
40
40
  mkdocstrings_handlers/python/templates/material/_base/summary/functions.html.jinja,sha256=zfQtsOcDtbKhXvxsQreGgbVeXAlLHYe6uFo7mWZJaQY,766
41
41
  mkdocstrings_handlers/python/templates/material/_base/summary/modules.html.jinja,sha256=4u9XrIKNm_6UNeqrrfhN49eJgJbUMlPw2_jWfYQlYN8,742
42
42
  mkdocstrings_handlers/python/templates/material/_base/summary/type_aliases.html.jinja,sha256=-RMlGx46brcKwjSTP-AOCGu3DBci0cMHv2AlBXYkQDY,767
43
- mkdocstrings_handlers/python/templates/material/_base/type_alias.html.jinja,sha256=bX-4dduZmiW_DH5Xl416kV0y5QFFA8OsKne8XSglWyA,4109
43
+ mkdocstrings_handlers/python/templates/material/_base/type_alias.html.jinja,sha256=jiingF0j_ATOtY_kY6KicAaxm80byuRaMrnx_BgNyRo,4099
44
44
  mkdocstrings_handlers/python/templates/material/_base/type_parameters.html.jinja,sha256=xdqFBdIUEgfDDVXu_qqvrM9ZFYmi0t9UJ4DwktxTqok,3265
45
45
  mkdocstrings_handlers/python/templates/material/attribute.html.jinja,sha256=HkKz308jpCZj3PffJ5JtZC46rtkNNZ-2bE5zvaQQTRE,43
46
46
  mkdocstrings_handlers/python/templates/material/backlinks.html.jinja,sha256=FVUyYCo5n44JCYp9DRufAtb0RJUQQGnJB-O13wOrkTc,43
@@ -114,8 +114,8 @@ mkdocstrings_handlers/python/templates/readthedocs/languages/en.html.jinja,sha25
114
114
  mkdocstrings_handlers/python/templates/readthedocs/languages/ja.html.jinja,sha256=e_DPZvMvaaJm0QyjTxW8SkBEbhMXBgBiMrLJ1osAwZc,46
115
115
  mkdocstrings_handlers/python/templates/readthedocs/languages/zh.html.jinja,sha256=OuvrkorxuL0gKZNYneann1bwd1Z2i5bBY7SbC496HDw,46
116
116
  mkdocstrings_handlers/python/templates/readthedocs/style.css,sha256=Ds8vF1rSxc2B0c4P10osx4cqXHWMntcSCxmRfX-nfzw,971
117
- mkdocstrings_python-2.0.8.dist-info/METADATA,sha256=_ezNto6WXVYExo2_C15cB4C-wc52RCK9Q-yePs2qemE,12384
118
- mkdocstrings_python-2.0.8.dist-info/WHEEL,sha256=VP-D4TPS230sME9Z3vb3INXvo1yt0924YRm5AOsk_dE,90
119
- mkdocstrings_python-2.0.8.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
120
- mkdocstrings_python-2.0.8.dist-info/licenses/LICENSE,sha256=JGb4pdPEM8TTjjhr-uNCO7oXkiVrwG5Pz0JamcjNF_s,754
121
- mkdocstrings_python-2.0.8.dist-info/RECORD,,
117
+ mkdocstrings_python-2.0.9.dist-info/METADATA,sha256=IbDDrOkyvhr8fjNyc7E1bo5-_ruUIZJRgTLG_kZaI4s,12384
118
+ mkdocstrings_python-2.0.9.dist-info/WHEEL,sha256=Y8xFLOH-FrS4gLE6ON4ti06sl2W_9QUDiRaTK3tfwig,91
119
+ mkdocstrings_python-2.0.9.dist-info/entry_points.txt,sha256=6OYgBcLyFCUgeqLgnvMyOJxPCWzgy7se4rLPKtNonMs,34
120
+ mkdocstrings_python-2.0.9.dist-info/licenses/LICENSE,sha256=JGb4pdPEM8TTjjhr-uNCO7oXkiVrwG5Pz0JamcjNF_s,754
121
+ mkdocstrings_python-2.0.9.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: pdm-backend (2.4.9)
2
+ Generator: pdm-backend (2.4.10)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any