Skip to content

Commit e5ff70f

Browse files
committed
Autodoc'ed (for now).
Also evade tobgu/pyrsistent#267 until it's merged.
1 parent 191457a commit e5ff70f

File tree

4 files changed

+74
-0
lines changed

4 files changed

+74
-0
lines changed

docs/api.rst

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
API Reference
2+
=============
3+
4+
.. automodule:: referencing
5+
:members:
6+
:undoc-members:
7+
:imported-members:
8+
9+
.. autoclass:: referencing._core.Resolver
10+
:members:
11+
:undoc-members:
12+
13+
14+
Submodules
15+
----------
16+
17+
referencing.jsonschema
18+
^^^^^^^^^^^^^^^^^^^^^^
19+
20+
.. automodule:: referencing.jsonschema
21+
:members:
22+
:undoc-members:
23+
24+
25+
referencing.typing
26+
^^^^^^^^^^^^^^^^^^
27+
28+
.. automodule:: referencing.typing
29+
:members:
30+
:undoc-members:

docs/conf.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import re
44

55
from hyperlink import URL
6+
from sphinx.ext.intersphinx import resolve_reference_in_inventory
67

78
DOCS = Path(__file__).parent
89

@@ -40,6 +41,43 @@
4041
html_theme = "furo"
4142
html_static_path = []
4243

44+
# See sphinx-doc/sphinx#10785
45+
_TYPE_ALIASES = {
46+
"Schema",
47+
}
48+
49+
50+
def _resolve_broken_refs(app, env, node, contnode):
51+
if node["refdomain"] != "py":
52+
return
53+
54+
# Evade tobgu/pyrsistent#267
55+
if node["reftarget"].startswith("pyrsistent.typing."):
56+
node["reftarget"] = node["reftarget"].replace(".typing.", ".")
57+
return resolve_reference_in_inventory(
58+
env, "pyrsistent", node, contnode
59+
)
60+
elif node["reftarget"] == "PList":
61+
node["reftarget"] = "pyrsistent.PList"
62+
return resolve_reference_in_inventory(
63+
env, "pyrsistent", node, contnode
64+
)
65+
elif node["reftarget"] in _TYPE_ALIASES:
66+
return app.env.get_domain("py").resolve_xref(
67+
env,
68+
node["refdoc"],
69+
app.builder,
70+
"data",
71+
node["reftarget"],
72+
node,
73+
contnode,
74+
)
75+
76+
77+
def setup(app):
78+
app.connect("missing-reference", _resolve_broken_refs)
79+
80+
4381
# -- Extension configuration -------------------------------------------------
4482

4583
# -- Options for autodoc extension -------------------------------------------
@@ -56,6 +94,7 @@
5694
# -- Options for intersphinx extension ---------------------------------------
5795

5896
intersphinx_mapping = {
97+
"pyrsistent": ("https://pyrsistent.readthedocs.io/en/latest/", None),
5998
"python": ("https://docs.python.org/", None),
6099
}
61100

docs/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,5 @@ Contents
77
.. toctree::
88
:glob:
99
:maxdepth: 2
10+
11+
api

referencing/typing.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
from referencing._core import Resolver
1414

1515

16+
#: A JSON Schema which is a JSON object
1617
ObjectSchema = Mapping[str, Any]
18+
19+
#: A JSON Schema of any kind
1720
Schema = Union[bool, ObjectSchema]
1821

1922

0 commit comments

Comments
 (0)