У меня есть декоратор, который имеет вложенное определение класса упаковки.Оболочка поддерживает в качестве атрибута исходный класс, который она оборачивает.Пример игрушки выглядит следующим образом:
def decorator(cls):
class Wrapper(object):
original = cls
def __init__(self):
self.__doc__ = self.original.__doc__
self.__name__ = self.original.__name__
def do_something_with_cls(cls):
pass
return Wrapper
Теперь я хочу украсить класс Foo
с помощью этого декоратора в другом модуле и сгенерировать документацию sphinx для класса Foo
до его оформления.Это выглядит так:
from .bar import decorator
@decorator
class Foo(object):
"""The docstring I want to preserve."""
def __init__(self):
pass
Я пытался добиться этого с использованием функциональности autoclass
, но это не сработало.Я хотел создать экземпляр класса и взять его строку документации:
.. autoclass:: package.baz.Foo()
:members:
, но он вернул это в html-документации класса package.baz.Foo
: alias of package.bar.decorator.<locals>.Wrapper
Iхочу достичь этого, когда я документирую модуль baz
, я могу сгенерировать документацию класса Foo до его оформления.Возможно ли это?
РЕДАКТИРОВАТЬ:
Это выглядит как аналогичная проблема, но здесь я хотел бы добиться, чтобы передать экземпляру Wrapper
строку документации, котораяSphinx увидит и сгенерирует документацию на основе исходной строки документации Foo
, или я смогу вызвать Wrapper.original
и составить документацию по этому вопросу, но следующее не сработало:
.. autoclass package.baz.Foo.original
:members: