Commit aa6ac71
fix: Load Sphinx inventories whose dispname spans multiple lines
When a display name spans multiple lines, both mkdocstrings and
Sphinx simply print the newline character and then the continuation.
This is because a display name spanning multiple lines is a rare
edge case that was not accounted for in either software. However,
while Sphinx discards any inventory lines that do not parse (such
as the continuation line), mkdocstrings raises an error, causing
the entire inventory file to fail to load.
This continuation line behavior can be seen in the wild in the
OpenEye toolkits inventory file and a few Open Force Field
inventory files. These projects' inventories cannot be used with
mkdocstrings because of the raised error.
Note that in Sphinx, these inventory files are read succesfully,
but the continuation lines are discarded, truncating the display
name. In theory, a continuation line that by chance did parse
correctly would be interpreted by both packages as a new inventory
item.
This commit appends the continuation line to the previous
inventory item display name when it fails to parse. This allows
these inventory files to be loaded while preserving the original
display name. Note that the theoretical continuation line that
parses by chance is not addressed. Round-trip tests and additional
Sphinx tests are added to check the new behavior.
OpenEye Toolkits inventory file: https://docs.eyesopen.com/toolkits/python/objects.inv
Open Force Field Toolkit inventory file: https://docs.openforcefield.org/projects/toolkit/en/stable/objects.inv
BespokeFit inventory file: https://docs.openforcefield.org/projects/bespokefit/en/stable/objects.inv1 parent 3da907c commit aa6ac71
2 files changed
Lines changed: 49 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| 69 | + | |
69 | 70 | | |
70 | | - | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
71 | 79 | | |
72 | 80 | | |
73 | 81 | | |
| 82 | + | |
| 83 | + | |
74 | 84 | | |
75 | 85 | | |
76 | 86 | | |
| |||
167 | 177 | | |
168 | 178 | | |
169 | 179 | | |
170 | | - | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
171 | 186 | | |
172 | 187 | | |
173 | 188 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | | - | |
16 | 14 | | |
17 | 15 | | |
18 | 16 | | |
| |||
21 | 19 | | |
22 | 20 | | |
23 | 21 | | |
| 22 | + | |
24 | 23 | | |
25 | 24 | | |
26 | 25 | | |
27 | 26 | | |
| 27 | + | |
| 28 | + | |
28 | 29 | | |
29 | 30 | | |
30 | 31 | | |
| |||
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| 41 | + | |
| 42 | + | |
40 | 43 | | |
41 | 44 | | |
42 | 45 | | |
| |||
53 | 56 | | |
54 | 57 | | |
55 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
0 commit comments