Somebody posted a reply on the referenced SO thread: Apparently, the solution is to reset the value of `__module__` on the affected classes. So, in `a/__init__.py`, you can do the following to fix the issue:
```python A.__module__ = __name__ B.__module__ = __name__ ``` This seems to fix the problem for us. Isn't there some sort of `:alias:` command in Sphinx that could do something equivalent w/o this python hack? Thanks, Andre On Thursday, October 13, 2016 at 10:09:07 PM UTC+2, André Anjos wrote: > > I'm trying to get my Sphinx documentation build correctly and have > cross-references (including those from inherited relations) work right. > > In my project, I have a situation which is depicted in the example below, > which I replicated for convenience on [this github repo]( > https://github.com/anjos/sphinx-broken-xref): > > ```sh > $ tree . > . > ├── a > │ ├── b > │ │ └── __init__.py > │ └── __init__.py > ├── conf.py > ├── index.rst > └── README.md > ``` > > In `a.b.__init__`, I declare classes `A` and `B`. `B` inherits from `A`. > In `a.__init__`, I import `A` and `B` like: `from .b import A, B`. The > reason I do this in my real projects is to reduce the import paths on > modules while keeping implementation of specific classes in separate files. > > Then, in my rst files, I *autodoc* module `a` with `.. automodule:: a`. > Because `a.b` is just an auxiliary module, I don't *autodoc* it since I > don't want to get repeated references to the same classes and not to > confuse the user on what they should be really doing. I also set > `show-inheritance` expecting `a.B` will have a back link to `a.A`. > > If I try to sphinx-build this in nit-picky mode, I'll get the following > warning: > > ```sh > WARNING: py:class reference target not found: a.b.A > ``` > > If I look at the generated documentation for class `B`, then I verify it > is not properly linked against class `A`, which just confirms the warning > above. If I *autodoc* module `a.b` instead, it will work, but my > documentation will not show the shortcuts I intended when I wrote the > module. > > Is there a fix for this without *autodoc*'ing module `a.b`? I.e., keeping > the imports in the way they are? > > Thanks for any tip. > > [1] > http://stackoverflow.com/questions/40018681/sphinx-cross-referencing-breaks-for-inherited-objects-imported-and-documented-in > [2] https://github.com/anjos/sphinx-broken-xref > [3] https://github.com/sphinx-doc/sphinx/issues/3048 > -- You received this message because you are subscribed to the Google Groups "sphinx-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to sphinx-users+unsubscr...@googlegroups.com. To post to this group, send email to sphinx-users@googlegroups.com. Visit this group at https://groups.google.com/group/sphinx-users. For more options, visit https://groups.google.com/d/optout.