show-inheritance, относящееся к перемещенному классу, разрывает ссылку - PullRequest
0 голосов
/ 05 мая 2020

Я хотел бы задокументировать мой класс, наследующий от базового, оба из которых находятся внутри подмодуля более крупного пакета. Этот пакет импортирует классы на самый верхний уровень для лучшего взаимодействия с пользователем. По этой причине я также сделал свою документацию на этом уровне. Вот суть моей ситуации.

# Directory structure
package
  __init__.py
  sub.py

# sub.py
class Foo:
    pass

class Bar(Foo):
    pass

# __init__.py
from .sub import Foo, Bar

# Some documentation file
.. currentmodule:: package
.. autoclass:: Foo
.. autoclass:: Bar
   :show-inheritance:

Другие ссылки на эти классы работают нормально, хорошо работают со ссылками package.Foo вместо package.sub.Foo. Но опция show-inheritance для autoclass отображает исходный путь вместе с неработающей ссылкой. При перемещении классов в __init__.py ссылка восстанавливается.

Как создать работающую ссылку? В качестве бонуса я хотел бы иметь более короткое имя, которое уже есть в имени класса.

Doc


This - это связанный вопрос, решение которого я пробовал. Изменение атрибута __module__ этих классов работает.

# __init__.py
Foo.__module__ = 'package'
Bar.__module__ = 'package'

Однако я сомневаюсь, что оптимальным решением будет сделать это вручную для каждого определенного мной класса , большинство из которых имеют происходит какое-то наследство.

...