pdoc 14.7.0__py3-none-any.whl → 15.0.1__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.
- pdoc/__init__.py +1 -1
- pdoc/__main__.py +5 -6
- pdoc/_compat.py +0 -88
- pdoc/doc.py +2 -2
- pdoc/doc_ast.py +2 -3
- pdoc/doc_pyi.py +1 -2
- pdoc/doc_types.py +1 -1
- pdoc/docstrings.py +1 -2
- pdoc/extract.py +7 -5
- pdoc/render.py +1 -1
- pdoc/render_helpers.py +3 -4
- pdoc/templates/content.css +7 -0
- pdoc/templates/default/module.html.jinja2 +5 -1
- pdoc/templates/mermaid.html.jinja2 +1 -1
- pdoc/web.py +3 -4
- {pdoc-14.7.0.dist-info → pdoc-15.0.1.dist-info}/METADATA +4 -17
- {pdoc-14.7.0.dist-info → pdoc-15.0.1.dist-info}/RECORD +21 -21
- {pdoc-14.7.0.dist-info → pdoc-15.0.1.dist-info}/WHEEL +1 -1
- {pdoc-14.7.0.dist-info → pdoc-15.0.1.dist-info}/LICENSE +0 -0
- {pdoc-14.7.0.dist-info → pdoc-15.0.1.dist-info}/entry_points.txt +0 -0
- {pdoc-14.7.0.dist-info → pdoc-15.0.1.dist-info}/top_level.txt +0 -0
pdoc/__init__.py
CHANGED
@@ -481,7 +481,7 @@ You can find an example in [`examples/library-usage`](https://github.com/mitmpro
|
|
481
481
|
from __future__ import annotations
|
482
482
|
|
483
483
|
__docformat__ = "markdown" # explicitly disable rST processing in the examples above.
|
484
|
-
__version__ = "
|
484
|
+
__version__ = "15.0.1" # this is read from setup.py
|
485
485
|
|
486
486
|
from pathlib import Path
|
487
487
|
from typing import overload
|
pdoc/__main__.py
CHANGED
@@ -7,7 +7,6 @@ import subprocess
|
|
7
7
|
import sys
|
8
8
|
import warnings
|
9
9
|
|
10
|
-
from pdoc._compat import BooleanOptionalAction
|
11
10
|
import pdoc.doc
|
12
11
|
import pdoc.extract
|
13
12
|
import pdoc.render
|
@@ -57,7 +56,7 @@ renderopts.add_argument(
|
|
57
56
|
)
|
58
57
|
renderopts.add_argument(
|
59
58
|
"--include-undocumented",
|
60
|
-
action=BooleanOptionalAction,
|
59
|
+
action=argparse.BooleanOptionalAction,
|
61
60
|
default=True,
|
62
61
|
help="Show classes/functions/variables that do not have a docstring.",
|
63
62
|
)
|
@@ -98,25 +97,25 @@ renderopts.add_argument(
|
|
98
97
|
)
|
99
98
|
renderopts.add_argument(
|
100
99
|
"--math",
|
101
|
-
action=BooleanOptionalAction,
|
100
|
+
action=argparse.BooleanOptionalAction,
|
102
101
|
default=False,
|
103
102
|
help="Include MathJax from a CDN to enable math formula rendering.",
|
104
103
|
)
|
105
104
|
renderopts.add_argument(
|
106
105
|
"--mermaid",
|
107
|
-
action=BooleanOptionalAction,
|
106
|
+
action=argparse.BooleanOptionalAction,
|
108
107
|
default=False,
|
109
108
|
help="Include Mermaid.js from a CDN to enable Mermaid diagram rendering.",
|
110
109
|
)
|
111
110
|
renderopts.add_argument(
|
112
111
|
"--search",
|
113
|
-
action=BooleanOptionalAction,
|
112
|
+
action=argparse.BooleanOptionalAction,
|
114
113
|
default=True,
|
115
114
|
help="Enable search functionality if multiple modules are documented.",
|
116
115
|
)
|
117
116
|
renderopts.add_argument(
|
118
117
|
"--show-source",
|
119
|
-
action=BooleanOptionalAction,
|
118
|
+
action=argparse.BooleanOptionalAction,
|
120
119
|
default=True,
|
121
120
|
help='Display "View Source" buttons.',
|
122
121
|
)
|
pdoc/_compat.py
CHANGED
@@ -1,21 +1,6 @@
|
|
1
1
|
# fmt: off
|
2
2
|
import sys
|
3
3
|
|
4
|
-
if sys.version_info >= (3, 9):
|
5
|
-
from functools import cache
|
6
|
-
else: # pragma: no cover
|
7
|
-
from functools import lru_cache
|
8
|
-
|
9
|
-
cache = lru_cache(maxsize=None)
|
10
|
-
|
11
|
-
if sys.version_info >= (3, 9):
|
12
|
-
from ast import unparse as ast_unparse
|
13
|
-
else: # pragma: no cover
|
14
|
-
from astunparse import unparse as _unparse
|
15
|
-
|
16
|
-
def ast_unparse(t): # type: ignore
|
17
|
-
return _unparse(t).strip("\t\n \"'")
|
18
|
-
|
19
4
|
if sys.version_info >= (3, 12):
|
20
5
|
from ast import TypeAlias as ast_TypeAlias
|
21
6
|
else: # pragma: no cover
|
@@ -34,33 +19,12 @@ else: # pragma: no cover
|
|
34
19
|
class TypeAlias:
|
35
20
|
pass
|
36
21
|
|
37
|
-
if sys.version_info >= (3, 9):
|
38
|
-
from types import GenericAlias
|
39
|
-
else: # pragma: no cover
|
40
|
-
from typing import _GenericAlias as GenericAlias
|
41
|
-
|
42
22
|
if sys.version_info >= (3, 10):
|
43
23
|
from types import UnionType # type: ignore
|
44
24
|
else: # pragma: no cover
|
45
25
|
class UnionType:
|
46
26
|
pass
|
47
27
|
|
48
|
-
if sys.version_info >= (3, 9):
|
49
|
-
removesuffix = str.removesuffix
|
50
|
-
else: # pragma: no cover
|
51
|
-
def removesuffix(x: str, suffix: str):
|
52
|
-
if x.endswith(suffix):
|
53
|
-
x = x[: -len(suffix)]
|
54
|
-
return x
|
55
|
-
|
56
|
-
if sys.version_info >= (3, 9):
|
57
|
-
removeprefix = str.removeprefix
|
58
|
-
else: # pragma: no cover
|
59
|
-
def removeprefix(x: str, prefix: str):
|
60
|
-
if x.startswith(prefix):
|
61
|
-
x = x[len(prefix):]
|
62
|
-
return x
|
63
|
-
|
64
28
|
|
65
29
|
if (3, 9) <= sys.version_info < (3, 9, 8) or (3, 10) <= sys.version_info < (3, 10, 1): # pragma: no cover
|
66
30
|
import inspect
|
@@ -76,53 +40,6 @@ if (3, 9) <= sys.version_info < (3, 9, 8) or (3, 10) <= sys.version_info < (3, 1
|
|
76
40
|
else:
|
77
41
|
from inspect import formatannotation
|
78
42
|
|
79
|
-
if sys.version_info >= (3, 9):
|
80
|
-
from argparse import BooleanOptionalAction
|
81
|
-
else: # pragma: no cover
|
82
|
-
# https://github.com/python/cpython/pull/27672
|
83
|
-
from argparse import Action
|
84
|
-
|
85
|
-
class BooleanOptionalAction(Action): # pragma: no cover
|
86
|
-
def __init__(self,
|
87
|
-
option_strings,
|
88
|
-
dest,
|
89
|
-
default=None,
|
90
|
-
type=None,
|
91
|
-
choices=None,
|
92
|
-
required=False,
|
93
|
-
help=None,
|
94
|
-
metavar=None):
|
95
|
-
|
96
|
-
_option_strings = []
|
97
|
-
for option_string in option_strings:
|
98
|
-
_option_strings.append(option_string)
|
99
|
-
|
100
|
-
if option_string.startswith('--'):
|
101
|
-
option_string = '--no-' + option_string[2:]
|
102
|
-
_option_strings.append(option_string)
|
103
|
-
|
104
|
-
if help is not None and default is not None:
|
105
|
-
help += " (default: %(default)s)"
|
106
|
-
|
107
|
-
super().__init__(
|
108
|
-
option_strings=_option_strings,
|
109
|
-
dest=dest,
|
110
|
-
nargs=0,
|
111
|
-
default=default,
|
112
|
-
type=type,
|
113
|
-
choices=choices,
|
114
|
-
required=required,
|
115
|
-
help=help,
|
116
|
-
metavar=metavar)
|
117
|
-
|
118
|
-
def __call__(self, parser, namespace, values, option_string=None):
|
119
|
-
if option_string in self.option_strings:
|
120
|
-
setattr(namespace, self.dest, not option_string.startswith('--no-'))
|
121
|
-
|
122
|
-
def format_usage(self):
|
123
|
-
return ' | '.join(self.option_strings)
|
124
|
-
|
125
|
-
|
126
43
|
if sys.version_info >= (3, 10):
|
127
44
|
from typing import is_typeddict
|
128
45
|
else: # pragma: no cover
|
@@ -134,15 +51,10 @@ else: # pragma: no cover
|
|
134
51
|
|
135
52
|
|
136
53
|
__all__ = [
|
137
|
-
"cache",
|
138
|
-
"ast_unparse",
|
139
54
|
"ast_TypeAlias",
|
140
55
|
"TypeAliasType",
|
141
56
|
"TypeAlias",
|
142
|
-
"GenericAlias",
|
143
57
|
"UnionType",
|
144
|
-
"removesuffix",
|
145
58
|
"formatannotation",
|
146
|
-
"BooleanOptionalAction",
|
147
59
|
"is_typeddict",
|
148
60
|
]
|
pdoc/doc.py
CHANGED
@@ -23,6 +23,7 @@ from abc import abstractmethod
|
|
23
23
|
from collections.abc import Callable
|
24
24
|
import dataclasses
|
25
25
|
import enum
|
26
|
+
from functools import cache
|
26
27
|
from functools import cached_property
|
27
28
|
from functools import singledispatchmethod
|
28
29
|
from functools import wraps
|
@@ -48,7 +49,6 @@ from pdoc import doc_pyi
|
|
48
49
|
from pdoc import extract
|
49
50
|
from pdoc._compat import TypeAlias
|
50
51
|
from pdoc._compat import TypeAliasType
|
51
|
-
from pdoc._compat import cache
|
52
52
|
from pdoc._compat import formatannotation
|
53
53
|
from pdoc._compat import is_typeddict
|
54
54
|
from pdoc.doc_types import GenericAlias
|
@@ -445,7 +445,7 @@ class Module(Namespace[types.ModuleType]):
|
|
445
445
|
|
446
446
|
mod = _safe_getattr(obj, "__module__", None)
|
447
447
|
qual = _safe_getattr(obj, "__qualname__", None)
|
448
|
-
if mod and qual and "<locals>" not in qual:
|
448
|
+
if mod and isinstance(qual, str) and "<locals>" not in qual:
|
449
449
|
return mod, qual
|
450
450
|
else:
|
451
451
|
# This might be wrong, but it's the best guess we have.
|
pdoc/doc_ast.py
CHANGED
@@ -10,6 +10,7 @@ import ast
|
|
10
10
|
from collections.abc import Iterable
|
11
11
|
from collections.abc import Iterator
|
12
12
|
from dataclasses import dataclass
|
13
|
+
from functools import cache
|
13
14
|
import inspect
|
14
15
|
from itertools import tee
|
15
16
|
from itertools import zip_longest
|
@@ -23,8 +24,6 @@ import warnings
|
|
23
24
|
import pdoc
|
24
25
|
|
25
26
|
from ._compat import ast_TypeAlias
|
26
|
-
from ._compat import ast_unparse
|
27
|
-
from ._compat import cache
|
28
27
|
|
29
28
|
if TYPE_CHECKING:
|
30
29
|
import pdoc.doc_types
|
@@ -81,7 +80,7 @@ def parse(obj):
|
|
81
80
|
@cache
|
82
81
|
def unparse(tree: ast.AST):
|
83
82
|
"""`ast.unparse`, but cached."""
|
84
|
-
return
|
83
|
+
return ast.unparse(tree)
|
85
84
|
|
86
85
|
|
87
86
|
@dataclass
|
pdoc/doc_pyi.py
CHANGED
@@ -6,6 +6,7 @@ This makes it possible to add type hints for native modules such as modules writ
|
|
6
6
|
|
7
7
|
from __future__ import annotations
|
8
8
|
|
9
|
+
from functools import cache
|
9
10
|
import importlib.util
|
10
11
|
from pathlib import Path
|
11
12
|
import sys
|
@@ -17,8 +18,6 @@ import warnings
|
|
17
18
|
|
18
19
|
from pdoc import doc
|
19
20
|
|
20
|
-
from ._compat import cache
|
21
|
-
|
22
21
|
overload_docstr = typing.overload(lambda: None).__doc__
|
23
22
|
|
24
23
|
|
pdoc/doc_types.py
CHANGED
@@ -14,6 +14,7 @@ import operator
|
|
14
14
|
import sys
|
15
15
|
import types
|
16
16
|
from types import BuiltinFunctionType
|
17
|
+
from types import GenericAlias
|
17
18
|
from types import ModuleType
|
18
19
|
import typing
|
19
20
|
from typing import TYPE_CHECKING
|
@@ -24,7 +25,6 @@ from typing import get_origin
|
|
24
25
|
import warnings
|
25
26
|
|
26
27
|
from . import extract
|
27
|
-
from ._compat import GenericAlias
|
28
28
|
from ._compat import UnionType
|
29
29
|
from .doc_ast import type_checking_sections
|
30
30
|
|
pdoc/docstrings.py
CHANGED
@@ -14,6 +14,7 @@ accompanied by matching snapshot tests in `test/testdata/`.
|
|
14
14
|
from __future__ import annotations
|
15
15
|
|
16
16
|
import base64
|
17
|
+
from functools import cache
|
17
18
|
import inspect
|
18
19
|
import mimetypes
|
19
20
|
import os
|
@@ -23,8 +24,6 @@ from textwrap import dedent
|
|
23
24
|
from textwrap import indent
|
24
25
|
import warnings
|
25
26
|
|
26
|
-
from ._compat import cache
|
27
|
-
|
28
27
|
|
29
28
|
@cache
|
30
29
|
def convert(docstring: str, docformat: str, source_file: Path | None) -> str:
|
pdoc/extract.py
CHANGED
@@ -201,11 +201,13 @@ def mock_some_common_side_effects():
|
|
201
201
|
|
202
202
|
Note that this function must not be used for security purposes, it's easily bypassable.
|
203
203
|
"""
|
204
|
-
with
|
205
|
-
"
|
206
|
-
|
207
|
-
"sys.
|
208
|
-
|
204
|
+
with (
|
205
|
+
patch("subprocess.Popen", new=_PdocDefusedPopen),
|
206
|
+
patch("os.startfile", new=_noop, create=True),
|
207
|
+
patch("sys.stdout", new=io.TextIOWrapper(io.BytesIO())),
|
208
|
+
patch("sys.stderr", new=io.TextIOWrapper(io.BytesIO())),
|
209
|
+
patch("sys.stdin", new=io.TextIOWrapper(io.BytesIO())),
|
210
|
+
):
|
209
211
|
yield
|
210
212
|
|
211
213
|
|
pdoc/render.py
CHANGED
@@ -177,7 +177,7 @@ _default_searchpath = [
|
|
177
177
|
|
178
178
|
env = Environment(
|
179
179
|
loader=FileSystemLoader(_default_searchpath),
|
180
|
-
extensions=[DefaultMacroExtension],
|
180
|
+
extensions=["jinja2.ext.loopcontrols", DefaultMacroExtension],
|
181
181
|
autoescape=True,
|
182
182
|
trim_blocks=True,
|
183
183
|
lstrip_blocks=True,
|
pdoc/render_helpers.py
CHANGED
@@ -4,6 +4,7 @@ from collections.abc import Collection
|
|
4
4
|
from collections.abc import Iterable
|
5
5
|
from collections.abc import Mapping
|
6
6
|
from contextlib import contextmanager
|
7
|
+
from functools import cache
|
7
8
|
import html
|
8
9
|
import inspect
|
9
10
|
import os
|
@@ -28,8 +29,6 @@ from markupsafe import Markup
|
|
28
29
|
import pdoc.markdown2
|
29
30
|
|
30
31
|
from . import docstrings
|
31
|
-
from ._compat import cache
|
32
|
-
from ._compat import removesuffix
|
33
32
|
|
34
33
|
lexer = pygments.lexers.PythonLexer()
|
35
34
|
"""
|
@@ -328,7 +327,7 @@ def linkify(
|
|
328
327
|
plain_text = text.replace(
|
329
328
|
'</span><span class="o">.</span><span class="n">', "."
|
330
329
|
)
|
331
|
-
identifier = removesuffix(
|
330
|
+
identifier = plain_text.removesuffix("()")
|
332
331
|
mod: pdoc.doc.Module = context["module"]
|
333
332
|
|
334
333
|
# Check if this is a relative reference. These cannot be local and need to be resolved.
|
@@ -462,7 +461,7 @@ def link(context: Context, spec: tuple[str, str], text: str | None = None) -> st
|
|
462
461
|
if mod.modulename == modulename:
|
463
462
|
fullname = qualname
|
464
463
|
else:
|
465
|
-
fullname =
|
464
|
+
fullname = f"{modulename}.{qualname}".removesuffix(".")
|
466
465
|
|
467
466
|
if qualname:
|
468
467
|
qualname = f"#{qualname}"
|
pdoc/templates/content.css
CHANGED
@@ -308,6 +308,13 @@ This makes sure that the pdoc styling doesn't leak to the rest of the page when
|
|
308
308
|
margin-left: 2rem;
|
309
309
|
}
|
310
310
|
|
311
|
+
.pdoc .decorator-deprecated {
|
312
|
+
color: #842029;
|
313
|
+
}
|
314
|
+
.pdoc .decorator-deprecated ~ span {
|
315
|
+
filter: grayscale(1) opacity(0.8);
|
316
|
+
}
|
317
|
+
|
311
318
|
.pdoc .name {
|
312
319
|
color: var(--name);
|
313
320
|
font-weight: bold;
|
@@ -162,7 +162,7 @@ See https://pdoc.dev/docs/pdoc/render_helpers.html#DefaultMacroExtension for an
|
|
162
162
|
{% enddefaultmacro %}
|
163
163
|
{% defaultmacro decorators(doc) %}
|
164
164
|
{% for d in doc.decorators if not d.startswith("@_") %}
|
165
|
-
<div class="decorator">{{ d }}</div>
|
165
|
+
<div class="decorator decorator-{{ d[1:].partition("(")[0] }}">{{ d }}</div>
|
166
166
|
{% endfor %}
|
167
167
|
{% enddefaultmacro %}
|
168
168
|
{% defaultmacro function(fn) -%}
|
@@ -266,6 +266,10 @@ See https://pdoc.dev/docs/pdoc/render_helpers.html#DefaultMacroExtension for an
|
|
266
266
|
{# fmt: off #}
|
267
267
|
{% defaultmacro inherited(cls) %}
|
268
268
|
{% for base, members in cls.inherited_members.items() %}
|
269
|
+
{% if base[0] not in all_modules %}
|
270
|
+
{# hide inherited members from modules that are not in the documentation, https://github.com/mitmproxy/pdoc/issues/715 #}
|
271
|
+
{% continue %}
|
272
|
+
{% endif %}
|
269
273
|
{% set m = None %}{# workaround for https://github.com/pallets/jinja/issues/1427 #}
|
270
274
|
{% set member_html %}
|
271
275
|
{% for m in members if is_public(m) | trim %}
|
@@ -6,7 +6,7 @@
|
|
6
6
|
}
|
7
7
|
</style>
|
8
8
|
<script type="module" defer>
|
9
|
-
import mermaid from "https://cdn.jsdelivr.net/npm/mermaid@
|
9
|
+
import mermaid from "https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.esm.min.mjs";
|
10
10
|
|
11
11
|
/* Re-invoke Mermaid when DOM content changes, for example during search. */
|
12
12
|
document.addEventListener("DOMContentLoaded", () => {
|
pdoc/web.py
CHANGED
@@ -10,6 +10,7 @@ from __future__ import annotations
|
|
10
10
|
|
11
11
|
from collections.abc import Iterable
|
12
12
|
from collections.abc import Iterator
|
13
|
+
from functools import cache
|
13
14
|
import http.server
|
14
15
|
import traceback
|
15
16
|
from typing import Mapping
|
@@ -19,8 +20,6 @@ import webbrowser
|
|
19
20
|
from pdoc import doc
|
20
21
|
from pdoc import extract
|
21
22
|
from pdoc import render
|
22
|
-
from pdoc._compat import cache
|
23
|
-
from pdoc._compat import removesuffix
|
24
23
|
|
25
24
|
|
26
25
|
class DocHandler(http.server.BaseHTTPRequestHandler):
|
@@ -52,7 +51,7 @@ class DocHandler(http.server.BaseHTTPRequestHandler):
|
|
52
51
|
self.send_header("content-type", "application/javascript")
|
53
52
|
self.end_headers()
|
54
53
|
return self.server.render_search_index()
|
55
|
-
elif "." in removesuffix(
|
54
|
+
elif "." in path.removesuffix(".html"):
|
56
55
|
# See https://github.com/mitmproxy/pdoc/issues/615: All module separators should be normalized to "/".
|
57
56
|
# We could redirect here, but that would create the impression of a working link, which will fall apart
|
58
57
|
# when pdoc prerenders to static HTML. So we rather fail early.
|
@@ -60,7 +59,7 @@ class DocHandler(http.server.BaseHTTPRequestHandler):
|
|
60
59
|
self.end_headers()
|
61
60
|
return "Not Found: Please normalize all module separators to '/'."
|
62
61
|
else:
|
63
|
-
module_name =
|
62
|
+
module_name = path.lstrip("/").removesuffix(".html").replace("/", ".")
|
64
63
|
if module_name not in self.server.all_modules:
|
65
64
|
self.send_response(404)
|
66
65
|
self.send_header("content-type", "text/html")
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pdoc
|
3
|
-
Version:
|
3
|
+
Version: 15.0.1
|
4
4
|
Summary: API Documentation for Python Projects
|
5
5
|
Author-email: Maximilian Hils <pdoc@maximilianhils.com>
|
6
6
|
License: MIT-0
|
@@ -16,31 +16,18 @@ Classifier: Development Status :: 5 - Production/Stable
|
|
16
16
|
Classifier: Environment :: Console
|
17
17
|
Classifier: Intended Audience :: Developers
|
18
18
|
Classifier: Operating System :: OS Independent
|
19
|
-
Classifier: Programming Language :: Python :: 3.8
|
20
19
|
Classifier: Programming Language :: Python :: 3.9
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
22
21
|
Classifier: Programming Language :: Python :: 3.11
|
23
22
|
Classifier: Programming Language :: Python :: 3.12
|
24
23
|
Classifier: Programming Language :: Python :: 3.13
|
25
24
|
Classifier: Typing :: Typed
|
26
|
-
Requires-Python: >=3.
|
25
|
+
Requires-Python: >=3.9
|
27
26
|
Description-Content-Type: text/markdown
|
28
27
|
License-File: LICENSE
|
29
28
|
Requires-Dist: Jinja2>=2.11.0
|
30
29
|
Requires-Dist: pygments>=2.12.0
|
31
|
-
Requires-Dist: MarkupSafe
|
32
|
-
Requires-Dist: astunparse; python_version < "3.9"
|
33
|
-
Provides-Extra: dev
|
34
|
-
Requires-Dist: tox; extra == "dev"
|
35
|
-
Requires-Dist: ruff; extra == "dev"
|
36
|
-
Requires-Dist: mypy; extra == "dev"
|
37
|
-
Requires-Dist: types-pygments; extra == "dev"
|
38
|
-
Requires-Dist: pytest; extra == "dev"
|
39
|
-
Requires-Dist: pytest-cov; extra == "dev"
|
40
|
-
Requires-Dist: pytest-timeout; extra == "dev"
|
41
|
-
Requires-Dist: hypothesis; extra == "dev"
|
42
|
-
Requires-Dist: pygments>=2.14.0; extra == "dev"
|
43
|
-
Requires-Dist: pdoc-pyo3-sample-library==1.0.11; extra == "dev"
|
30
|
+
Requires-Dist: MarkupSafe>=1.1.1
|
44
31
|
|
45
32
|
<p align="center">
|
46
33
|
<a href="https://pdoc.dev/"><img alt="pdoc" src="https://pdoc.dev/logo.svg" width="200" height="100" /></a>
|
@@ -65,7 +52,7 @@ API Documentation for Python Projects.
|
|
65
52
|
pip install pdoc
|
66
53
|
```
|
67
54
|
|
68
|
-
pdoc is compatible with Python 3.
|
55
|
+
pdoc is compatible with Python 3.9 and newer.
|
69
56
|
|
70
57
|
|
71
58
|
# Usage
|
@@ -1,28 +1,28 @@
|
|
1
|
-
pdoc/__init__.py,sha256=
|
2
|
-
pdoc/__main__.py,sha256=
|
3
|
-
pdoc/_compat.py,sha256=
|
4
|
-
pdoc/doc.py,sha256=
|
5
|
-
pdoc/doc_ast.py,sha256=
|
6
|
-
pdoc/doc_pyi.py,sha256
|
7
|
-
pdoc/doc_types.py,sha256=
|
8
|
-
pdoc/docstrings.py,sha256=
|
9
|
-
pdoc/extract.py,sha256=
|
1
|
+
pdoc/__init__.py,sha256=j8rkSHPnAcGqFnL6CWxEu99QY6DDS6IEkIoVLXzJqnQ,21456
|
2
|
+
pdoc/__main__.py,sha256=DOXWKG7I0M-E9uSs8a--9RGJNI266_2VKZpVQR4paj0,8416
|
3
|
+
pdoc/_compat.py,sha256=iXM2kfvS8oRg30EuA-HYWyVt5iorA5JrJHAhUZvsuu4,1447
|
4
|
+
pdoc/doc.py,sha256=lUjahuUcTXTKBEHxxd0F6L0e4oPHvalh6D5pvHZRW8Q,49865
|
5
|
+
pdoc/doc_ast.py,sha256=WRkdDTWRNz4pJYBpWUqOGL9yZmcMezCR_uJVJ2ST9NU,11357
|
6
|
+
pdoc/doc_pyi.py,sha256=r2QdI8WeUxY6jQ9O4xmL3m1zPVmIpxEAviqLYt_M5gk,5078
|
7
|
+
pdoc/doc_types.py,sha256=LQp2AWXNUOF8chQzrPK1RZlGZNnkNswkagMTyXi9ABs,8465
|
8
|
+
pdoc/docstrings.py,sha256=2s1ao_Ky7pOKgKXmIr7yJfFEIDD_m-5LxoT7yjNmVJs,16384
|
9
|
+
pdoc/extract.py,sha256=Vb9vVjtJ1u6X2wqn2Z_cTObrunQ722T0Kj12nsqVG20,14379
|
10
10
|
pdoc/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
|
-
pdoc/render.py,sha256
|
12
|
-
pdoc/render_helpers.py,sha256=
|
11
|
+
pdoc/render.py,sha256=8vXpDlqzRayJdaH0oU6nA6aApFYeGrtxVLOmCD7EbIU,7081
|
12
|
+
pdoc/render_helpers.py,sha256=LJcMlaJFhKBNRGiwEbtIFbEqlncgXte97wTfxm5zDk0,20365
|
13
13
|
pdoc/search.py,sha256=RGFaRftEQOg1Mw4FEOmJVRY9DhBncBYSFi5r4MSknTM,7248
|
14
|
-
pdoc/web.py,sha256=
|
14
|
+
pdoc/web.py,sha256=eIXR0SpU843D-u_xjrXiQ7vH5Zuda_yWOWV8H5nEaMQ,6853
|
15
15
|
pdoc/markdown2/LICENSE,sha256=BfcOT5Iu-7wDaKcbIta8wkP-pFncOu4yXeBlMfbeYGI,1116
|
16
16
|
pdoc/markdown2/README.md,sha256=-b2NGwLPzTBnaCGPSqRCzHxSrqArlXxGG5w0c6pOqFk,200
|
17
17
|
pdoc/markdown2/__init__.py,sha256=guvOlezAha8NQBH8TFkEwiP4zFy5tsV2NVYiEOWD2jg,159248
|
18
18
|
pdoc/templates/README.md,sha256=ukxrGoYYCIYkScS5j2Dge8c3VEd01AzOiIKq6yl5OqE,1780
|
19
19
|
pdoc/templates/build-search-index.js,sha256=igiRW84j_aRFmGv5j48e8gnWeTgfdL8Rs930vHOUYyU,982
|
20
|
-
pdoc/templates/content.css,sha256=
|
20
|
+
pdoc/templates/content.css,sha256=qKEm-MSpTgcAKP8PRO1vD_YfZDbUcOKpIvuOgDBBMlI,9344
|
21
21
|
pdoc/templates/custom.css,sha256=62cn8AmBJiplFJyAKXoZSlVa1s3lNOjkYwDp20pF-ew,106
|
22
22
|
pdoc/templates/layout.css,sha256=xv7AgPtHiazW7S2AtNebRr2BKmOSPmX2wwcejXBRfQ0,4670
|
23
23
|
pdoc/templates/livereload.html.jinja2,sha256=VHbZWN_dBRgBpaRzszvXbbX278-fzbok0JRIOeLep_E,566
|
24
24
|
pdoc/templates/math.html.jinja2,sha256=Jov3pJu5bnouB3jO1Mqoj6aERFlKwiOlnE_0-z4jycE,998
|
25
|
-
pdoc/templates/mermaid.html.jinja2,sha256=
|
25
|
+
pdoc/templates/mermaid.html.jinja2,sha256=GtfEIvKCrYBxFgVR2R17og4Jw2TP0hmQ0nZLH7QtEww,625
|
26
26
|
pdoc/templates/search.html.jinja2,sha256=6mfYR7S8bI7aprnZFCNvusnji5Zj-QpufaCjSMUQ3Bc,7497
|
27
27
|
pdoc/templates/search.js.jinja2,sha256=pRH-19e80c7Nlu9cKckse4RRruRoYjyiDZscZ3nIdbs,1773
|
28
28
|
pdoc/templates/syntax-highlighting.css,sha256=h8SkYVmzf9s4bZiHDPQPytCBuJCeIOK2Kj17V7fmcjM,4545
|
@@ -30,7 +30,7 @@ pdoc/templates/theme.css,sha256=yjnbtPVmqaifTINsA5sK2a3e1aoFO0UlOMgOSKUgLvI,397
|
|
30
30
|
pdoc/templates/default/error.html.jinja2,sha256=RqH14o6ZV79uBO14gKSjwObXFKKczkcLTMe1orurEJk,970
|
31
31
|
pdoc/templates/default/frame.html.jinja2,sha256=Qp5zlts8Bl-O2f0cxJHH_QdmAkMtJJjNVA0ZU2Mbwl8,2164
|
32
32
|
pdoc/templates/default/index.html.jinja2,sha256=MkzVYMWUuJgscty3jVbDtcEfB1vz-bp3v_sMa5MzevU,2381
|
33
|
-
pdoc/templates/default/module.html.jinja2,sha256=
|
33
|
+
pdoc/templates/default/module.html.jinja2,sha256=LI2I58Kv8s87C4QQ2wZMg2qtelGCRKBQSXteyNSOYQE,13546
|
34
34
|
pdoc/templates/deprecated/README.md,sha256=8HPj4Bu6EPAdHbH5CQVYgcD580zpkhqbwiSFoLAVB1Q,339
|
35
35
|
pdoc/templates/deprecated/bootstrap-reboot.min.css,sha256=-u1DTWljwtvjAc8X-ihFhIixKaPcs4w_uZ_CYvvP9-o,207
|
36
36
|
pdoc/templates/deprecated/box-arrow-in-left.svg,sha256=-u1DTWljwtvjAc8X-ihFhIixKaPcs4w_uZ_CYvvP9-o,207
|
@@ -47,9 +47,9 @@ pdoc/templates/resources/info-circle-fill.svg,sha256=kO3AMXfWtacpJPzC8Pvihf46OZd
|
|
47
47
|
pdoc/templates/resources/lightning-fill.svg,sha256=XEyCtbgxeAlwCezdsf7N0NFd5aMjwqyJJDpaFbYYTFA,265
|
48
48
|
pdoc/templates/resources/navtoggle.svg,sha256=WVR0BJIucX0MgwwEawmfX0qYD1i_dSbUhoGnqPef3jw,187
|
49
49
|
pdoc/templates/resources/pdoc-logo.svg,sha256=w5OsMmytDaA2Fr9CobeQQFxBNx4-wFFHtLvkORj0gjk,6989
|
50
|
-
pdoc-
|
51
|
-
pdoc-
|
52
|
-
pdoc-
|
53
|
-
pdoc-
|
54
|
-
pdoc-
|
55
|
-
pdoc-
|
50
|
+
pdoc-15.0.1.dist-info/LICENSE,sha256=LrhIeJ7gKTDPyOX9YVuZGr9mpmyjpkvqH6LjxvE0szM,898
|
51
|
+
pdoc-15.0.1.dist-info/METADATA,sha256=3zDOYdosrb75oPuPEsrhFiFzhIMR3_wU8eySzSM9Etw,6775
|
52
|
+
pdoc-15.0.1.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
53
|
+
pdoc-15.0.1.dist-info/entry_points.txt,sha256=-bK-S1ZvmqCWqi1hGnsl5nayWkzXB1BEs-Cynh5QZaI,43
|
54
|
+
pdoc-15.0.1.dist-info/top_level.txt,sha256=rg5eIToBHzwTfZZi1E7NVHgie5joQuSuU1rWV0qKS9k,5
|
55
|
+
pdoc-15.0.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|